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)

[root@yunjisuan~]#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占比降序排列

​ [root@yunjisuan~]#ps aux --sort %cpu |less //--sort排序,升序(小到大)

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

​ [root@yunjisuan~]#ps aux --sort - %cpu |less //-%cpu降序

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

​ [root@yunjisuan~]#ps aux --sort rss|less

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

​ [root@yunjisuan~]#ps aux --sort -rss|less

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

​ 安装一个进程观察,父子进程以及状态。父亲Ss 和 儿子S
​ [alice@yunjisuan~]$ sudo yum -y install httpd //安装网站程序。
​ [alice@yunjisuan~]$ sudo systemctl start httpd //启动网站
​ [alice@yunjisuan ~]$ sudo systemctl stop firewalld //关闭防火墙
​ [root@yunjisuan~]# 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
​ [root@yunjisuan~]# 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)自定义显示字段

​ //自定义显示字段 --------------------------------
​ [root@yunjisuan ~]# ps axo user,pid,ppid,%mem,command // xo 指定列显示
​ [root@yunjisuan ~]# 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

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

​ [root@yunjisuan~]# ps axo user,pid,ppid,%mem,%cpu,command --sort -%cpu |less

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

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

​ 第一种。cat
​ [root@localhost ~]$ cat /run/sshd.pid
​ 830

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

​ [root@localhost ~]# pgrep -l sshd
​ 10180 sshd
​ [root@localhost ~]# pgrep sshd
​ 10180

​ 第四种。pidof
​ [root@localhost ~]# pidof sshd
​ 10180

​ (7)查看进程树

​ [root@localhost~]#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配置文件的推荐方法。

转载于:https://blog.51cto.com/13715952/2114985

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值