Linux后台资源占用

Linux 后台资源占用

一、总体内存占用的查看

free

(1) free 命令默认是以 kb 为单位显示的,可以用 free -m 用 Mb 单位来显示。

(2) Mem 行 : total = used + free 其中 buffers 和 cached 虽然计算在 used 内, 但其实为可用内存。

(3) Mem 下一行:used 为真实已占内存,free 为真实可用内存。

(4)Swap:内存交换区的使用情况。

二、查看内存占用前五的进程

ps auxw | head -1;ps auxw|sort -rn -k4|head -5

内存的单位是 kb,VSZ 是虚拟内存的占用,RSS 是真实的内存的占用。

三、查看系统整体的负载

top

注解:

​ PID :进程 ID

​ USER :用户名

​ PR :优先级

​ NI :负值表示高优先级,正值表示低优先级。

​ VIRT :虚拟内存

​ RES : 真实内存

​ SHR :共享内存

​ S :进程状态 D=不可中断的睡眠状态; R=运行; S=睡眠 ;T=跟踪/停止; Z=僵尸进程

参数:

​ top -d 2 :每隔 2 秒显式所有进程的资源占用情况

​ top -c :每隔 5 秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)

​ top -p 12345 -p 6789:每隔 5 秒显示 pid 是 12345 和 pid 是 6789 的两个进程的资源占用情况

​ top -d 2 -c -p 123456 :每隔 2 秒显示 pid 是 12345 的进程的资源使用情况,并显式该进程启动的命令行参数

四、特殊情况

有时候我 i 们会发现,磁盘空间明明被占满了,但是我们根本找不到是什么文件占用了我们的空间

磁盘满了之后,会影响一些功能使用,使用 df -h 发现磁盘空间满了

但是任凭各个文件目录下 du -sh * 也找不到大文件

解决方式:

​ lsof -n grep deleted 查看到以删除的占用的进程

​ kill -9 进程号 删除该进程

​ 批量删除:lsof -n grep deleted grep -v grep awk ‘{print “kill “$2}’ sh

​ 执行 df -h 进行查看

原因:

​ 使用 rm 在 linux 上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么 linux 内核还是 不会释放这个文件的磁盘空间