一,查看磁盘
命令 |
说明 |
df -hl |
查看磁盘剩余空间 |
df -h |
查看每个根路径的分区大小 |
du -sh [目录名] |
返回该目录的大小 |
du -sm [文件夹] |
返回该文件夹总M数 |
du -h [目录名] |
查看指定文件夹下的所有文件大小(包含子文件夹) |
df -h 或df -H |
查看硬盘剩余空间 |
du -hs 目录名 |
查看目录占用空间 |
sudo fdisk -l |
查看硬盘的分区 |
sudo hdparm -i /dev/hda |
查看IDE硬盘信息 |
sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id |
查看STAT硬盘信息 |
sync fuser -km /media/usbdisk |
优盘没法卸载,强退 |
df --help或du --help |
更多功能可以输入一下命令查看: |
二,查看内存和CPU
输入命令:top
PID |
USER |
PR |
NInice |
VIRT |
RES |
SHR |
S |
%CPU |
%MEM |
TIME+ |
COMMAND |
进程id |
进程所有者 |
进程优先级,越小越先执行 |
值 |
进程占用的虚拟内存 |
进程占用的物理内存 |
进程使用的共享内存 |
进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 |
进程占用CPU的使用率 |
进程使用的物理内存和总内存的百分比 |
该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 |
进程启动命令名称 |
输入命令:free
total |
used |
free |
Shared |
Buffers |
cached |
总计物理内存的大小 |
已使用多大 |
可用有多少 |
多个进程共享的内存总额 |
磁盘 |
缓存 |
Buffers/cached |
used |
free |
磁盘缓存的大小 |
已使用多大 |
可用有多少 |
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是434884KB,已用内存是3489800KB,
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
如上例:893176=434884+36436+421856
iostat命令查看
如果提示不存在,则安装下即可,iostat在sysstat包中:
yum -y install sysstat
1.硬盘读写性能,查看TPS和吞吐量信息
iostat -d -k 1 10
字段 |
说明 |
-d |
显示某块具体硬盘,这里没有给出硬盘路径就是默认全部了 |
-k |
以KB为单位显示 |
1 |
统计间隔为1秒 |
10 |
共统计10次的 |
Device: |
tps |
kB_read/s |
kB_wrtn/s |
kB_read |
kB_wrtn |
sda |
14.54 |
417.21 |
368.06 |
15719357562 |
13867444535 |
dm-0 |
104.60 |
415.64 |
366.87 |
15660312829 |
13822621684 |
dm-1 |
0.69 |
1.57 |
1.19 |
59041280 |
44822840 |
2查看设备使用率(%util)、响应时间(await). iostat -x 参数,
iostat -d -k -x 1 10
Device: |
rrqm/s |
wrqm/s |
r/s |
w/s |
rkB/s |
wkB/s |
avgrq-sz |
avgqu-sz |
await |
svctm |
%util |
sda |
4.87 |
85.88 |
8.41 |
6.14 |
417.21 |
368.06 |
107.98 |
0.02 |
8.92 |
2.73 |
3.97 |
dm-0 |
0.00 |
0.00 |
12.89 |
91.72 |
415.64 |
366.87 |
14.96 |
0.06 |
1.70 |
0.38 |
3.95 |
dm-1 |
0.00 |
0.00 |
0.39 |
0.30 |
1.57 |
1.19 |
8.00 |
0.02 |
35.25 |
1.45 |
0.10 |
字段 |
说明 |
rrqm/s |
每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的 时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge); |
wrqm/s |
每秒这个 设备相关的写入请求有多少被Merge了。 |
r/s |
每秒响应的读取请求数; |
w/s |
每秒响应的写入请求数; |
rkB/s |
每秒读取的数据量; |
wkB/s |
每秒写入的数据量 |
await |
每一个IO请求的处理的平均时间(单位是微秒)。这里可以理解为IO的响应时 间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。 |
%util |
在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该 设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因 为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。 |
3.iostat -c 参数,查看CPU状态信息
iostat -c 1 10
avg-cpu |
%user |
%nice |
%system |
%iowait |
%steal |
%idle |
|
1.28 |
0.00 |
0.43 |
0.84 |
0.00 |
97.45 |
avg-cpu |
%user |
%nice |
%system |
%iowait |
%steal |
%idle |
|
0.77 |
0.00 |
0.26 |
0.00 |
0.00 |
98.98 |
avg-cpu |
%user |
%nice |
%system |
%iowait |
%steal |
%idle |
|
13.71 |
0.00 |
2.28 |
0.00 |
0.00 |
84.01 |
4.vmstat命令,查看内存使用情况
vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r |
b |
swpd |
free |
buff |
cache |
si |
so |
bi |
bo |
in |
cs |
us |
sy |
id |
wa |
st |
0 |
0 |
96 |
2934580 |
149988 |
274084 |
0 |
0 |
104 |
92 |
0 |
0 |
1 |
0 |
97 |
1 |
0 |
0 |
0 |
96 |
2934580 |
149988 |
274084 |
0 |
0 |
0 |
0 |
1088 |
252 |
0 |
0 |
100 |
0 |
0 |
0 |
0 |
96 |
2934468 |
149988 |
274200 |
0 |
0 |
148 |
0 |
1071 |
253 |
0 |
0 |
99 |
0 |
0 |
0 |
0 |
96 |
2934468 |
149988 |
274200 |
0 |
0 |
0 |
0 |
1069 |
283 |
0 |
0 |
100 |
0 |
0 |
2 |
0 |
96 |
2926656 |
150012 |
284304 |
0 |
0 |
0 |
332 |
1166 |
381 |
7 |
1 |
92 |
0 |
0 |
0 |
0 |
96 |
2935088 |
150032 |
274084 |
0 |
0 |
0 |
26560 |
1284 |
818 |
41 |
5 |
49 |
6 |
0 |
1 |
0 |
96 |
2933872 |
150096 |
274276 |
0 |
0 |
244 |
0 |
1226 |
887 |
36 |
4 |
59 |
0 |
0 |
0 |
0 |
96 |
2933872 |
150120 |
274692 |
0 |
0 |
0 |
0 |
1244 |
1646 |
15 |
1 |
84 |
0 |
0 |
0 |
0 |
96 |
2933756 |
150156 |
275040 |
0 |
0 |
0 |
0 |
1198 |
705 |
13 |
3 |
84 |
0 |
0 |
0 |
0 |
96 |
2933756 |
150156 |
275040 |
0 |
0 |
0 |
0 |
1097 |
328 |
0 |
0 |
100 |
0 |
0 |
字段 |
说明 |
**Procs ** |
进程 |
r |
在运行队列中等待的进程数 |
b |
在等待io的进程数 |
**Memory ** |
内存 |
swpd |
虚拟内存使用情况,单位:KB;切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常 |
free |
空闲的内存,单位KB;当前的空闲页面列表中内存数量(k表示) |
buff |
被用来做为缓存的内存数,单位:KB;作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。 |
cache |
作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。 |
**Swap ** |
磁盘内存交互 |
si |
从内存进入到内存交换区数量,单位:KB/秒 |
so |
从内存交换区进入到内存数量,单位:KB/秒 |
**IO ** |
设备收发 |
bi |
从块设备读入数据的总量(读磁盘)(每秒kb)。 |
bo |
块设备写入数据的总量(写磁盘)(每秒kb)这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析 |
**System ** |
切换 |
in |
每秒的中断数,表示在某一时间间隔中观测到的每秒设备中断数。 |
cs |
每秒的环境(上下文)切换次数 |
**CPU ** |
处理器按 CPU 的总使用百分比来显示 |
us |
CPU 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。 |
sy |
列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。 |
id |
列显示了cpu处在空闲状态的时间百分比 |
wa |
列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘[访问控制] |
procs
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
r、b列一般为0,表示没有等待进程,如果不为0表示系统性能有问题
si、so 两 列,表示内存交换的频繁程度,如果数值长期很大,表示内存不够,要和硬盘交换数据,也可以表示要读写的数据每次都不一样
bi、bo 两列,表示I/O输入输出很频繁