Linux内核性能调试工具,Linux常用主机性能测试

sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar是目前Linux上最为全面的系统性能分析工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的活动等,使用也是较为复杂。

查看CPU使用率: sar -u 1 2 (后面两个参数表示监控的频率,比如例子中的1和2,表示每秒采样一次,总共采样两次)

48c8927e4367d25c252526546d9cb08b.png

·%user 用户模式下消耗的CPU时间的比例;

·%nice 通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例

·%system 系统模式下消耗的CPU时间的比例;

·%iowait CPU等待磁盘I/O导致空闲状态消耗的时间比例;

·%steal 利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例;

·%idle CPU空闲时间比例;[root@localhost ~]# sar -q 1 2

184b34aa5852e1d797c528f51c6485d5.png

·runq-sz:运行队列的长度(等待运行的进程数)

·plist-sz:进程列表中进程(processes)和线程(threads)的数量

·ldavg-1:最后1分钟的系统平均负载

·ldavg-5:过去5分钟的系统平均负载

·ldavg-15:过去15分钟的系统平均负载

查询内存: sar -r 1 2[root@localhost ~]# sar -r 1 2

6a70a69863f54421c8c7d755c546ec9a.png

·kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

·kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.

·%memused:物理内存使用率,这个值是kbmemused和内存总量(不包括swap)的一个百分比.

·kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.

·kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).

·%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

查询页面交换:sar -W 1 3[root@localhost ~]# sar -W 1 3

307e7872e94c1f0e3d263edc5c36c46a.png

·pswpin/s:每秒系统换入的交换页面(swap page)数量

·pswpout/s:每秒系统换出的交换页面(swap page)数量

free

free工具用来查询系统可用内存,显示当前系统未使用和已使用的内存数目,还可以显示被内核使用的内存缓存区。

10e41ef8e74f9a5bf214455e9dbc0b88.png

·total:内存总数

·used:已经使用的内存数

·free:空闲的内存数

·shared:当前已经废弃不用

·buffers Buffer:缓存内存数

程序实实在在吃掉的内存数:Mem中的used - buff/cache

可以挪用的内存总数:Mem中的free + buff/cache

swap:也就是我们通常所说的虚拟内存。当内存使用到一定值的时候,会开始进行交换(怎么查看额定值 cat /proc/meminfo)

page cache 和 buffer cache的区别?

简单来说,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache。如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。

free -s 10  #周期性的查询内存使用情况,每10s 执行一次命令

iostat

被用于监视系统输入输出设备和CPU使用情况,它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU的使用情况。[root@localhost ~]# iostat 1 1

6af4af46bcca4ef1d70348c0656d5c76.png

注:如果%iowait的值过高,表示硬盘存在I/O瓶颈。 %idle值高,表示CPU较空闲。如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

·tps:该设备每秒的传输次数;

·kB_read/s:每秒从设备(drive expressed)读取的数据量;

·kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;

·kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;

vmstat

显示虚拟内存状态,但是他可以报告关于进程、内存、I/O等系统运行状态。

33f534a516dc671e2d882671cf54f72c.png

Procs(进程)r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)b: 等待IO的进程数量。

Memory(内存)swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。free: 空闲物理内存大小。buff: 用作缓冲的内存大小。cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。

Swapsi: 每秒从交换区写到内存的大小,由磁盘调入内存。so: 每秒写入交换区的内存大小,由内存调入磁盘。注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

IO(现在的Linux版本块的大小为1kb)bi: 每秒读取的块数bo: 每秒写入的块数注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

system(系统)in: 每秒中断数,包括时钟中断。cs: 每秒上下文切换数。注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。

CPU(以百分比表示)us: 用户进程执行时间百分比(user time)us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。sy: 内核系统进程执行时间百分比(system time)sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。wa: IO等待时间百分比wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

id: 空闲时间百分比

top

可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,是Linux下的任务管理器。通过top命令所提供的互动式界面,用热键可以管理。热键如下:

·q:退出top命令

·:立即刷新

·s:设置刷新时间间隔

·c:显示命令完全模式

·t::显示或隐藏进程和CPU状态信息

·m:显示或隐藏内存状态信息

·l:显示或隐藏uptime信息

·f:增加或减少进程显示标志

·S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+

·P:按%CPU使用率排行

·T:按MITE+排行

·M:按%MEM排行

·u:指定显示用户进程

·r:修改进程renice值

·kkill:进程

·i:只显示正在运行的进程

·W:保存对top的设置到文件^/.toprc,下次启动将自动调用toprc文件的设置。

·h:帮助命令。

·q:退出

注:强调一下,使用频率最高的是P、T、M,因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多; 注:通过”shift + >”或”shift +

ae6093819d5d41d7efd2907249be3d37.png

第一行

·16:56:31: 系统当前时间

·,30: 系统开机到现在经过了多少时间

·3 users : 当前3用户在线

·load average: 0.15, 0.13, 0.18: 系统1分钟、5分钟、15分钟的CPU负载信息

第二行

·Tasks:任务;

·205 total:很好理解,就是当前有358个任务,也就是358个进程。

·3running:3个进程正在运行

·202sleeping:202个进程睡眠

·0 stopped:停止的进程数

·0 zombie:僵死的进程数

第三行

·Cpu(s):表示这一行显示CPU总体信息

·0.7%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。

·2.2%sy:内核占用CPU时间百分比

·2.6%ni:改变过优先级的进程占用CPU的百分比

·93.7%id:空闲CPU时间百分比

·0.0%wa:等待I/O的CPU时间百分比

·0.0%hi:CPU硬中断时间百分比

·0.7%si:CPU软中断时间百分比

·注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;

第四行

·Men:内存的意思

·total:物理内存总量

·used:使用的物理内存量

·free:空闲的物理内存量

·buffers:用作内核缓存的物理内存量

第五行

·Swap:交换空间

·total:交换区总量

·used:使用的交换区量

·free:空闲的交换区量

·cached:缓冲交换区总量

进程信息

·PID:进程的ID

·USER:进程所有者

·PR:进程的优先级别,越小越优先被执行

·NInice:值

·VIRT:进程占用的虚拟内存

·RES:进程占用的物理内存

·SHR:进程使用的共享内存

·S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

·%CPU:进程占用CPU的使用率

·%MEM:进程使用的物理内存和总内存的百分比

·TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

·COMMAND:进程启动命令名称Github上发现了一个Linux命令搜索工具,很好用,介绍给大家:https://jaywcjlove.github.io/linux-command/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值