linux查看系统性能常用命令

vmstat结果内容的解释

Vmstat

procs -----------memory----------       ---swap--   -----io----       --system--   -----cpu------
        r b   swpd   free    buff       cache   si   so      bi    bo         in   cs          us sy id wa st
        2 0   88   199564 134860 1175252   0    0        0   352        9323 10496     8 6   85 0 0


procs
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。

memory
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。

swap
si 由内存进入内存交换区数量。
so由内存交换区进入内存数量。

IO
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
bo 块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。

system 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。

cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比

 vmstat命令输出分成六个部分:
  (1)进程procs:
  r:在运行队列中等待的进程数 。
  b:在等待io的进程数 。
  (2)内存memoy:
  swpd:现时可用的交换内存(单位KB)。
  free:空闲的内存(单位KB)。
  buff: 缓冲去中的内存数(单位:KB)。
  cache:被用来做为高速缓存的内存数(单位:KB)。
  (3) swap交换页面
  si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
  so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
  (4) io块设备:
  bi: 发送到块设备的块数,单位:块/秒。
  bo: 从块设备接收到的块数,单位:块/秒。
  (5)system系统:
  in: 每秒的中断数,包括时钟中断。
  cs: 每秒的环境(上下文)切换次数。
  (6)cpu中央处理器:
  cs:用户进程使用的时间 。以百分比表示。
  sy:系统进程使用的时间。 以百分比表示。
  id:中央处理器的空闲时间 。以百分比表示。

  如果 r经常大于 4 ,且id经常小于40,表示中央处理器的负荷很重。

如果bi,bo 长期不等于0,表示物理内存容量太小。


检查系统的性能情况。

1)CPU使用情况分析

以下指标来衡量CPU的负载情况.

总体利用率:

[root@linux stone]sar -u 5 5
Linux 2.4.21-4.ELsmp (linux1) 
  01/04/05

18:00:17            CPU        %user        %nice    %system        %idle
18:00:22            all        1.50        0.00        0.93        97.57
18:00:27            all        16.02        0.00        4.74        79.24
18:00:32            all        5.69        0.00        3.77        90.53
18:00:37            all        0.79        0.00        1.10        98.11
18:00:42            all        2.69        0.00        1.21        96.10
Average:            all        5.15        0.00        2.24        92.61

获得指定CPU号(多CPU情况下)的使用情况
[root@linux stone]sar -U 0
Linux 2.4.21-4.ELsmp (linux1)    01/04/05
00:00:00            CPU        %user        %nice    %system        %idle
00:10:00                      1.10        0.00        0.83        98.36
00:20:00                      0.55        0.00        0.78        97.52
00:30:00                      0.97        0.00        0.77        98.57
00:40:00                      1.15        0.00        0.93        97.09
00:50:00                      1.88        0.00        1.33        95.96
01:00:00                      1.20        0.00        1.11        96.66
01:10:00                      0.78        0.00        1.26        97.96
01:20:00                      1.07        0.00        1.04        96.91
01:30:00                      1.24        0.00        1.01        97.29

可以获得运行用户进程%user,内核进程%system 和空闲状态是CPU时间的百分比.
观察数据,获得结论:
        %user越大一般表明服务器处于运行状态;%system越大表明服务器处于系统调用
        或者I/O操作。如果CPU有大量时间处于空闲状态(%idle),那就说明CPU足够。

我们还可以获得每个时间段上内核切换当前进程的次数,如果这个数很高,表示服务器
硬件有问题。
[root@linux stone]sar -w
07:50:00        cswch/s
08:00:00        285.49
08:10:00        259.64
08:20:00        387.54
08:30:00        359.15
08:40:00        504.29
08:50:00        762.73
09:00:00        572.93
09:10:01        885.75
09:20:00        1159.97
09:30:00        1101.83
09:40:00        1095.72
09:50:00        1052.89
10:00:00        961.75
10:10:00        861.31
10:20:00        501.76
10:30:00        370.81
10:40:00        736.26
10:50:00        635.93
11:00:00        399.51
11:10:00        873.58
11:20:00        741.14
11:30:00        776.49
11:40:00        641.55
Average:        416.97

平均负载:
系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数,一般来说只要每个CPU的当
前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这
台机器的性能有严重问题.

[root@linux stone]uptime
18:07:22    up 10days,    8:05,    1user,    load average: 0.49, 0.31,1.18
表示在过去的1、5、15分钟内运行队列中的平均进程数量.

[root@linux stone]sar -q
07:50:00        runq-sz    plist-sz    ldavg-1    ldavg-5
08:00:00                      214        0.01        0.08
08:10:00                      222        0.37        0.21
08:20:00                      229        0.41        0.42
08:30:00                      239        0.45        1.10
08:40:00                      242        0.24        0.36
08:50:00                      253        1.55        1.98
09:00:00                      248        0.45        0.55
09:10:01                      273        8.17        3.85
09:20:00                      295        0.62        0.99
09:30:00                      279        0.87        0.79
09:40:00                      284        0.62        0.68
09:50:00                      302        0.38        0.51
10:00:00                      277        0.98        0.79
10:10:00                      289        0.60        0.55
10:20:00                      264        0.28        0.33
10:30:00                      269        0.28        0.31
10:40:00                      284        0.58        0.46
10:50:00                      324        1.18        0.62
11:00:00                      311        0.43        0.31
11:10:00                      330        0.65        0.54
11:20:00                      335        0.45        0.45
11:30:00                      345        0.39        0.47
11:40:00                      322        0.22        0.36
Average:                      296        0.65        0.60
runq-sz:等待运行的进程数
plist-sz:总的进程数(在process list).
ldavg-1 : 系统最后一分钟的平均负载
ldavg-5:    系统最后5分钟的平均负载

每个进程的CPU消耗量:通过了解具体的某个进程对CPU消耗的统计,我们可以确定某一进程是否存在问题,
并进行改善(改善该进程?改善硬件?....)
可以用ps -aux或者top来观察某一进程对CPU的消耗情况。
另外,vmstat工具也可以报告一些cpu的情况.
[root@linux stone]vmstat
procs                            memory        swap            io        system            cpu
    swpd    free    buff    cache    si    so    bi    bo    in            cs us sy idwa
    92456141164 102032 2346524                                      8
lenovosnb (2006-8-2318:23:39)
2) 内存情况
    你必须对系统内存管理过程进行了解,特别是页的交换等原理。一般用活动虚拟内存的总量和换页率来衡量
    内存的使用情况。从活动虚拟内存总量我们可以获得内存的需求量;根据换页率我们可以获得内存有多少处于
    使用中。换页率越高,说明内存使用很大(磁盘会咯咯响),这时候应该增加内存。

    活动虚拟内存的总量(VM)=实际内存大小(size ofreal memory)+使用的交换空间大小(amount of swap space used)
    [root@linux stone]sar -r
    07:50:00    kbmemfreekbmemused    %memused kbmemshrdkbbuffers    kbcached kbswpfreekbswpused    %swpused
08:00:00            74532    3536724        97.94                  90808    2237872    8294676        91172        1.09
08:10:00            93652    3517604        97.41                  88864    2218328    8294696        91152        1.09
08:20:00            63192    3548064        98.25                  69988    2269068    8294700        91148        1.09
08:30:00        272344    3338912        92.46                  22552    2119284    8290536        95312        1.14
08:40:00        126104    3485152        96.51                  38888    2242808    8290560        95288        1.14
08:50:00        191476    3419780        94.70                  18528    2246968    8289944        95904        1.14
09:00:00            55304    3555952        98.47                  32836    2368824    8285288    100560        1.20
09:10:01        201592    3409664        94.42                  50876    2251528    8285708    100140        1.19
09:20:00            32912    3578344        99.09                  66316    2410260    8285984        99864        1.19
09:30:00            55232    3556024        98.47                  45944    2400496    8286072        99776        1.19
09:40:00            51652    3559604        98.57                  64392    2383592    8286216        99632        1.19
09:50:00            45172    3566084        98.75                  70144    2388804    8286428        99420        1.19
10:00:00            52068    3559188        98.56                  64676    2395512    8286564        99284        1.18
10:10:00            51400    3559856        98.58                  49620    2407528    8286596        99252        1.18
10:20:00            41692    3569564        98.85                  47684    2424280    8286652        99196        1.18
10:30:00            35200    3576056        99.03                  50336    2431268    8286656        99192        1.18
10:40:00            21400    3589856        99.41                  64612    2423780    8286728        99120        1.18
10:50:00            83048    3528208        97.70                  68084    2331448    8286796        99052        1.18
11:00:00            22072    3589184        99.39                  70764    2416216    8286816        99032        1.18
11:10:00            34376    3576880        99.05                  56780    2405008    8286824        99024        1.18
11:20:00            36376    3574880        98.99                  48756    2397968    8286836        99012        1.18
11:30:00            43808    3567448        98.79                  49708    2398852    8286924        98924        1.18
11:40:00            34884    3576372        99.03                  60960    2408756    8286936        98912        1.18
11:50:00            38328    3572928        98.94                  67080    2407960    8286936        98912        1.18
12:00:00            38932    3572324        98.92                  72724    2406132    8286940        98908        1.18
12:10:00        109300    3501956        96.97                  75348    2326492    8286940        98908        1.18
Average:            64548    3546708        98.21                  96633    2330707    8291911        93937        1.12


[root@linux stone]swapon -s
Filename                                Type                Size    Used    Priority
/dev/sdb8                                partition        419292498908    -1
/dev/sdb10                            partition        4192924 0        -2
通过以上数据,我们可以获得
    活动虚拟内存的总量(VM)=kbmem +kbswpused=3.54G
    3.47G就是当前服务器需要的内存总量.
   
    [root@linux stone]sar -B
    07:50:00        pgpgin/spgpgout/s    activepg    inadtypg    inaclnpg    inatarpg
08:00:00            9.34    139.23    566687                  13589    142713
08:10:00            25.71    108.40    564261                  13539    141743
08:20:00        149.36    191.93    573187                  13399    143335
08:30:00            43.63    234.46    529094        35493        11998    134494
08:40:00        246.68    277.54    565985        25012        9177    141597
08:50:00        381.88    536.92    553537        52107        12381    140623
09:00:00        190.29    307.08    581102        31530        12311    147195
09:10:01        259.69    860.26    560927        60833        13643    142327
09:20:00        487.91    550.73    604302        55059        14379    151157
09:30:00        382.74    710.78    598312        70977        14059    149736
09:40:00        354.97    510.46    598398        70661        13795    149920
09:50:00        280.48    629.94    602880        64397        13864    150517
10:00:00        447.48    659.52    602483        69873        13362    150261
10:10:00        404.97    458.69    603719        68104        13724    150115
10:20:00        310.69    272.95    601711        67460        13898    150651
10:30:00        121.59    184.03    603972        56077        13928    151109
10:40:00        263.55    392.60    605818        60314        17208    151754
10:50:00        210.45    348.91    589640        72762        13761    148093
11:00:00        190.55    199.58    607545        54517        15086    151774
11:10:00        350.40    462.20    603874        75205        14074    150970
11:20:00        374.10    437.94    603769        70937        13904    150877
11:30:00        163.58    381.97    601763        62157        14369    150481
11:40:00            96.75    298.26    605429        45214        14093    151042
11:50:00        127.14    159.75    602817        38423        13911    150789
12:00:00            57.85    186.46    602126        27663        14362    150737
12:10:00            51.41    216.03    585281        32559        13808    146942
12:20:00            95.07    225.01    600874        6573        13793    150148
12:30:00        197.36    162.14    605716        5821        16786    151620
12:40:00            16.31    145.40    604436                  14285    151002
Average:        100.76    226.88    591604        16947        13867    148584

pgpgin/s: 换入页的KB数
pgpgout/s: 换出页的KB数
activepg: 内存中活动的页数
inadtypg: Number of inactive dirty (modified or potentiallymodified) pages in memory.
inaclnpg: Number of inactive clean (not modified) pages inmemory.
inatarpg:"Inactive    target"    number    of    pages.Thisfield is a 1-minute floating average of the number of
                            pages thesystem needs to "steal" every second in order to satisfy memorydemand.

如果系统总是存在大量的换出页的KB数,说明系统需要内存.当然,inatarpg参数也能说明问题。

3)磁盘I/O

    我们可以用iostat来获得系统磁盘的数据.
    [stone@localhost stone]$iostat
Linux 2.4.20-19.7 (localhost.localdomain)        01/06/2005

avg-cpu:    %user    %nice    %sys    %idle
                0.09    0.00    0.21    99.70

Device:            tps    Blk_read/s    Blk_wrtn/s    Blk_read    Blk_wrtn
dev3-1            0.77            4.65            17.03    11788068    43140248

tps:Indicate    the number oftransfers per second that were issued to the device
Blk_read/s:Indicate    the    amount    of    dataread from the drive expressed in a number of blocks persecond
Blk_wrtn/s:Indicate the amount of data written to the driveexpressed in a number ofblocks    per    second.
Blk_read:The total number of blocks read.
Blk_wrtn:The total number of blocks written.

[stone@localhost stone]$ iostat -x
Linux 2.4.20-19.7 (localhost.localdomain)        01/06/2005

avg-cpu:    %user    %nice    %sys    %idle
                0.09    0.00    0.21    99.70

Device:    rrqm/swrqm/s    r/s    w/s    rsec/s    wsec/savgrq-sz avgqu-sz    await    svctm    %util
hdb            0.46    1.48    0.12    0.65    4.65    17.04    28.13        0.10    118.90207.70    1.60
hdb1        0.00    0.00    0.00    0.00    0.00    0.00        9.52        0.00    128.76    88.84    0.00
hdb2        0.46    1.48    0.12    0.65    4.65    17.01    28.17        0.09    117.58    13.39    0.10
hdb3        0.00    0.00    0.00    0.00    0.00    0.03    15.25        0.00    619.92519.40    0.01


[stone@localhost stone]$ procinfo   
Linux 2.4.20-19.7 (bhcompile@porky.devel.redhat.com) (gcc 2.9620000731 ) #1 Tue Jul 15 13:45:48 EDT 2003 1CPU [localhost]

Memory:        Total            Used            Free        Shared        Buffers        Cached
Mem:            255896        247240            8656                      78772        87056
Swap:        522104        26036        496068

Bootup: Wed Dec    8 10:28:532004    Load average: 0.00 0.000.00 1/72 2571

user          0:37:18.15    0.1%    page in:    5894299    disk1:    306840r 1648467w
nice          0:00:20.57    0.0%    page out:21578634
system:        1:27:38.76    0.2%    swap in:        985
idle      29d    5:39:38.40    99.7%    swapout:        8822
uptime:    29d    7:44:55.87            context:320846503

irq    0: 253349588timer                        irq    6:                                     
irq    1:            3keyboard                    irq    8:            1rtc                       
irq    2:            0 cascade[4]                irq12:    5277552 usb-uhci,eth0       
irq    3:                                          irq14:    1953315ide0                       
irq    4:                                     

4)网络负载
    可以先查看网络接口数据状态
    ifconfig如果发现collisions:0数据很大(占发送数据或者接受数据的5%以上),那么说明网络
    严重堵塞。

netstat -i
Kernel Interface table
Iface    MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0    1500    0 4701184                      912247                    0 BMRU
lo    16436    0 1285408                    01285408                    0 LRU

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值