Linux 系统管理
进程简介
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源
进程管理的作用
- 判断服务器健康状态
- 查看系统中所有进程
- 杀死进程
进程的查看
ps
ps aux
查看系统中所有进程,使用 BSD 操作系统格式ps -le
查看系统中所有进程,使用 Linux 标准命令模式- 选项:
- a 显示一个终端的所有进程,除了会话引线
- u 显示进程的归属用户及内存的使用情况
- x 显示没有控制终端的进程
- -l 长格式显示。显示更加详细的信息
- -e 显示所有进程,和 -A 作用一致
- ps 命令输出
- USER 该进程是由哪个用户产生的
- PID 该进程的 ID 号
- %CPU 该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源
- %MEN 该进程占用物理内存的百分比,占用越高,进程越耗费资源
- VSZ 该进程占用虚拟内存大小,单位 KB
- RSS 该进程占用实际物理内存的大小,单位 KB
- TTY 该进程是在哪个终端中运行的。其中 tty1-tty7 代表本地控制台终端,tty1-tty6 是本地的字符界面终端,tty7 是图形终端。pts/0-255 代表虚拟终端,? 代表内核运行
- STAT 进程状态
- R 运行
- S 睡眠
- T 停止状态
- 位于后台
- s 包含子进程
- START 该进程的启动时间
- TIME 该进程占用 CPU 的运算时间,注意不是系统时间
- COMMAND 产生此进程的命令名
pstree
pstree [选项]
- -p 显示进程的 PID
- -u 显示进程的所属用户
top
top [选项]
top -b -n 1 > top.log
把每秒的 top 信息写进top.log
文件中- 选项:
- -d 秒数 指定 top 命令每隔几秒更新。默认是 3 秒
- -b 使用批处理模式输出。一般和 "-n" 选项合用
- -n 次数 指定 top 命令执行的次数。一般和 "-b" 选项合用
- top 命令交互模式可以执行命令
- ? 或 h 显示帮助
- M 以内存使用率排序
- P 以 CPU 使用率排序,默认此项
- N 以 PID 排序
- q 退出 top
- top 参数意义
- 第一行系统信息:
12:26:46
系统当前时间up 1 day,13:32
系统运行时间,本机已运行了 1 天 13 小时 32 分钟2 users
当前系统登录了用户load average: 0.00,0.00,0.00
系统在之前 1 分钟,5 分钟,15 分钟的平均负载。一般认为小于 1 时,负载较小。如果大于 1,系统已经超出负荷
- 第二行进程信息:
Tasks: 95 total
系统中的进程总数1 running
正在运行的进程数94 sleeping
睡眠的进程0 stopped
正在停止的进程0 zombie
僵尸进程。如果不是 0,需要手工检查僵尸进程
- 第三行 CPU 信息:
Cpu(s) 0.1%us
用户模式占用的 CPU 百分比0.1%sy
系统模式占用的 CPU 百分比0.0%ni
改变过优先级的用户进程占用的 CPU 百分比99.7%id
空闲 CPU 的 CPU 百分比0.1%wa
等待输入 / 输出的进程的占用 CPU 百分比0.0%hi
硬中断请求服务占用的 CPU 百分比0.1%si
软中断请求服务占用的 CPU 百分比0,0%st
虚拟时间百分比
- 第四行内存信息:
Mem: 635344k total
物理内存的总量,单位 KB571504k used
已经使用的物理内存数量53840k free
空闲的物理内存数量65800k buffers
作为缓冲的内存数量
- 第五行交换分区信息:
Swap: 524280k total
交换分区(虚拟内存)的总大小Ok used
已经使用的交互分区的大小524280k free
空闲交换分区的大小409280k cached
作为缓存的交互分区的大小
- 第一行系统信息:
杀死进程
- kill
kill -l
查看可用的进程信号kill -1 进程 ID
重启进程kill -9 进程 ID
强制杀死进程
- killall
killall [选项] [信号] 进程名
- 选项:
- -i 交互式,询问是否要杀死某个进程
- -I 忽略进程名的大小写
- 选项:
- pkill
pkill [选项] [信号] 进程名
- 选项:
- -t 终端号:按照终端号踢出用户
- 用法:
pkill -9 -t tty1
- 选项:
修改进程优先级
Linux 操作系统是一个多用户、多任务的操作系统,Linux 系统中通知运行着非常多的进程。但是 CPU 在同一个时钟周期内只能运算一个指令。进程优先级决定了每个进程处理的先后顺序呢。
执行命令 ps -le
返回的结果中,PRI 代表 Priority,NI 代表 Nice。这两个值都是优先级,数字越少代表改进程优先级越高。
用户可以修改 NI 值,注意事项如下:
- NI 值的范围是 -20 到 19
- 普通用户调整 NI 值的范围是 0 到 19,而且只能调整自己的进程
- 普通用户只能调高 NI 值,而不能降低,如原本 NI 值为 0,则只能调整为大于 0
- root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程
- PRI(最终值)= PRI(原始值)+ NI
- 用户只能修改 NI 的值,不能直接修改 PRI
修改进程优先级的命令如下:
- nice
nice [选项] 命令
nice 的命令可以给新执行的命令直接赋予 NI 值,但是不能修改已经存在进程的 NI 值- 选项:
- -n NI 值:给命令赋予 NI 值
- 用法:
nice -n -5 service httpd start
- 选项:
- renice
renice [优先级] 进程 ID
renice 命令是修改已经存在进程的 NI 值的命令- 用法:
renice -10 2125
- 用法:
工作管理
工作管理指的是在单个登录终端中(也就是登录的 Shell 界面中)同时管理多个工作的行为
工作管理注意事项如下:
- 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作
- 放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作
- 放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行
工作管理方法
# 把命令放入后台,并在后台执行
top &
# 按下 ctrl + z 快捷键,放在后台暂停
top
- jobs
josb [选项]
- 选项:
- -l 显示工作的 PID
- + 号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作;- 号代表倒数第二个放入后台的工作
- 选项:
- fg
fg %工作号
将后台暂停的工作恢复到前台执行,注意 % 号可以省略,但是注意工作号和 PID 的区别
- bg
bg %工作号
后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行
后台命令脱离登录终端执行的方法
- 第一种方法是把需要后台执行的命令加入 /etc/rc.local 文件
- 第二种方法是使用系统定时任务,让系统在指定的时间执行某个后台命令
- 第三种方法是使用 nohup 命令
系统资源查看
- vmstat
vmstat [刷新延时 刷新次数]
- 用法:
vmstat 1 3
- 参数:
- procs:进程信息字段
- r 等待运行的进程数,数量越大,系统越繁忙
- b 不可被唤醒的进程数量,数量越大,系统越繁忙
- memory:内存信息字段
- free 空闲的内存容量,单位 KB
- buff 缓冲的内存容量,单位 KB
- cache 缓存的内存容量,单位 KB
- swpd 虚拟内存的使用情况,单位 KB
- 缓冲和缓存的区别:缓存是用来加速数据读取的,缓冲是用来加速数据写入的
- swap:交换分区的信息字段
- si 从磁盘中交换到内存中数据的数量,单位 KB
- so 从内存中交换到磁盘中数据的数量,单位 KB。此两个数越大,证明数据需要经常在磁盘和内存之间交换,系统性能越差。
- io:磁盘读写信息字段
- bi 从块设备读入数据的总量,单位是块
- bo 写到块设备的数据的总量,单位是块。此两个数越大,代表系统的 I/O 越繁忙
- system:系统信息字段
- in 每秒被中断的进程次数
- cs 每秒进行的事件切换次数。此两个数越大,代表系统与接口设备的通信非常繁忙
- CPU:CPU 信息字段
- us 非内核进程消耗 CPU 运算时间的百分比
- sy 内核进程消耗 CPU 运算时间的百分比
- id 空闲 CPu 的百分比
- wa 等待 I/O 所消耗的 CPU 百分比
- st 被虚拟机消耗的 CPU 百分比
- procs:进程信息字段
- dmesg
dmesg
显示系统内核信息
- free
free [选项]
查看内存使用状态- 选项:
- -\b 以字节为单位显示
- -\k 以 KB 为单位显示,默认就是以 KB 为单位显示
- -\m 以 MB 为单位显示
- -\g 以 GB 为单位显示
- 参数:
- 第一行:total 是总内存数,used 是已经使用的内存数,free 是空闲的内存数,shared 是多个进程共享的内存总数,buffers 是缓冲内存数,cached 是缓存内存数。默认单位是 KB
- 第二行:-/buffers/cache 的内存数,相当于第一行的 used-buffers-cached。+/buffers/cache 的内存数,相当于第一行的 free + buffers + cached
- 第三行:total 是 swap 的总数;used 是已经使用的 swap 数,free 是空闲的 swap 数。默认单位是 KB
- 选项:
- cat /proc/cpuinfo
- 查看 CPU 信息
- uptime
- 显示系统的启动时间和平均负载,也就是 top 命令的第一行。
- uname
uname [选项]
- 选项:
- -a 查看系统所有相关信息
- -r 查看内核版本
- -s 查看内核名称
- 选项:
- file /bin/ls
- 查看系统操作位数
- lsb_release -a
- 查询当前 Linxu 系统的发行版本
- lsof
lsof [选项]
- 选项:
- -c 字符串:只列出以字符串开头的进程打开的文件
- -u 用户名:只列出某个用户的进程打开的文件
- -p PID:列出某个 PID 进程打开的文件
- 例子:
lsof | more
lsof /sbin/init
lsof -c httpd
lsof -u root
- 选项:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Linux 权限管理
下一篇: Linux 安装 MySQL
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论