共计 1395 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 有时候,有些应用莫名其妙启动不了了,或者说没反应,或者 web 界面进不去了,这时候就得看一下机器资源是否够用,这里就来介绍下常用的检查命令吧。 |
这个命令可以实时查看进程的状态,看可以看到总体的系统运行状态 cpu、内存等,如图
(1)第一行中的 Tasks、total、running、sleeping、stoped、zombie 相当于任务栏概况,比如上图中,总共 356 个进程、2 个处于运行状态、354 个处于休眠、停止的有 0 个、僵尸状态的有 0 个,不是 0 就得手工检查下,以下图来自网络图,仅供学习参考。
2)第二行中显示的就是 cpu 的状态,具体参数含义如下图所示,主要看的就是用户状态进程所占用 cpu 的百分比,这里如果比较高的话就得检查一下那些进程占用过多。
(3)第三行种显示的就是关于内存使用的相关信息,包括总内存、空闲内存、已使用内存、以及缓存。一般大致的计算可用内存为空闲 free 内存 + 缓存
(4)第四行显示的就是 swap 交换分区的使用情况,所以在看 top 命令的时候如果交换内存功能没关闭的话,就要多关注下,如果数值一直变化,说明内存就真的不够用了。
(5)剩余的就是关于进程状态的描述
到这里整体的 top 命令就可以看懂了,如果还需要研究,就可以使用 h 命令查看帮助
按 1 就可以监控每个逻辑 cpu 的状态,按 m 就开显示内存统计数据
这个是虚拟内存统计(virtual memory statistics),也可以查看 cpu、进程、内存、虚拟内存、还有一个硬盘 IO 的状态
(1)procs 进程信息:r 代表等待运行进程数、越大系统越忙,b 代表不可被唤醒的进程数量,越大越忙
(2)memory 信息:交换内存、空闲内存、buff 缓冲、cache 缓存容量,单位都是 KB
(3)swap 信息:si 就是磁盘交换到内存的数据量、so 是内存交换到磁盘中数据量,单位 KB,数越大,性能越差,运维要在磁盘和内存间频繁交换数据
(4)io 信息:bi 块设备中读取、bo 写到块设备的数据量,越大 IO 越繁忙
(5)system 信息:in 代表每秒被中断的进程次数、cs 是每秒事件切换次数,数越大,代表系统和接口设备通信越繁忙
(6)cpu 字段:us 非内核进程 cpu 占用、sy 内核占用、id 空闲 cpu、wa 等待 io、st 虚拟机所用 cpu 占用
查看内存占用情况
这里的参数和上面 top 中所介绍的差不多,只是加了一个 - h 的参数,便于人查看。
这里是查看磁盘使用情况
du -sh * 查看当前路径下的文件大小
lsof -I : 端口号
ss -nplt
netstat -anp
ps -ef
ps aux(a 代表所有进程、u 显示归属用户以及内存使用、x 显示没有控制端的进程、- e 显示所用进程、- l 长格式显示详细信息)
这里 uid 就是那个用户、pid 就是进程的 id、ppid 父进程 id、tty 就是那个终端运行,rss 实际占用物理内存大小,vsz 就是虚拟内存、Time 进程占用 cpu 时间、stat 进程状态,start 进程启动时间、time 进程占用 cpu 运算时间,command 运行进程的命令。
好了到这里,基本的关于 linux 中查看资源情况有了一个大致了解,快去实践,祝学习顺利!