系统信息
性能监视工具对于程序员的作用就像是听诊器对于医生的作用一样。系统信息主要针对于服务器性能较低时的排查工作,主要包括CPU信息,文件I/O和内存使用情况,通过进程为纽带得到系统运行的瓶颈。
1. 进程查询:ps
- 1.1查看正在运行进程
# 常结合grep筛选信息(e.g, ps -ef | grep xxx)
ps -ef
- 1.2以完整格式显示所有进程
# 常结合grep筛选信息
ps -ajx
2. 进程监控:top
- 2.1显示实时进程信息
# 这是个大招,都不带参数的,具体信息通过grep筛选
# 交互模式下键入M进程列表按内存使用大小降序排列,键入P进程列表按CPU使用大小降序排列
# %id表示CPU空闲率,过低表示可能存在CPU存在瓶颈
# %wa表示等待I/O的CPU时间百分比,过高则I/O存在瓶颈 > 用iostat进一步分析
top
3. 打开文件查询:lsof
- 3.1查看占用某端口的进程
# 最常见的就是mysql端口被占用使用(lsof i:3307)
# 周知端口(ftp:20/21, ssh:22, telnet:23, smtp:25, dns:53, http:80, pop3:110, https:443)
lsof -i:53
- 3.2查看某用户打开的文件
# -u(user)为用户,后接用户名
lsof -u inx
- 3.3查看指定进程打开的文件
# -p(process)为进程,后接进程PID
lsof -p 12345
- 3.4查看指定目录下被进程打开的文件
# 这里是"+d",需要注意,使用"+D"递归目录
lsof +d /test
4. 内存使用量:free
- 4.1内存使用量
# 可获得内存及交换区的总量,已使用量,空闲量等信息
free
5. 监控性能指标:sar
-
5.1监控CPU
- 5.1.1监控CPU负载
# 加上-q可以查看运行队列中进程数,系统上进程大小,平均负载等 # 这里"1"表示采样时间间隔是1秒,这里"2"表示采样次数为2 sar -q 1 2
- 5.1.2监控CPU使用率
# 可以显示CPU使用情况 # 参数意义同上 sar -u 1 2
-
5.2监控内存
- 5.2.1查询内存
# 可以显示内存使用情况 # 参数意义同上 sar -r 1 2
- 5.2.2 页面交换查询
# 可以查看是否发生大量页面交换,吞吐率大幅下降时可用 # 参数意义同上 sar -W 1 2