linux性能分析命令
1、top
显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
- 命令参数:
- -b 批处理
- -c 显示完整的命令
- -I 忽略失效过程
- -s 保密模式
- -S 累积模式
- -i<时间> 设置间隔时间
- -u<用户名> 指定用户名
- -p<进程号> 指定进程
- -n<次数> 循环显示的次数
//显示 完整命令
top -c
//设置信息更新次数
top -n 2
//显示指定的进程信息
top -p 574
2、 free
显示系统内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
- 命令参数:
- -b 以Byte为单位显示内存使用情况。
- -k 以KB为单位显示内存使用情况。
- -m 以MB为单位显示内存使用情况。
- -g 以GB为单位显示内存使用情况。
- -o 不显示缓冲区调节列。
- -s <间隔秒数> 持续观察内存使用状况。
- -t 显示内存总和列。
- -V 显示版本信息。
显示内存使用情况
free
free -g
free -m
周期性的查询内存使用信息
每10s 执行一次命令
free -s 10
3、vmstat
Virtual Meomory Statistics(虚拟内存统计)
显示虚拟内存的信息
可对操作系统的虚拟内存、进程、CPU活动进行监控。
他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析
查看内存使用的详细信息
vmstat -s
4、iostat
I/O statistics(输入/输出统计)
监视系统的磁盘操作活动
它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。
也不能对某个进程进行深入分析,仅对系统的整体情况进行分析
iostat[参数][时间][次数]
- 定时显示所有信息
- 每隔 2秒刷新显示,且显示3次
- iostat 2 3
- 显示指定磁盘信息
- iostat -d sda1
- 查看TPS和吞吐量信息
- iostat -d -k 1 1
5、lsof
列出当前系统打开的文件
list open files
用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具
因为 lsof 需要访问核心内存和各种文件,所以需要root用户执行。
列出某个程序进程所打开的文件信息
lsof -c mysql
-c 选项将会列出所有以mysql这个进程开头的程序的文件,其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字符了
lsof | grep deleted
获得一个已经被删除但是仍然被应用程序占用的文件列表
- //查看谁正在使用某个文件,也就是说查找某个文件相关的进程
- lsof /bin/bash
- //递归查看某个目录的文件信息
- lsof test/test3
- //列出某个用户打开的文件信息
- lsof -u username
- //列出多个进程多个打开的文件信息
- lsof -c mysql -c apache
- //列出某个用户以及某个进程所打开的文件信息
- lsof -u test -c mysql
- //列出除了某个用户外的被打开的文件信息
- lsof -u ^root
- //^这个符号在用户名之前,将会把是root用户打开的进程不让显示
- //通过某个进程号显示该进行打开的文件
- lsof -p 1
- //列出多个进程号对应的文件信息
- lsof -p 1,2,3
- //列出除了某个进程号,其他进程号所打开的文件信息
- lsof -p ^1
- //列出谁在使用某个端口
- lsof -i :3306
- //某个用户组所打开的文件信息
- lsof -g 5555