linux 内存相关命令

查看内存

  1. 查看当前占用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 
  1. free命令
# free -m 
             total       used       free     shared    buffers     cached
Mem:         47869       2468      45400          1        580        901
-/+ buffers/cache:        986      46883
Swap:        23999          0      23999

  1. 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 命令;
  • 总体描述
  1. 第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的(任务队列、进程信息、CPU信息、物理内存信息、交换分区信息)
  2. 第二部分从第六行开始,显示的是系统中进程的信息

top命令参考自这里,想要更加详细解释可以查看

释放内存

echo n > /proc/sys/vm/drop_caches
n可以取值0,1,2,3

0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存
原文地址:https://www.cnblogs.com/skills/p/15046660.html