Linux系统配置及服务管理(上)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统配置及服务管理(上)相关的知识,希望对你有一定的参考价值。

1、什么是进程

? 进程是已启动的可执行程序的运行实例,进程有以下组成部分:

? (1)已分配内存的地址空间;

? (2)安全属性,包括所有权凭据和特权;

? (3)程序代码的一个或多个执行线程;

? (4)进程状态

程序:二进制文件,静态/bin/date,/usr/sbin/httpd,/usr/sbin/sshd,/usr/local/nginx/sbin/ngix

进程:是程序运行的状态,动态,有生命周期及运行状态

2、进程的生命周期

? 父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配唯一的进程ID(PID),满足跟踪安全性之需。PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。

? 子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。随后子进程可能exec自己的程序代码。

? 通常,父进程在子进程运行期间处于睡眠(sleeping)状态。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境,剩余的部分称之为僵停(僵尸Zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。

? 在多任务处理操作系统中,每个CPU(核心),在一个时间点上只能处理一个进程。在进程运行时,它对cpu时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。

3、查看进程process

? (1)静态查看进程(ps)

[[email protected]~]#ps aux |less

USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 128096 6708 ? Ss 16:20 0:01 /usr/lib/systemd/systemd

——————————————————————————————————————————————————

USER:运行进程的用户

PID:进程ID

%CPU:CPU占用率

%MEM:内存占用率

VSZ:占用虚拟内存

RSS:占用实际内存

TTY:进程运行的终端 //可以开启vim查询到终端名称

STAT:进程状态man ps(/STATE)

——————————————————————————————————————————————————

R 运行

S 可中断睡眠Sleep(休眠中,受阻,在等待某个条件的形成或接受到信号)

D 不可中断睡眠(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)

T 停止的进程

Z 僵尸进程

X 死掉的进程

? (2)进程排序

? 示例1:以CPU占比降序排列

? [[email protected]~]#ps aux --sort %cpu |less //--sort排序,升序(小到大)

? 示例2:以CPU占比升序排列

? [[email protected]~]#ps aux --sort - %cpu |less //-%cpu降序

? 示例3:以驻留内存升序排列

? [[email protected]~]#ps aux --sort rss|less

? 示例4:以驻留内存降序排列

? [[email protected]~]#ps aux --sort -rss|less

? (3)进程的父子关系1

? 安装一个进程观察,父子进程以及状态。父亲Ss 和 儿子S
? [[email protected]~]$ sudo yum -y install httpd //安装网站程序。
? [[email protected]~]$ sudo systemctl start httpd //启动网站
? [[email protected] ~]$ sudo systemctl stop firewalld //关闭防火墙
? [[email protected]~]# ps aux |grep httpd //查看网站程序。
? root 9279 0.0 0.0 4264 672 pts/1 S+ 14:37 0:00 _ grep httpd
? root 8310 0.0 0.1 10092 2912 ? Ss 14:19 0:00 /usr/sbin/httpd
? apache 8311 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd
? apache 8312 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd
? apache 8313 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd
? apache 8314 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd
? apache 8315 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd
? apache 8316 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd
? apache 8318 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd
? apache 8319 0.0 0.0 10092 2060 ? S 14:19 0:00 _ /usr/sbin/httpd

? (4)进程的父子关系2

? 查看进程的父子关系。 请观察PID和PPID
? [[email protected]~]# ps -ef
? UID PID PPID C STIME TTY TIME CMD
? root 1 0 0 1月22 ? 00:00:07 /usr/lib/systemd/systemd
? root 2 0 0 1月22 ? 00:00:00 [kthreadd]
? root 3 2 0 1月22 ? 00:00:06 [ksoftirqd/0]

? (5)自定义显示字段

? //自定义显示字段 --------------------------------
? [[email protected] ~]# ps axo user,pid,ppid,%mem,command // xo 指定列显示
? [[email protected] ~]# ps axo user,pid,ppid,%mem,command |grep httpd
? root 8310 1 0.1 /usr/sbin/httpd
? apache 8311 8310 0.0 /usr/sbin/httpd
? apache 8312 8310 0.0 /usr/sbin/httpd
? apache 8313 8310 0.0 /usr/sbin/httpd
? apache 8314 8310 0.0 /usr/sbin/httpd
? apache 8315 8310 0.0 /usr/sbin/httpd
? apache 8316 8310 0.0 /usr/sbin/httpd
? apache 8318 8310 0.0 /usr/sbin/httpd
? apache 8319 8310 0.0 /usr/sbin/httpd

? root 9236 6798 0.0 grep httpd

——————————————————————————————————————————————————

? [[email protected]~]# ps axo user,pid,ppid,%mem,%cpu,command --sort -%cpu |less

? //针对某些程序,显示某些列,再进行排序。简洁明了

? (6)查看指定进程的PID,四种方法

? 第一种。cat
? [[email protected] ~]$ cat /run/sshd.pid
? 830

? 第二种。ps
? [[email protected] ~]# ps aux |grep sshd
? root 10180 0.0 0.0 7224 1024 ? Ss 16:00 0:00 /usr/sbin/sshd
? 第三种。pgrep

? [[email protected] ~]# pgrep -l sshd
? 10180 sshd
? [[email protected] ~]# pgrep sshd
? 10180

? 第四种。pidof
? [[email protected] ~]# pidof sshd
? 10180

? (7)查看进程树

? [[email protected]~]#pstree

? 如果没有这个命令,要进行安装: #yum install -y psmisc

? (8)动态查看进程(top)
? 第一部分:系统整体统计信息

? top - 11:45:08 up 18:54, 4 users, load average: 0.05, 0.05, 0.05
? Tasks: 176 total, 1 running, 175 sleeping, 0 stopped, 0 zombie
? %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
? KiB Mem : 3865520 total, 1100000 free, 580268 used, 2185252 buff/cache
? KiB Swap: 4063228 total, 4063228 free, 0 used. 2917828 avail Mem
? 负载加权值解释:—小于1正常————————————
? load average: 0.86, 0.56, 0.78 系统最近 1分钟,5分钟,15分钟平均负载

? 第二部分:字段介绍

? VIRT:virtual memory usage虚拟内存

? 注意:(1)进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等

? (2)假如进程申请100M的内存,但实际只使用了10M,那么它会增长100M,

? 而不是世纪的使用量需要这些内存,但并没有占满。

? RES:resident memory usage常住内存

? 注意:(1)进程当前使用的内存大小

? (2)包含其他进程的共享

? (3)如果申请100M内存,实际使用10M,它只增长10M,与VIRT相反用了多少内存

? SHR:shared memory共享内存

? 注意:(1)除了自身进程的共享内存,也包括其他进程的共享内存

? (2)计算某个进程所占的物理内存大小公式:RES — SHR

? (9)top交互命令

? k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。

? 一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。

? 默认值是信号15。在安全模式中此命令被屏蔽。
? i 忽略闲置和僵死进程。这是一个开关式命令。
? q 退出程序。
? r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。
输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
? S 切换到累计模式。
? s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,
就换算成m,s输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,
很可能会引起不断刷新,从而根本 来不及看清显示的情况,而且系统负载也会大大增加。
? f或者F 从当前显示中添加或者删除项目。
? o或者O 改变显示项目的顺序。
? l 切换显示平均负载和启动时间信息。
? m 切换显示内存信息。
? t 切换显示进程和CPU状态信息。
? c 切换显示命令名称和完整命令行。
? M 根据驻留内存大小进行排序。
? P 根据CPU使用百分比大小进行排序。
? T 根据时间/累计时间进行排序。
? W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

以上是关于Linux系统配置及服务管理(上)的主要内容,如果未能解决你的问题,请参考以下文章

Linux服务器SVN配置及管理项目迁移

Linux系统配置及服务管理——权限管理

Linux系统配置及服务管理_第04章权限管理

Linux系统配置及服务管理_第01章系统部署

Linux系统配置及服务管理_第09章_软件管理

Linux中的网络管理——网络配置及命令