日期:2014-05-16  浏览次数:20752 次

Linux服务器性能小结

一、服务器性能因素???

?

?1、CPU 2、内存? 3、磁盘I/O带宽? 4、网络I/O带宽

?

Load:

系统负载指运行队列的平均长度,也就是等待CPU的平均进程数。Load越高说明系统响应越慢,如果load是0,代表进程不需要等待,立刻就能获得cpu运行。可以通过查询文件/proc/loadavg获取系统在前一分钟、前五分钟和前十五分钟的平均负载以及当前运行的进程、系统的进程数和上一次调度运行的进程。

justin@junjun:/proc$ cat/proc/loadavg

0.71 0.70 0.63 1/403 5111

在linux系统中,也可直接通过命令行 “w”或者“uptime”查看,如下:

16:10:22 up 1 day,?4:18,? 3 users,? load average: 0.34, 0.50, 0.52

USER???? TTY????? FROM??????? ??????LOGIN@??IDLE?? JCPU?? PCPU WHAT

justin?? tty7???? :0?????????????? Tue11?? 28:19m 10:15?? 0.22s gnome-session

justin?? pts/0??? :0.0???????????? Tue11?? 28:17m?2:22?? 0.00s /bin/bash./jettyctl.sh

justin?? pts/1??? :0.0???????????? 16:08??? 0.00s?0.17s? 0.00s w

?

cpu usage:

系统的CPU使用率。

可以用“top”命令动态的显示当前系统进程用户的使用情况。


?

前五行是系统整体的统计信息。

第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:当前时间;系统运行时间,格式为时:分;当前登录用户数;系统负载,即任务队列的平均长度。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。

内容如下:Tasks: 175 total进程总数;1 running正在运行的进程数;174 sleeping睡眠的进程数;0 stopped停止的进程数;0 zombie僵尸进程数

Cpu(s):22.0% us用户空间占用CPU百分比

20.7%sy内核空间占用CPU百分比

1.1%ni用户进程空间内改变过优先级的进程占用CPU百分比

52.7%id空闲CPU百分比

3.3%wa等待输入输出的CPU时间百分比

0.0%hi

0.2%si swap in,表示虚拟内存的页导入,即从SWAPDISK交换到RAM

0.0%st swap out,表示虚拟内存的页导出,即从RAM交换到SWAPDISK。

?

PR:操作系统给进程的安排的优先级。这个值标示进程调度器分配给进程的时间片长度。单位是时钟个数。如果一个Linux系统的时间片是10ms,那么PID是2718的进程在执行了200ms后,才会进行进程切换。?

RES:进程占用的物理内存大小?????????????

VIRT:物理内存+虚拟内存。

????????????????????????????????????????????????????????????????????????

吞吐率:

服务器单位时间内处理的请求数,一般用来描述并发能力,当然谈吞吐率的前提是并发用户数。不同的并发用户数下,吞吐率自然大不相同。单位是“请求数 /秒”。吞吐量分为网络吞吐量和事务吞吐量,当作为事务吞吐量时,采用TPS来衡量。目前线上环境Apache没有mod_status模块,不能很方便的查询。

?

TPS:

服务器每秒处理的事务数。PV在性能测试中的表现形式是以TPS来体现的,两者有一个转换公式,如下:

TPS平均值 =((PV*80%)/(24*60*60*40%))/服务器数量 =? pv/s

TPS峰值 =(((PV*80%)/(24*60*60*40%))*1.6) /服务器数量=? pv/s ,这个和我们经常说的“2-8原则”贴近。

?

二、系统性能评估参考标准


影响性能因素

评判标准

糟糕

CPU

user% + sys%< 70%

user% + sys%= 85%

user% + sys% >=90%

内存

Swap In(si)=0

Swap Out(so)=0

Per CPU with 10 page/s

More Swap In & Swap Out

磁盘

iowait % < 20%

iowait % =35%

iowait % >= 50%

?

?

?

三、性能分析工具和命令

?

1.常用系统命令

vmstat、sar、iostat、netstat、free、ps、top等

?

2.常用组合方式

??????????? 用vmstat、sar、iostat检测是否是CPU瓶颈

??????????? 用free、vmstat检测是否是内存瓶颈

??????????? 用iostat检测是否是磁盘I/O瓶颈

??????????? 用netstat检测是否是网络带宽瓶颈

?

3、用工具进行分析

?

?? Vmstat



?

列表含义:

Procs

???? r:运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU。

???? b:在等待资源的进程数,比如正在等待I/O、或者内存交换等。

Memory

???? swpd: 虚拟内存使用情况,单位:KB

???? free: 空闲的内存,单位KB

???? buff: 被用来做为缓存的内存数,一般对块设备的读写才需要缓冲,单位:KB

???? cache:表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。

Swap

???? si: 从磁盘交换到内存的交换页数量,单位:KB/秒

?

???? so: 从内存交换到磁盘的交换页数量,单位:KB/秒