linux常用性能分析命令学习

1. lsof

功能:可以列出某个进程打开的所有文件信息

用途:查看进程打开的普通文件,目录,nfs文件,块文件,字符文件,共享库,管道,符号链接,socket流,网络socket等

举例:

—— 不带任何参数运行lsof会列出所有进程打开的所有文件

—— lsof /temp/access_log 列出哪些进程使用某些文件

—— lsof -c httpd;lsof -p PID 查找某个程序打开的所有文件

—— lsof -i :port 查看使用某个端口的进程

—— lsof -d mem 列出所有内存映射文件

—— lsof -d txt 列出所有加在内存中并正在执行的进程

2. vmstat

功能:显示系统整体负载情况

用途:性能分析

wmstat 1 每1秒刷新一下结果

 

 

结果参数解释

-r 正在运行的进程数,如果这个数字大于机器的cpu数,说明会有比较多的时间消耗在进程切换上

-b 消耗在io等待的进程数,如果有如果有比较多进程数,说明很多进程卡在io这里。

-swpd 系统交换分区大小,希望不变,如果变化说明有内存和硬盘交互,会有比较大开销。 

-free 当前可以分配的内存大小。

 

-buff  针对块设备的缓存,系统级别使用的

-cache 针对文件系统的缓存,系统级别使用的

-si 用到交换分区的时候,从硬盘换入到内存,越小越好

-so 用到交换分区的时候,从内存换出到硬盘,越小越好

-bi  从硬盘读,与io繁忙程度相关

-bo 写到硬盘,与io繁忙程度相关

-in 产生系统调用的次数

-cs 产生系统上下文切换的次数

-us cpu消耗在用户态的时间百分比

-sy cpu消耗在内核态的时间百分比

-id cpu空闲的时间百分比

-wa cpu消耗在io等待上的时间百分比

-st  虚拟机消耗cpu的百分比

cpu区域可以查看进程对cpu的占用和主要消耗在什么地方,swap和memory区域可以查看进程对内存空间使用的情况。

3. iostat

功能:对系统的磁盘活动进行监视

用途:性能分析

通常用法:iostat -x

 

 

 

await ,svctm, util 查看io是否处于比较繁忙的情况

4. netstat

功能:可以查看进程网络使用情况,(1)显示当前网络udp/tcp socket状态(2)接收,发送队列大小(3)udp接收丢包

参数:

-a 显示所有socket,包括正在监听的。(listen也要显示出来,默认只显示establish)

-n 以数字形式显示地址和端口号

-p proto显示proto指定的协议的连接(不加此参数,根据进程pid查找显示不出来)

举例:

——查看进程占用的端口

(1)ps -ef | grep 进程名 或者 jps得到对应的进程id (2) netstat -anp | grep 进程号

  (2) 查看一个端口被哪些进程占用了,一般只有一个进程能够占用一个端口

  netstat -antu | grep 9901

  可以加上tu参数,要不然会多显示其他的unix等信息。

5. top

功能:显示系统各个进程整体负载情况

用途:性能分析

6. free

功能:显示系统内存使用情况

用途:性能分析

free -k, free -m, free -g

 

posted @ 2022-09-04 14:47  my日常work  阅读(132)  评论(0编辑  收藏  举报