Linux性能分析和调整的基本原则

优化linux系统需要考虑多方面的因素,因为各个因素之间相互关联,因此遇到性能问题以及性能的调节需要综合考虑,基本要素考虑与分析: 

1 ,那些措施能确实提供性能?

1 )确保系统有足够的内存。

2 )使用集群;

3 )对磁盘进行优化(包括文件系统),提高 I/O 吞吐量;

4 )网络带宽;

 

2 ,影响系统性能的一般因素:

1CPU

2 )内存

3 )磁盘 I/O 宽带

 

4 )网络 I/O 宽带

一般来说,现在的网络服务器针对提供的服务,其 CPU 速度是足够提供处理能力的;所以

影响性能的是磁盘和内存。内存不够,那么对虚拟内存管理系统来说要频繁地进行内存页

写到磁盘,磁盘写到内存的操作。这就是内存交换过程,很大地影响了性能。

 

而网络 I/O ,一般来说他不是独立的。所以要综合其他因素来考虑。

 

3 ,检查系统的性能情况。

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            0      1.10      0.00      0.83     98.36

00:20:00            0      0.55      0.00      0.78     97.52

00:30:00            0     

0.97      0.00      0.77     98.57

00:40:00            0      1.15      0.00      0.93     97.09

00:50:00            0      1.88      0.00      1.33     95.96

01:00:00            0      1.20      0.00      1.11     96.66

01:10:00            0      0.78      0.00      1.26     97.96

01:20:00            0      1.07      0.00      1.04     96.91

01:30:00            0      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:      

平均负载:

  系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数,一般来说只要每个 CPU 的当

  前活动进程数不大于 3 那么系统的性能就是良好的,如果每个 CPU 的任务数大于 5 ,那么就表示这

  台机器的性能有严重问题 .

 

  [root@linux stone]uptime

  18:07:22  up 10 days,  8:05,  1 user,  load average: 0.49, 0.31, 1.18

  表示在过去的 1515 分钟内运行队列中的平均进程数量 .

IXDBA.NET社区论坛

 

  [root@linux stone]sar -q

  07:50:00      runq-sz  plist-sz   ldavg-1   ldavg-5

08:00:00            0       214      0.01      0.08

08:10:00            0       222      0.37      0.21

08:20:00            1       229      0.41      0.42

08:30:00            0       239      0.45      1.10

08:40:00            0       242      0.24      0.36

08:50:00            1       253      1.55      1.98

09:00:00            0       248      0.45      0.55

09:10:01            0       273      8.17      3.85

09:20:00            0        295      0.62      0.99

09:30:00            0       279      0.87      0.79

09:40:00            1       284      0.62      0.68

09:50:00            0       302      0.38      0.51

10:00:00            0       277      0.98      0.79

10:10:00           

2       289      0.60      0.55

10:20:00            2       264      0.28      0.33

10:30:00            0       269      0.28      0.31

10:40:00            0       284      0.58      0.46

10:50:00            0       324      1.18      0.62

11:00:00             0       311      0.43      0.31

11:10:00            0       330      0.65      0.54

11:20:00            1       335      0.45      0.45

11:30:00            1       345      0.39      0.47

IXDBA.NET社区论坛

11:40:00            0       322      0.22      0.36

Average:             0       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

  r  b   swpd   free   buff  cache   si   so    bi    bo   in         cs us sy id wa

  0  0  92456 141164 102032 2346524    0    0     7    

2) 内存情况

  你必须对系统内存管理过程进行了解,特别是页的交换等原理。一般用活动虚拟内存的总量和换页率来衡量

  内存的使用情况。从活动虚拟内存总量我们可以获得内存的需求量;根据换页率我们可以获得内存有多少处于

  使用中。换页率越高,说明内存使用很大(磁盘会咯咯响),这时候应该增加内存。

 

  活动虚拟内存的总量 (VM)= 实际内存大小 (size of real memory)+ 使用的交换空间大小 (amount of swap space used)

  [root@linux stone]sar -r

  07:50:00     kbmemfree kbmemused  %memused kbmemshrd kbbuffers  kbcached kbswpfree kbswpused  %swpused

IXDBA.NET技术社区

08:00:00        74532   3536724     97.94         0     90808   2237872   8294676     91172      1.09

08:10:00        93652   3517604     97.41         0     88864   2218328   8294696     91152      1.09

08:20:00        63192   3548064     98.25         0     69988   2269068   8294700     91148      1.09

08:30:00       272344   3338912     92.46         0     22552   2119284   8290536     95312      1.14

08:40:00        126104   3485152     96.51         0     38888   2242808   8290560     95288      1.14

08:50:00       191476   3419780     94.70         0     18528   2246968   8289944     95904      1.14

09:00:00        55304   3555952     98.47         0     32836    2368824   8285288    100560      1.20

09:10:01       201592   3409664     94.42         0     50876   2251528   8285708    100140      1.19

09:20:00       

32912   3578344     99.09         0     66316   2410260   8285984     99864      1.19

09:30:00         55232   3556024     98.47         0     45944   2400496   8286072     99776      1.19

09:40:00        51652   3559604     98.57         0     64392   2383592   8286216     99632      1.19

09:50:00        45172   3566084     98.75         0     70144   2388804   8286428     99420      1.19

10:00:00        52068   3559188     98.56         0     64676   2395512   8286564     99284      1.18

10:10:00        51400   3559856     98.58         0     49620   2407528   8286596     99252      1.18

IXDBA.NET技术社区

10:20:00         41692   3569564     98.85         0     47684   2424280   8286652     99196      1.18

10:30:00        35200   3576056     99.03         0     50336   2431268   8286656     99192      1.18

10:40:00        21400   3589856     99.41         0     64612   2423780   8286728     99120      1.18

10:50:00        83048   3528208     97.70         0     68084   2331448   8286796     99052      1.18

11:00:00        22072   3589184     99.39         0     70764  

2416216   8286816     99032      1.18

11:10:00        34376   3576880     99.05         0     56780   2405008   8286824     99024      1.18

11:20:00        36376   3574880     98.99         0     48756   2397968   8286836     99012      1.18

11:30:00        43808   3567448     98.79         0     49708   2398852   8286924     98924      1.18

11:40:00        34884   3576372     99.03         0     60960   2408756   8286936     98912      1.18

11:50:00        38328   3572928     98.94         0     67080   2407960   8286936     98912      1.18

 

12:00:00        38932   3572324     98.92         0     72724   2406132   8286940     98908      1.18

12:10:00       109300   3501956     96.97         0     75348   2326492   8286940     98908      1.18

Average:        64548   3546708     98.21         0     96633   2330707   8291911     93937      1.12

 

 

  [root@linux stone]swapon -s

Filename                        Type            Size    Used    Priority

/dev/sdb8                       partition       4192924 98908   -1

/dev/sdb10                     

partition       4192924 0       -2

通过以上数据,我们可以获得

  活动虚拟内存的总量 (VM)=kbmem + kbswpused=3.54G

  3.47G 就是当前服务器需要的内存总量 .

 

   [root@linux stone]sar -B

   07:50:00     pgpgin/s pgpgout/s  activepg  inadtypg  inaclnpg  inatarpg

08:00:00         9.34    139.23    566687         0     13589    142713

08:10:00        25.71    108.40    564261         0     13539    141743

08:20:00       149.36    191.93    573187         0     13399    143335

IXDBA.NET社区论坛

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

IXDBA.NET技术社区

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         0     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 potentially modified) pages in memory.

inaclnpg: Number of inactive clean (not modified) pages in memory.

inatarpg: "Inactive  target"  number  of  pages.This field is a 1-minute floating average of the number of

                     pages the system needs to "steal" every second in order to satisfy memory demand.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值