CPU
cpu属性的7个组成部分:
cpu的利用率 Cpu(s):
0.0%us ---- 用户空间占用CPU百分比;
0.0%sy ---- 内核空间占用CPU百分比;
0.0%ni ---- 用户进程空间内改变过优先级的进程占用CPU百分比;
99.9%id ---- 空闲CPU百分比;
0.0%wa ---- 等待输入输出的CPU时间百分比;
0.0%hi, 0.0%si, 0.0%st ---- 不常用,不做介绍;
Load Average ,这个很难衡量。网上搜了一圈,还没见到几个合理的解释。我100个并发用户测试数来这两个值是:77.534%,6.108,CPU利用率比较高,Load Average也好像有点高。后来发现了如下两片博文: 理解Load Average做好压力测试 ,“Load Average是 CPU的 Load,它所包含的信息不是 CPU的使用率状况,而是在一段时间内 CPU正在处理以及等待 CPU处理的进程数之和的统计信息,也就是 CPU使用队列的长度的统计信息。 ”,基本解释了multi-process,multi-thread程序的原理。理解Linux处理器的负载均值(翻译) ,简单说起来就一句话:
Load Average < CPU个数 * 核数 *0.7
比如1个1核CPU,Load Average < 1 * 1 * 0.7;1个4核的CPU,Load Average必须 < 1 * 4 * 0.7 = 2.8。
CPU 利用率
CPU 利用率就是定义CPU 使用的百分比.评估系统最重要的一个度量方式就是CPU 的利用率.多数性能监控工具关于CPU 利用率的分类有以下几种:
-
User Time(译注:用户进程时间) - 关于在user space中被执行进程在CPU 开销时间百分比.
-
System Time(译注:内核线程以及中断时间) - 关于在kernel space中线程和中断在CPU 开销时间百分比.
-
Wait IO(译注:IO 请求等待时间) - 所有进程线程被阻塞等待完成一次IO 请求所占CPU 开销idle的时间百分比.
- Idle(译注:空闲) - 一个完整空闲状态的进程在CPU 处理器中开销的时间百分比.
CPU 性能监控
理解运行队列,利用率,上下文切换对怎样CPU 性能最优化之间的关系.早期提及到,性能是相对于基准线数据的.在一些系统中,通常预期所达到的性能包括:
-
Run Queues - 每个处理器应该运行队列不超过1-3个线程.例子,一个双核处理器应该运行队列不要超过6 个线程。
-
CPU Utiliation - 如果一个CPU 被充分使用,利用率分类之间均衡的比例应该是:
65% - 70% User Time 30% - 35% System Time 0% - 5% Idle Time
-
Context Switches - 上下文切换的数目直接关系到CPU 的使用率,如果CPU 利用率保持在上述均衡状态时,大量的上下文切换是正常的.
- 7个组成部分
- load average
内存
【第四行】----物理内存的使用情况 Mem: 5242880k total ---- 物理内存的总量; 4403900k used ---- 已经使用的物理内存的总理; 838980k free ---- 空闲内存总量; 285712k buffers ---- 用作内核缓存的内存量
【第五行】 ---- 交换区的使用情况 Swap: 2097144k total ---- 交换区的总量; 112k used ---- 已经使用的交换区的量; 2097032k free ---- 空闲交换区的量; 3127936k cached ---- 缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数据即为这些内容已经存在于内存中的交换区的大小。相应的内存再次被换出时不必再对交换区写入。
IO
网络带宽