linux 开发基础篇(性能分析)

摘要:在日常开发、测试或者运维,都需要关注系统或者进程的性能,运行状态等问题,既然是性能的问题就离不开内存、CPU、I/O。所以本篇文章主要讲述如何查看整个系统、单个进程、线程的cpu、内存使用,进程的端口号,进程在哪个cpu核上运行, I/O详情。

整篇文章还是老规矩。直接结合场景分析命令,关于这个命令,建议看完之后在Linux环境下用man 或者 --help详细看一遍

这里不会去列出命令后的输出,只做一个指引,希望看到的人都去动手实验一下,经过自己的思考加深理解

查看系统详情

查看系统cpu

  • 常用命令 top

按cpu占用排序显示进程: top命令后按P
按内存占用排序显示进程:top命令后按M

  • 查看cpu多核运行详情

mpstat -p ALL 3 3 ( 说明:每3秒刷新一次,总共刷新3次 )

sar -p ALL

vmstat -n 3 3

查看系统内存

free -h

查看系统I/O

iostat -x 1 (每隔一秒输出一次)

查看系统磁盘

lsblk

fdisk

查看磁盘挂载信息

有时候挂载的磁盘突然出现问题,只能读不能写,或者其它问题,使用mount可以看到所有磁盘的基本属性,没行的后面会有rw或者ro的磁盘模式,这里可以简单知道目前挂载磁盘是否正常。

mount

查看系统日志

使用dmesg查看系统日志,可以查看到内核、设备一些日志。如果一个磁盘出现读写异常、或者应用出现问题、使用dmesg可以帮你定位问题

dmesg

/var/log/message (centos)

查看进程、线程详情

查看进程占用端口号:

netstat -nap | grep httpd

查看进程、线程正在占用哪个cpu核

  1. pidstat -p

    说明:
    使用pidstat -p 会得到一下输出,红框CPU就是代码正在使用的CPU核。还可以使用-t 参数来定期输出。只运行pidstat则是会默认允许pidstat -p ALL
    在这里插入图片描述

    注意: 详细请使用man pidstat 查看文档

  2. 使用top命令

    • 运行top命令
    • 键入f
    • 把 P = Last Used Cpu (SMP) 这行设置成display(即前面有个* 号,代表显示)

查看进程、线程内存、cpu使用详情

top -p

ps -aux

cat /proc//status

查看进程、线程I/O使用

pidstat -p -d 1

iotop -p ( 注意:需要按装iotop工具 )

查看进程开启的线程详情

前段时间使用memcached的时候,发现服务异常,提示open file too many的错误,这就需要查看进程的线程数,和究竟是哪个线程占用了连接。

  • 查看线程数:

cat /proc//fd | wc -l

  • 查看线程连接情况

losf -p

  • 通过端口号查看对端连接的线程名

lsof -i:PORT_ID

sysstat的简单说明

分析Linux服务器的性能,sysstat是一个非常方便的工具,它包含sar、mpstat、 pidstat、vmstat、iostat下面把从man查看到的描述信息贴出来,方便了解每个命令具体的使用场景。最这些命令的学习最好的方式就是通过man来阅读文档,非常详细。

/proc 虚拟文件系统

这个虚拟文件系统非常的强大,sysstat工具很多都是依赖proc的信息的,这里有非常多的信息,通过读取文件的形式可以获得很多系统,进程的信息。

  • /proc/cpuinfo - CPU 的信息 (型号, 家族, 缓存大小等)
  • /proc/meminfo - 物理内存、交换空间等的信息
  • /proc/mounts - 已加载的文件系统的列表
  • /proc/devices - 可用设备的列表
  • /proc/filesystems - 被支持的文件系统
  • /proc/modules - 已加载的模块
  • /proc/version - 内核版本
  • /proc/cmdline - 系统启动时输入的内核命令行参数

除了上述的这些目录,还能根据具体的进程pid来查看进程详情,比如状态,cpu,线程数等等

proc 虚拟文件系统,不仅支持读取,还能支持写入。写入的主要场景是需要和内核做交互,修改内核的参数等,之前的[Linux内核参数延申](%3Ca href=“https://blog.csdn.net/energysober/article/details/89083828”%3Ehttps://blog.csdn.net/energysober/article/details/89083828%3C/a%3E)的文章就是修改了/proc下的某些参数,达到与内核交互的目的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值