转自:http://blog.csdn.net/sasoritattoo/article/details/9318893

转自:http://fishermen.iteye.com/blog/1995862

使用系统命令top即可看到如下类似信息:
Cpu(s):  0.0%us,  0.5%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
但不知什么含义?google之

I try to explain  these:
us: is meaning of "user CPU time"
sy: is meaning of "system CPU time"
ni: is meaning of" nice CPU time"
id: is meaning of "idle"
wa: is meaning of "iowait" 
hi:is meaning of "hardware irq"
si : is meaning of "software irq"
st : is meaning of "steal time" 中文翻译为: us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断 
st: 实时 ===========================================================================================================================================

对Linux 网卡软中断做负载均衡

测试中发现服务器整体负载较低,但有cpu负载特别高,其中一个cpu几乎一半是软中断si,特别忙,而还有的cpu特别空闲。

  1. top - 16:12:08 up 31 days,  3:52,  1 user,  load average: <span style="color: #ff0000;">0.11, 0.11, 0.06</span>
  2. Tasks: 242 total,   4 running, 238 sleeping,   0 stopped,   0 zombie
  3. Cpu0  : 12.3%us, 14.6%sy,  0.0%ni, 70.2%id,  0.0%wa,  0.0%hi,  3.0%si,  0.0%st
  4. Cpu1  : 21.6%us, 22.9%sy,  0.0%ni,  7.3%id,  0.0%wa,  0.0%hi, <span style="color: #ff0000;">48.2%si</span>,  0.0%st
  5. Cpu2  : 16.5%us, 19.1%sy,  0.0%ni, 43.9%id,  0.0%wa,  0.0%hi, 20.5%si,  0.0%st
  6. Cpu3  :  2.3%us,  2.6%sy,  0.0%ni, 94.1%id,  0.0%wa,  0.0%hi,  1.0%si,  0.0%st
  7. Cpu4  :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

先用mpstat -I SUM -P ALL 5 来看一下每个cpu的终端情况,发现cpu1和cpu2处理的中断确实很多,是什么dd在使用这两个cpu做中断呢?

  1. # mpstat -I SUM -P ALL 5
  2. Linux 2.6.32-220.13.1.el6.x86_64 (talus186)     12/26/2013  _x86_64_    (12 CPU)
  3. 04:15:18 PM  CPU    intr/s
  4. 04:15:23 PM  all  62422.60
  5. 04:15:23 PM    0      0.00
  6. 04:15:23 PM    1  21566.20
  7. 04:15:23 PM    2  12123.00
  8. 04:15:23 PM    3      0.00
  9. 04:15:23 PM    4      1.00

使用 cat /proc/interrupts 查看中断情况,间隔几秒后再次cat /proc/interrupts,然后比较对应值的变化,发现eth0-1、eth0-2等使用cpu1、cpu2做中断,这两个对应的中断号分别是95,96...

  1. 95:         33  325897741          0   30997484         72          0   93968731          0          0          0        426        864  IR-PCI-MSI-edge      eth0-1
  2. 96:         50        206   66609822        117          0          0          0          0          0          0          0   24437509  IR-PCI-MSI-edge      eth0-2

注:网卡(包括磁盘等外设)需要cpu服务时,都会抛出一个中断,中断告诉cpu发生了什么事情,cpu就要停止目前的工作来处理这个中断。比如当网卡收到包时,假如cpu正在执行某个应用进程处理程序,此刻就会被网卡中断所打断执行中断处理程序。每个外设对应的中断处理程序自然是不同的,因此为了进行区分,防止多个设备发出相同的中断请求,系统中的每个设备都被分配了一个独一无二的IRQ(Interupt Request),上面95、96就是所谓的IRQ,如果网卡有多队列,每个队列可以对应一个IRQ(参考net)。

在使用 cat /proc/irq/95/smp_affinity cat /proc/irq/smp_affinity 等看出网卡的队列都在使用cpu1 和cpu2

  1. cat /proc/irq/95/smp_affinity
  2. 00000002
  3. cat /proc/irq/96/smp_affinity
  4. 00000004

好了,把空闲的cpu用上来分摊网卡中断

  1. echo 08 > /proc/irq/97/ smp_affinity
  2. echo 10 > /proc/irq/98/ smp_affinity
  3. ...

再进行测试,发现cpu消耗整体还不够均衡,TOP下使用f,然后再加j,发现应用进程使用的cpu与网卡中断使用的cpu重合,再把单线程应用进程绑定到其他CPU,终于均衡下来。

最后,网卡软中断绑定cpu需要满足几个条件:1 linux内核版本必须在2.4+; 2 网卡对应的中断控制器必须是IO-APIC芯片,且需启用IO-APIC;3 部分CPU可能不支持。

CPU状态信息us,sy,ni,id,wa,hi,si,st含义的更多相关文章

  1. Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义

    原文 Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义 缙哥哥发现用了雅黑的探针,在 Linux 的 CPU 状态信息中发现,有“%us.%sy.%ni. ...

  2. CPU状态信息us,sy等含义

    目录 一.概述概述 二.详解 us和sy ni id wa hi和si st 三.总结 一.概述概述 比如一秒内有100个cpu时间片,这个cpu时间片就是cpu工作的最小单位.那么这100个cpu时 ...

  3. top命令查看CPU状态信息:%us、%sy、%ni、%id、%wa、%hi、%si、%st 表示的是什么意思

    Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义 2018-08-26 分类:Linux 评论(0)   缙哥哥发现用了雅黑的探针,在 Linux 的 C ...

  4. 统计Linux下的CPU状态信息

    def cpu(): all_cpus=[] with open('e:/cpu.txt') as f: core={} for line in f.readlines(): ab=line.spli ...

  5. linux系统常用监控系统状态信息命令

    [root@bogon ~]# uptime #平均负载 23:33:21 up 2:09, 3 users, load average: 0.02, 0.05, 0.05 [root@bogon ~ ...

  6. aix 查看内存,CPU 配置信息

    内存lsattr -El mem0cpu lsdev -C |grep procCPU的信息lsattr -El proc0   #bootinfo -r查看物理内存     使用命令#  lsdev ...

  7. top命令之你不一定懂的cpu显示信息

    %st(Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比. ------------------------------- ...

  8. CentOS命令top下你不一定懂的cpu显示信息

    在使用top命令的时候会看到这么一行: 里面的各个值分别是什么意思呢? 今天被问到这个问题,发现答的不是很清楚.果然啊,天天用最多的top命令都还没摸透...惭愧...于是就查了些资料: 官方解释 C ...

  9. Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址

    本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子  只要在不同的路由器上可以重复 外 ...

随机推荐

  1. Java 随机抽奖

    package Third; import java.util.Scanner; public class LotteryOdds { public static void main(String[] ...

  2. javascript 技巧总结积累(正在积累中)

    1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 & ...

  3. spring统一日志管理,切面(@Aspect),注解式日志管理

    step1 开启切面编程 <!-- 开启切面编程(通过配置织入@Aspectj切面 ) --> <aop:aspectj-autoproxy/> <aop:aspectj ...

  4. String StringBuffer StringBuilder

    package com.test; import java.util.Date; /*** * * // 输出的结果是:// 来一个测试// 来一个测试如果只输出这句就证明了String是不可变的// ...

  5. [从产品角度学excel 04]-单元格的“衣服”

    忘记发这里了..补发一下 这是<从产品角度学EXCEL>系列——单元格篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 2 EXCEL里的树形结构 3 单元格 ...

  6. unixLike命令拾遗

    针对在日常工作过程中,发现的学习的漏洞和忘记的知识,进行拾遗. 编辑命令 一.vim操作 1.进入编辑模式 在光标移到将要编辑处,点击i,进入编辑模式 2.退出编辑模式 按esc或者crtl+c退出编 ...

  7. iOS-关于使用其他应用打开本应用文档

    简介:本片文章是对官方文档的翻译,非常的感谢文章的翻译者:颐和园 官方地址:Document Interaction Programming Topics for iOS 文章的介绍内容: ***** ...

  8. marquee上下左右循环无缝滚动代码

    一.横向滚动<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN "><HTML>< ...

  9. JSP页面元素构成

    1.page指令 <%@ page 属性1="" 属性2="" 属性3=""> <%@ page language=&qu ...

  10. 关于JavaScript初级的知识点一(持续更新 )

    自己刚开始接触JS这是自己一个多月以来的一些总结和回顾. 一.什么是js? js是一种弱类型的脚本语言,是HTML的3大组成部分之一.HTML标签 CSS样式 JS脚本. 二.js的5种基本数据类型 ...