linux系统监控和进程管理
top命令查看系统的实时运行状况:
- 进程的三种状态:
- 运行态:CPU在调用执行,这才是CPU真实干活时间
- 阻塞态:等待 I/O
- 就绪态: I/O完成,等待CPU执行;运行态时间过长,也会被中断,转为就绪态
单位时间内,运行态进程和就绪态进程数量之和,就是CPU的队列长度,队列长度除以CPU单位时间内的处理能力,就是CPU的负载。通常负载在0.7以内比较好。CPU的真实干活时间除以总时间(干活时间加等待I/O的时间),就是cpu的利用率,反映了CPU的效率,通常也是70%以内比较好。要避免高负载低利用率。
free 命令监控内存
- buffer 和 cache:
buffer 缓冲区,由于内存和硬盘的速度差,每一次数据写入都会有延迟,为了减少这种延迟,将要写入的零碎数据先放在内存总的一块区域攒起来,然后统一写入硬盘,这个区域就是buffer。Cache,将CPU要用的数据提前准备好,统一存放在内存中的一块区域,方便CPU取用。缓解cpu和内存的速度差,这个区域就是cache。操作系统用的其实就是内存中的buffer和cache。清理内存空间时,不能清buffer,因为数据还没有写入硬盘,但cache中除了kernel使用的部分受保护不能释放外,其他都可以清,因为数据已经在硬盘中了。
- 内存的可用空间availbale是指剩余的buffer和cache + 能腾出的cache
- 内存的真实使用率 (total - available) / tatal
- 重启可以强制释放内存资源,尤其是僵尸进程。
- echo 3 > /proc/sys/vm/drop_caches 释放内存
ps -aux 进程管理
- -elf 选项可以查看父进程PPID
-
ps -aux | grep 'process_name' 通过grep可以筛选j进程
- kill -9 PID 按进程id杀进程,精准
-
pkill -9 process_name 按进程名杀进程
-
pstree PID 查看进程树
如果pstree不可用,可以通过yum -y install psmisc命令来安装