Linux服务器问题排查常用指令

来源:互联网 发布:常州 软件企业排名 编辑:程序博客网 时间:2024/05/18 17:03
1、服务器硬指标
CPU、内存、磁盘、网络、进程......
熟悉如何查看这些指标,会对你排查线上问题很有帮助。
 
2、CPU--/proc/cpuinfo
指标:load(负载)
解释一下,load在CPU中可以理解为CPU可以并行处理的任务数,那么就是“CPU个数 * 核数”,如果CPU Load = CPU个数 * 核数 那么就是说CPU正好满负载,再多一点,可能就要出问题了,有任务不能被及时分配处理器,那么保证性能的话,最好是小于CPU个数 * 核数 *0.7。
load average: 0.09, 0.05, 0.01分别是1分钟、5分钟、15分钟的平均Load。
指标:r/b(进程状态)
r,run queue,可运行队列的线程数,这些线程都是可运行状态,只不过CPU暂时不可用,即为在运行队列中等待的进程数 ;
b,被blocked的进程数,正在等待IO请求;
查看指令/工具:
  • w [ -h ] [ -u ] [ -w ] [ -l | -s ] [ User ](打印当前系统活动摘要)
  • uptime(查询linux系统负载)
  • ps(进程查看命令)
  • top(实时显示系统中各个进程的资源占用状况)
  • vmstat
week@week:~$ vmstat
procs -----------memory-------------swap-------io-----system------cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 2  0     402041762689685203360    0    0    10    24   35   34  41779  0
  • mpstat [1|2|3|...](数字代表多少秒读取一次CPU状态)
week@week:~$ mpstat2
Linux 3.2.0-40-generic (week)     06/16/2013     _x86_64_    (4 CPU)

04:17:00 PM  CPU    %usr   %nice    %sys%iowait    %irq   %soft  %steal  %guest   %idle
04:17:02 PM  all    5.28    0.00    3.90    0.00    0.00    0.00    0.00    0.00   90.82
04:17:04 PM  all    1.62    0.00    2.12    0.12    0.00    0.00    0.00    0.00   96.13
04:17:06 PM  all    1.26    0.00    2.01    0.00    0.00    0.00    0.00    0.00   96.73
 
3、Memory--/proc/meminfo
指标:Total/Used/Free/Buffered/Cached
total:表示物理内存总量。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。
buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.cached是用来给文件做缓冲。那就是说:buffers是用来存储,目录里面有什么内容,权限等等。
而cached直接用来记忆我们打开的文件
查看指令/工具:
  • top
  • ps
  • /proc/meminfo
  • free [-bkmotV][-s <间隔秒数>]
参  数:
 -b  以Byte为单位显示内存使用情况。
 -k  以KB为单位显示内存使用情况。
 -m  以MB为单位显示内存使用情况。
 -o  不显示缓冲区调节列。
 -s<间隔秒数>  持续观察内存使用状况。
 -t  显示内存总和列。
 -V  显示版本信息。
week@week:~$ free
             total       used       free     shared    buffers     cached
Mem:       8132300    7878284     254016          0     252808    3990924
-/+ buffers/cache:    3634552    4497748
Swap:      8341500         40    8341460
 
4、I/O
 
指标:%iowait,b,w/r,tps
%iowait:每一个IO请求的处理的平均时间(单位是毫秒),这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
kB_read/s:每秒读K字节数
kB_wrtn/s:每秒写K字节数
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
tps:该设备每秒的传输次数,“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。
查看指令/工具:
  • top
  • mpstat
  • iostat
    [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ]  ]
           [ interval [ count] ]
常见用法
iostat -d -k 1 10        #查看TPS和吞吐量信息
iostat -d -x -k 1 10     #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10           #查看cpu状态
week@week:~$ iostat
Linux 3.2.0-40-generic (week)     06/16/2013     _x86_64_    (4 CPU)

avg-cpu:  %user   %nice%system%iowait  %steal   %idle
           3.98    0.01   15.76    0.04    0.00   80.22

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               4.09        39.63        87.51    3782219    8352308
sdb               0.00         0.02         0.00       1673          0
  • df/du
df命令用于检查磁盘空间使用情况
       df -k  以千字节KB 为单位显示各分区的信息
  df -a  显示所有分区包括大小为0 的分区
  df -T  显示分区类型EXT2 或EXT3 等
du命令参数用于查看文件或文件夹的大小
       du -b /home  以字节为单位显示/home 文件夹下各个子文件夹的大小
       du -h ./    以mb为单位显示当前 文件夹下各个子文件夹的大小
  du -ks /home  以千字节KB 为单位显示/home 文件夹的总大小
 
原创粉丝点击