2021-03-16 -top/free/vmstat 详解

top

参数详解

参数与格式参数作用
-b批处理
-c显示完整的治命令
-l忽略失效过程
-s保密模式
-S累积模式
-i<时间>设置间隔时间
-u<用户名>指定用户名
-p<进程号>指定进程
-n<次数>循环显示的次数

其它使用技巧

在top基本视图中,按键盘数字“1",可监控每个逻辑CPU 的状况再按键盘数字“1”则返回。

敲击键盘“b”(打开/关闭加亮效果),敲击“y”键关闭或打开运行态进程的加亮效果。

敲击键盘“x”(打开/关闭排序列的加亮效果)。

通过“shift + >”或“shift + <”可以向右或左改变排序列。

free

参数详解

参数与格式参数作用
-b以Byte为单位显示内存使用情况。
-k以kb为单位显示内存使用情况。
-m以MB为单位显示内存使用情况。
-g以GB为单位显示内存使用情况。
-o不显示缓冲区调节列。
-s<间隔秒数>持续观察内存使用状况。
-t显示内存总和列。
-V显示版本信息。
 [root@SF1150 service]# free
              total       used       free     shared    buffers     cached
 Mem:      32940112   30841684    2098428          0    4545340   11363424-/+ buffers/cache:   14932920   18007192Swap:     32764556    1944984   30819572[root@SF1150 service]# free -g
              total       used       free     shared    buffers     cached
 Mem:            31         29          2          0          4         10-/+ buffers/cache:         14         17Swap:           31          1        29
 [root@SF1150 service]# free -m
              total       used       free     shared    buffers     cached
 Mem:         32168      30119       2048          0       4438      11097-/+ buffers/cache:      14583      17584Swap:        31996       1899      30097

可用内存=系统free memory+buffers+cached

cat/proc/meminfo 该文件记录内存使用详细

虚拟内存原理

  • 在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。

  • 在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述的内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。

  • 分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到内存的过程被称作Page-In。当内核需要一个分页时,但发现此分页不在物理内存中(因为已经被Page-Out了),此时就发生了分页错误(Page Fault)。

  • 当系统内核发现可运行内存变少时,就会通过Page-Out来释放一部分物理内存。经管Page-Out不是经常发生,但是如果Page-out频繁不断的发生,直到当内核管理分页的时间超过运行程式的时间时,系统效能会急剧下降。这时的系统已经运行非常慢或进入暂停状态,这种状态亦被称作thrashing(颠簸)。

vmstat

参数详解

参数与格式参数详解
-a显示活跃和非活跃内存。
-f显示从系统启动至今的fork数量。
-m显示slabinfo。
-n只在开始时显示一次各字段名称。
-s显示内存相关统计信息及多种系统活动数量。
delay刷新时间间隔。若不指定,只显示一条结果。
count刷新次数。若不指定刷新次数,但指定了刷新时间,则刷新次数为无穷。
-d显示磁盘相关统计信息。
-p显示指定磁盘分区统计信息。
-S使用指定单位显示。参数有k(1000)、K(1024)、m(1000000)、M(1048576),默认k。
-V显示vmstat版本信息。

vstat 字段显示说明

procs 进程 r:运行队列中进程数量 b:等待IO的进程数量

Memory 内存 swpd 使用虚拟内存大小 free 可用内存大小

buff 用作缓冲的内存大小 cache 用作缓存的内存大小

Swap

si 每秒从交换区写到内存的大小 so 每秒写入交换区的内存大小

IO linux版本块的大小为1024bytes bi 每秒读取的块数

bo 每秒写入的块数

系统

in 每秒中断数,包括时钟中断 cs 每秒上下文切换数

CPU 以百分比显示 us 用户进程执行时间 user time

sy 系统进程执行时间system time

id 空闲时间(包括 IO 等待时间),中央处理器的空闲时间。百分比显示。

wa 等待IO时间。

关于vmstat字段显示的参数判断

若r 经常大于4,且id经常少于40,表示cpu的 负荷很重。

若pi po长期不等于0,表示内存不足。

若disk 经常不等于0,且在b中的队列大于3,表示io性能不好。

生产实用

  1. 显示虚拟内存 vmstat

  2. 显示活跃和非活跃内存 vmstat -a 2 5

  3. 查看系统已经fork了多少次 vmstat -f

  4. 查看内存使用的详细信息 vmstat -s

  5. 查看磁盘的读/写 vmstat -d

  6. 查看/dev/sda1磁盘的读/写 vmstat -p /dev/sda1

    该显示详细信息来源于 /proc/diskstats

    • reads 来自于这个分区的读的次数。

    • read sectors 来自于这个分区的读扇区的次数。

    • writes 来自于这个分区的写的次数。

    • requested writes 来自于这个分区的写请求次数。

  7. 查看系统的slab信息 vmstat -m

    该显示详细信息来源于 /proc/slabinfo

    slab详解

    slab的含义就是把大块的空间,分解为小块的空间。slab具体的特性是它包含不同的对象,就像书架一样,同一类型的对象就放在什么同一类型的slab(书架)里,因为一个slab可能装不下所有的对象,所以有些对象类型会有多个slab。slab并不是一开始就有的算法,它的出现是为了优化buddy算法,buddy算法以页(4096字节)为单位,进行管理,即使很小的数据修改,也会动用4096字节,花销大,而且数据这一块,那一块,不好管理。 本段文字引用:https://blog.csdn.net/xzongyuan/article/details/20129171

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值