Linux的top命令与内存计算
top命令是我们平时工作中用的最多的命令之一,下面详细介绍一下top命令
通过top命令可以很好的看到服务器资源使用情况
top命令执行之后的查询结果:
敲完top命令之后,按shift+p会以cpu使用百分比大小排序,shift+m会以内存使用大小排序。
先看资源总的情况:
1,任务队列信息,即第一行:第一个是系统当前时间 图中值:10:45:10
第二个:系统到目前为止已经开机的天数,图中值:up 86 days, 50 min(此处一定要注意如果要重启已经开机超过1年的机器一定要慎之又慎 哈哈 经验之谈)
第三个:目前所登录的用户数,可以理解成所开的窗户数。图中:1 users
第四个:系统负载均衡情况,就是任务队列额平均值,第一个代表的是1分钟之内的,第二个是五分钟之内的,第三个是十五分钟之内的,图中:load average: 0.24, 0.25, 0.27,若这三个值高于5的话一定要注意咯,需要去检查哪个进程不正常。
2,任务信息,第二行,
第一个:总的进程数,图中:311 total
第二个:当前正在运行的进程数,图中:1 running
第三个:当前睡眠状态的进程数,图中:310 sleeping
第四个:当前已经停止的进程数,图中:0 stopped
第五个:僵尸进程数,图中:0 zombie
3,CPU信息,第三行
n%us ----------------cpu被使用百分比,这个数值只要低于70%,cpu资源就没问题。图中:1.4 us
n%sy -----------------内核资源占用情况,图中:0.6 sy
n%ni ------------------改变过优先级的进程,图中:0.0 ni
n%id ------------------空闲的CPU百分比,图中:97.8 id
n%wa -----------------等待的CPU百分比,图中:0.1 wa
n%hi ------------------硬件中断所耗的时间百分比,图中:0.0 hi
n%si ------------------软中断所耗的时间百分比,图中:0.0 si
n%st ------------------虚拟机占用的百分比,图中:0.0 st
4,内存信息,第四(物理内存)、五行(交换内存)
此处一定要详细看,这一块儿不理解的人会很多
物理内存:
total:总的内存
used:已使用的内存,但是,注意:这不是真正的已使用的内存,而是已经被分配的内存,如:给第一个进程分了500M,给第二个进程分了800M,这是used的内存。
free:同理,free是内存被分配完之后还所剩下的内存。
buffers:内核缓存区大小
交换内存:
total:总的交换内存,此处可以写一个交换内存设置的小技巧:当物理内存 <= 8g时,交换内存 = 物理内存 * 2; 8g < 物理内存 <= 16g时,交换内存 = 物理内存 * 1; 物理内存 > 16g时,交换内存8g就行。当然,交换内存可以设置大点,但是不太建议这么做,因为交换内存影响性能,因为交换内存会用到I/O。
used:已经使用的交换内存大小,这个值不要太大,太大就意味着你的物理内存不足了。
free:剩下的交换内存大小。
cached:缓冲区大小
重要的一点:内存怎么计算???
1)实际的程序可用内存的计算
free+buffers+cached
2)实际的程序已用内存的计算
used - buffers - cached
3)判断系统是否内存不足
当swap的used值大于0时基本可以认为系统遇到瓶颈了,需要加内存
5,进程信息区
PID:进程ID号
USER:进程所属用户
PR:优先级
IN:优先级
VIRT:进程使用的虚拟内存总量,VIRT = swap + RES
RES:物理内存
SHR:共享内存大小
S:进程状态,R->running S->sleeping T->stop Z->zombie
%CPU:CPU使用百分比
%MEM:内存使用百分比
TIME:进程使用CPU的时间
COMMAND:命令