CPU使用情况
通常使用top命令查看CPU的当前状态,如果是多核CPU,也可以看到每核的信息
# top
执行后按数字1,可以显示多个CPU状态
例如:
Cpu0 : 1.0%us, 3.0%sy, 0.0%ni, 96.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
%us - 用户空间占用CPU百分比
%sy - 内核空间占用CPU百分比
%ni - 用户进程空间内改变过优先级的进程占用CPU百分比
%id - 空闲CPU百分比
%wa - IO等待占用CPU的百分比
%hi - 硬中断(Hardware IRQ)占用CPU的百分比
%si - 软中断(Software Interrupts)占用CPU的百分比
%us 和 %id 的值比较重要,系统请求压力大时,可以看到这两项的迅速变化
内存使用情况
top命令也可以看到当前的内存使用状况,但free命令更直观
free命令的结果信息项中有'free'一项,指当前空闲的内存大小,会发现这项的值总是很小,很多人不理解,以为内存快不够用了,其实不是的
简单说下linux的内存使用策略:内存是拿来用的,会尽量缓存常用的数据到内存中,提高系统性能,当应用程序需要更多的内存时,再去释放缓存
# free -m
-m 以M为单位显示结果数据
各列的含义:
total:总计物理内存的大小
used:已使用多大
free:空闲可用的有多少
Shared:多个进程共享的内存总额
Buffers/cached:磁盘缓存的大小,Buffers是系统存放需要写入磁盘数据的临时区域,cached是操作系统从磁盘中读取进来的缓存数据
第一行 Mem 是从操作系统的角度来看,Buffers/cached 都占用了内存,应该计入used,所以对于操作系统来说,used = 操作系统使用的内存 + 各个应用程序使用的内存 + Buffers + cached
第二行 (-/+ buffers/cached) 是从应用程序的角度来看,buffers/cached 是用来提高系统访问速度的,当应用程序需要更多内存时,buffers/cached是可以很快被回收的,所以对于应用程序来说,可用内存 = free + buffers + cached
第三行 Swap 交换分区 重点看 used 是否经常大于0 如果是,就要考虑增加内存了