linux 内存相关命令
查看内存
- 查看当前占用CPU或内存最多的N个进程
ps -aux | sort -k4nr | head -N
解释如下:
- ps:参数a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分
- head:-N可以指定显示的行数,默认显示10行
- sort -k4nr中(k代表从根据哪一个关键词排序,后面的数字4表示按照第四列排序;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。-k3表示按照cpu占用率排序。则查看当前占用cup使用率最该高的5个进程如下:
ps aux | sort -k3nr | head -n 5
- free命令
# free -m
total used free shared buffers cached
Mem: 47869 2468 45400 1 580 901
-/+ buffers/cache: 986 46883
Swap: 23999 0 23999
- top持续监听进程运行状态
# top
top - 21:24:15 up 11 days, 6:49, 2 users, load average: 0.05, 0.01, 0.00
(系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,
则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载)
Tasks: 832 total, 1 running, 831 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 49017964k total, 2533228k used, 46484736k free, 594636k buffers
Swap: 24575996k total, 0k used, 24575996k free, 923240k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7180 root 20 0 15564 1860 948 R 1.0 0.0 0:00.54 top
1 root 20 0 19340 1556 1240 S 0.0 0.0 0:01.91 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0
- 搭配命令
-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
-b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
-n 次数:指定 top 命令执行的次数。一般和"-b"选项合用;
-p 进程PID:仅查看指定 ID 的进程;
-s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
-u 用户名:只监听某个用户的进程;
- 交互命令
P:按照 CPU 的使用率排序,默认就是此选项;
M:按照内存的使用率排序;
N:按照 PID 排序;
T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
r:按照 PID 给某个进程重设优先级(Nice)值;
q:退出 top 命令;
- 总体描述
- 第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的(任务队列、进程信息、CPU信息、物理内存信息、交换分区信息)
- 第二部分从第六行开始,显示的是系统中进程的信息
释放内存
echo n > /proc/sys/vm/drop_caches
n可以取值0,1,2,3
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存