Linux性能分析和调整的基本原则
优化linux系统需要考虑多方面的因素,因为各个因素之间相互关联,因此遇到性能问题以及性能的调节需要综合考虑,基本要素考虑与分析:  
1,那些措施能确实×××能?
1)确保系统有足够的内存。
2)使用集群;
3)对磁盘进行优化(包括文件系统),提高I/O吞吐量;
4)网络带宽;

2,影响系统性能的一般因素:
1)CPU
2)内存
3)磁盘I/O宽带
www.ixdba.net

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时间的百分比.
www.ixdba.net

观察数据,获得结论:
     %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
表示在过去的1、5、15分钟内运行队列中的平均进程数量.
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
www.ixdba.net

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.

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

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 of transfers per second that were issued to the device
Blk_read/s:Indicate  the  amount  of  data read from the drive expressed in a number of blocks per second
Blk_wrtn/s:Indicate the amount of data written to the drive expressed in a number of blocks  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/s wrqm/s   r/s   w/s  rsec/s  wsec/s avgrq-sz avgqu-sz   await  svctm  %util
hdb        0.46   1.48  0.12  0.65    4.65   17.04    28.13     0.10  118.90 207.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.92 519.40   0.01

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

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

Bootup: Wed Dec  8 10:28:53 2004    Load average: 0.00 0.00 0.00 1/72 2571

IXDBA.NET社区论坛
user  :       0:37:18.15   0.1%  page in :  5894299  disk 1:   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%  swap out:     8822
uptime:  29d  7:44:55.87         context :320846503

irq  0: 253349588 timer                 irq  6:         6                      
irq  1:         3 keyboard              irq  8:         1 rtc                  
irq  2:         0 cascade [4]           irq 12:   5277552 usb-uhci, eth0       
irq  3:         3                       irq 14:   1953315 ide0                 
irq  4:         3                      
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      0      0      0  912247      0      0      0 BMRU
lo    16436   0 1285408      0      0      0 1285408      0      0      0 LRU

本文来自:http://www.cnblogs.com/shineshqw/articles/1816197.html

转载于:https://blog.51cto.com/crazy123/1182510

Linux性能分析和调整的基本原则相关推荐

  1. Linux性能分析命令工具汇总

    转自:http://rdc.hundsun.com/portal/article/731.html?ref=myread 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章. ...

  2. (转)超全整理!Linux性能分析工具汇总合集

    原文地址:https://rdc.hundsun.com/portal/article/731.html?ref=myread 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇 ...

  3. Linux 性能分析工具汇总

    Linux 性能分析工具汇总 我从cnaaa.com购买了服务器. 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系 ...

  4. 【转】一文掌握 Linux 性能分析之网络篇(续)

    [转]一文掌握 Linux 性能分析之网络篇(续) 在上篇网络篇中,我们已经介绍了几个 Linux 网络方向的性能分析工具,本文再补充几个.总结下来,余下的工具包括但不限于以下几个: sar:统计信息 ...

  5. Linux 性能分析的前 60 秒

    Linux 性能分析的前 60 秒 为了解决性能问题,你登入了一台 Linux 服务器,在最开始的一分钟内需要查看什么? 在 Netflix 我们有一个庞大的 EC2 Linux 集群,还有非常多的性 ...

  6. linux性能分析资源推荐(重要)

    分享几个linux性能分析网站: http://linuxperformance.top/ https://blog.csdn.net/jus3ve/article/details/78315165 ...

  7. linux性能监控工具perf,Linux性能分析中常用的工具perf介绍

    今天小编要跟大家分享的文章是关于Linux性能分析中常用的工具perf介绍.系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化.性能剖析的目标是寻找性能瓶 ...

  8. 2022最火的Linux性能分析工具--perf

    ►►► 介绍 perf是Linux性能分析中,比较常用的一款工具.它基于时间采集原理,以性能事件为基础,支持针对CPU处理器相关性能指标与操作系统相关性能指标的性能分析.常被用来查找.定位源码级性能问 ...

  9. Linux性能分析工具详解

    Linux性能分析工具详解 一.tcpdump 常用用法: 这里用sudo因为当前帐号无权使用tcpdump,这里仅以一个tcp的例子来说明:sudo /usr/sbin/tcpdump tcp po ...

最新文章

  1. Docker创建自己的github(Gitea)
  2. if vue 跳出_vue使用v-if v-show 页面闪烁
  3. 【机器学习】传统目标检测算法之HOG
  4. [Linux]Centos 6.3 下源代码安装gcc 4.8.2/4.9.2
  5. Java中利用MessageFormat对象实现类似C# string.Format方法格式化
  6. 中文情感分析——snownlp类库 源码注释及使用
  7. 手把手教你强化学习 (三)马尔可夫决策过程与贝尔曼方程
  8. 跟我一起考PMP---项目整合管理
  9. c语言et1什么意思,et cetera是什么意思.如何正确使用 “etc.”
  10. 学术论文写作 | (1) Introduction写作套路
  11. 【无标题】java学习第二天
  12. android人脸识别——HowOld测测你的年龄和性别
  13. STC12C5A60S2串口通信(使用独立波特率发生器)
  14. Java 堆默认大小
  15. composer 设置版本号_Composer 版本约束表达式的使用
  16. 解决WIN8小凡不能应用的办法!
  17. Android开发之漫漫长途 XIX—HTTP
  18. ROS知识:如何实现相机接入
  19. 适合经管类学生学习的几个数据分析工具
  20. 如何清除计算机上游戏记录,如何删除玩游戏后电脑记录

热门文章

  1. 高软作业三:原型化设计——随心记
  2. python 信号量,Event, 定时器
  3. linux php 调用exec() 中,svn遇到的问题
  4. Stones HDU 1896
  5. SQL Azure SU3 现已在全球6座数据中心开始启用
  6. Enterprise Library: Data Access Application Block配置文件分析篇
  7. 《JAVA练习题目10》请对图书馆系统中的CatalogItem类、Book类和Recording类进行改造,实现其code属性的自动编码。
  8. oracle之分析函数 开窗函数,Oracle之分析函数、开窗函数
  9. 计算机桌面黑屏时间,电脑自动黑屏时间怎么调?
  10. php mysql 检索跳转_jQuery+AJAX+PHP+MySQL数据库开发搜索功能,无跳转无刷新搜索。...