`
standalone
  • 浏览: 614168 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

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

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

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

2 )使用集群;

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

4 )网络带宽;

 

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

1 CPU

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

  表示在过去的 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

 

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.

margin: 0cm 0cm

分享到:
评论

相关推荐

    linux性能优化和分析.ppt

    Linux性能优化和分析是一项至关重要的任务,它涉及到系统的整体健康状态和高效运行。这份PPT主要探讨了如何在Linux环境中识别和解决性能问题,通过理解系统各层面的性能指标,运用适当的工具,以及掌握优化原则,来...

    Linux服务器性能调优

    将可以学习以下内容: ·安装和配置linux以便达到最高性能 ·为用户的linux环境评估并选择适当的硬件体系结构 ·理解linux2.4至2.6版本的内核:组件、性能问题以及优化可能性 ·掌握linux性能调整的核心原则和策略...

    嵌入式Linux内存使用与性能优化

    最后,性能监控和分析工具的使用不可或缺。例如,/proc/meminfo提供实时内存状态,vmstat报告虚拟内存统计,top和htop展示进程资源使用情况,strace追踪系统调用,可以帮助定位内存问题。 综上所述,优化嵌入式...

    基于Linux内核的网络性能优化.pdf

    要想完成出色的完成一个任务,需要多项系统和结构的共同支持,包括:Linux操作系统自身配置、网络拓扑结构、路由设备、接入设备等,只要其中一个环节发生问题,都会影响整个Linux操作系统网络性能。 影响Linux操作...

    linux/unix C++ 性能统计代码

    总的来说,"linux/unix C++ 性能统计代码"是一个用于监控和分析C++程序性能的工具,其简单易用的接口和灵活的适应性使得性能调优变得更加高效。开发者可以通过理解并运用这个工具,提升他们的代码在Linux/Unix环境下...

    嵌入式LINUX内存使用与性能优化高清电子书

    使用性能分析工具如`gprof`、`strace`和`perf`可以帮助定位性能问题。 6. **进程启动速度**:优化启动速度涉及减少初始化开销,如压缩或延迟加载非关键资源,优化初始化脚本,以及合理配置启动时的内存分配。 7. *...

    CPU源代码分析与芯片设计及Linux移植

    在嵌入式领域,CPU源代码分析和Linux移植至关重要。嵌入式系统往往资源受限,因此对CPU性能和功耗有严格要求。理解源代码有助于优化性能,而Linux作为开源且功能强大的操作系统,被广泛用于各种嵌入式设备。Linux...

    oracle 性能调整 sql性能优化大全

    Oracle数据库性能调整与SQL性能优化是数据库管理员和开发人员日常工作中不可或缺的部分。Oracle数据库系统以其高效、稳定和可扩展性闻名,但同时也需要通过精心的调整和优化来确保最佳性能。以下是一些关键的知识点...

    基于Linux的颠簸分析与处理.pdf

    基于Linux的颠簸分析与处理 Linux操作系统是当今最具发展潜力的操作系统之一,其稳定性、安全...我们需要了解颠簸的形成机制,掌握避免颠簸的方法,并对系统性能进行监控和分析,以便提供一个高效、稳定的计算机系统。

    Linux操作系统内核裁剪的分析.pdf

    配置内核时需要遵循几个基本原则,包括小型化、适当功能、完整性和可靠性。小型化意味着要剔除一切不必要的组件,减少内核的总体积;适当功能则要求裁剪时只保留必须的功能,以支持嵌入式系统中的应用程序;而完整性...

    Linux系统性能调优-内容指南完整版

    - **理解Linux性能指标**:如CPU使用率、内存使用、磁盘I/O速率、网络带宽等,它们是评估系统性能的基础。 2. **监控和压测工具** - **监控工具**:如`top`、`vmstat`、`iostat`、`netstat`用于实时查看系统状态...

    Linux性能监控之CPU

    ### Linux性能监控之CPU知识点详解 #### Linux Kernel调度器(Scheduler) 在Linux系统中,**调度器(scheduler)**是核心组件之一,它负责管理和分配CPU资源给不同的进程和中断。调度器通过设置不同资源的优先级来...

    嵌入式Linux内存与性能详解

    优化基本原则** - **需求分析**:明确性能瓶颈所在。 - **基准测试**:在优化前后进行对比测试。 **5. shell脚本优化** - **Builts-in和applets**:利用shell内置命令或busybox提供的轻量级工具替代外部命令。 -...

    系统性能分析与优化以及介绍常见的分析及监控系统

    性能相关的各个环节• 系统使用和优化的原则• 典型应用对系统资源使用的特点• 常见的性能分析工具介绍• 性能分析及优化的案例系统使用和优化的原则在进行系统性能分析和优化时,遵循一些基本的原则至关重要。...

    Unix和Linux下的Oracle数据库管理

    3. **内存管理**: 调整SGA(系统全局区)和PGA(程序全局区)大小,以优化性能。 八、高可用性与集群 1. **RAC(Real Application Clusters)**: 实现多节点共享数据库,提高系统的可用性和容错性。 2. **Data ...

    AIX和linux系统内存监控分析.pdf

    内存管理在AIX和Linux系统中扮演着至关重要的角色,因为它是系统性能的关键因素。本文主要探讨了这两种操作系统中内存监控的方法以及内核内存管理的基本原理。 AIX系统使用Virtual Memory Manager (VMM) 来处理内存...

    Linux下的内存管理

    **Linux内存管理的基本原则:** 1. **充分利用内存资源**:Linux认为闲置的内存资源是一种浪费,因此会尽可能地利用所有可用内存,包括将其分配给缓冲区(buffer)和缓存(cache),以提高I/O操作效率和计算性能。 2. *...

    基于Linux集群构建网络服务器的方案分析.pdf

    4. 性能监控和管理工具,便于优化和调整集群性能。 通过Linux集群构建网络服务器,不仅可以提升系统的可用性和性能,还能够降低成本,是现代网络服务架构的重要组成部分。同时,Linux集群技术还涉及负载均衡算法、...

    Linux路由表的结构与算法分析

    Linux路由表由多个部分组成,主要包括主路由表(main routing table)和额外的虚拟路由表(例如,policy routing或多宿主路由)。每个路由表包含一系列的路由条目,每个条目代表一种特定的路由规则。 1. 路由条目:...

Global site tag (gtag.js) - Google Analytics