如何分析系统性能瓶颈(初级)

1、cpu与load

        1.1%cpu

             %cpu是根据cpu每个核的利用率之和计算出来;                              

        if (prev_hist_count) do {
                if (prev_hist[i].pid == pid) {
                        cur->pcpu = cur->ticks - prev_hist[i].ticks;
                        total_pcpu += cur->pcpu;
                        break;
                }
                i = (i+1) % prev_hist_count;
        
        } while (i != last_i);
      很明显total_pcpu就是累加了每个线程对每个核的使用率,所以%CPU的最大值就是核数*100%。
   1.2cpu利用率
            是从系统的/proc/stat这里读取的,那么CPU利用率可以使用以下方法,先取两个采样点,然后计算其差值:
        cpu usage=(idle2-idle1)/(cpu2-cpu1)*100 cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100;
1.3 cpu与load关系
load是从/proc/loadavg中读取的,Linux的系统负载指运行队列的平均长度,也就是等待CPU的平均进程数。

                load与执行的任务有关;

   

2、影响linux系统因素

       1)cpu

影响性能因素

评判标准

糟糕

CPU

user% + sys%< 70%

user% + sys%= 85%

user% + sys% >=90%

内存

Swap Insi)=0

Swap Outso)=0

Per CPU with 10 page/s

More Swap In & Swap Out

磁盘

iowait % < 20%

iowait % =35%

iowait % >= 50%

        2)mem

   系统内存充足:应用程序可用内存/系统物理内存>70%

     系统内存满足要求:20%<应用程序可用内存/系统物理内存<70%时,表示系统内存资源基本能满足应用需求,暂时不影响系统性能。

   系统内存不足:用程序可用内存/系统物理内存<20%时,表示系统内存资源紧缺,需要增加系统内存;

        3)disk  io           

      正常情况下svctm应该是小于await值的,而svctm的大小和磁盘性能有关,CPU、内存的负荷也会对svctm值造成影响,过多的请求也会间接的导致svctm值的增加。

     await值的大小一般取决与svctm的值和I/O队列长度以及I/O请求模式,如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。

     %util项的值也是衡量磁盘I/O的一个重要指标,如果%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。

     如果Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或者优化程序,如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。    


         4)net



    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值