linux环境常用的性能监控和协助开发调试工具

Linux提供多种内置工具用于服务器性能分析和开发调试,如readelf用于查看elf文件格式,hexdump和xxd进行16进制文件内容打印,od选择不同进制输出,objdump进行反汇编,nm显示目标文件符号,strings查找二进制文件中的字符串,telnet和nc用于网络连接测试。这些工具是系统级调试的重要助手。
摘要由CSDN通过智能技术生成

linux有诸多优秀的工具帮助我们分析服务器各项性能指标和协助开发调试工作。下面只列举比较基础的命令,且一般是集成在linux环境中而不需再次安装的命令。更多更详细的命令可以参考 https://github.com/brendangregg/perf-tools

  A 、CPU进程相关 常用工具列举下:uptime、ps、top、mpstat、pidstat等 
uptime: 查看系统运行时间,平均负载等。
ps:可查看某个进程占用CPU资源百分比;查看线程信息  ps -eLf 
top/htop/atop:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示; 
top -Hp pid(主线程id) 可以看到多线程程序中所有线程的状态。
mpstat: 可以查看所有CPU的平均信息,还能查看指定CPU的信息;
pidstat: 对于显示某个进程的状态,耗费时间等非常有用。
可通过以下命令查看缺页中断信息
ps -o majflt,minflt -C <program_name>
ps -o majflt,minflt -p <pid>

其中, majflt 代表 major fault ,指大错误, minflt 代表 minor fault ,指小错误。这两个数值表示一个进程自启动以来所发生的缺页中断的次数。其中 majflt 与 minflt 的不同是, majflt 表示需要读写磁盘,可能是内存对应页面在磁盘中需要 load 到物理内存中,也可能是此时物理内存不足,需要淘汰部分物理页面至磁盘中。
例如,下面是 mysqld 的一个例子。
mysql@ XX_590_591:~> ps -o majflt,minflt -C mysqld
MAJFLT MINFLT
144856 15296294

如果进程的内核态 CPU 使用过多,其中一个原因就可能是单位时间的缺页中断次数多个,可通过以上命令来查看。
如果 MAJFLT 过大,很可能是内存不足。
如果 MINFLT 过大,很可能是频繁分配 / 释放大块内存 (128k) , malloc 使用 mmap 来分配。对于这种情况,可通过 mallopt(M_MMAP_THRESHOLD, <SIZE>) 增大临界值,或程序实现内存池。
B、内存相关 常用工具:free、vmstat 
free:可查看内存的总数、已使用、空闲内存数,swap使用(当系统没有足够物理内存来应付所有请求的时候就会用到swap设备,swap设备可以是一个文件,也可以是一个磁盘分区。不过要小心的是,使用swap的代价非常大。如果系统没有物理内存可用,就会频繁swapping,如果swap设备和程序正要访问的数据在同一个文件系统上,那会碰到严重的IO问题,最终导致整个系统迟缓,甚至崩溃)情况等,特别提醒,如果swap使用较多,说明服务
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值