一、影响务器性能因素

影响企业生产环境Linux服务器性能的因素有很多,一般分为两大类,分别为操作系统层级和应用程序级别。如下为各级别影响性能的具体项及性能评估的标准:

(1)操作系统级别

  • 内存;

  • CPU;

  • 磁盘I/O;

  • 网络I/O带宽。

(2) 应用程序及软件

  • Nginx;

  • MySQL;

  • Tomcat;

  • PHP;

  • 应用程序代码。

(3)Linux系统性能评估标准如表所示:

影响性能因素

评判标准

糟糕

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%

(4)  Linux系统性能分析工具

常用系统性能分析命令;
vmstat、sar、iostat、netstat、free、ps、top、iftop等;
常用系统性能组合分析命令;
top、uptime 检查系统整体的负载、承受能力;
vmstat、sar、iostat 、top 检测是否是CPU瓶颈;
free、vmstat 检测是否是内存瓶颈;
iostat 检测是否是磁盘I/O瓶颈;
netstat、iftop 检测是否是网络带宽瓶颈。

二、 Linux服务器性能评估与优化

Linux服务器性能评估与优化是一项长期的工作,需要随时关注网站服务器的运行状态,及时作出相应的调整,如下为Linux服务器性能评估及优化方案:

1、Linux系统整体性能评估

uptime命令主要用于查看当前服务器整体性能,例如CPU、负载、内存等值的总览,如下为uptime命令应用案例及详解:

[root@web1 ~]# uptime
:: up days, :, users, load average: 6.22, 1.02, 0.91

Load average负载有三个值,分别表示:最近1分钟、5分钟、15分钟系统的负载,三个值的大小一般不能大于系统逻辑CPU核数的2倍,例如Linux操作系统有4个逻辑CPU,如果load average的三个值长期大于8时,说明CPU很繁忙,负载很高,可能会影响系统性能,但是偶尔大于8时,可以不用担心,一般不会影响系统性能。

如果load average的输出值小于CPU逻辑个数的2倍,则表示CPU还有空闲的时间片,例如案例中CPU负载为6.22,表示CPU或者服务器是比较空闲的。基于此参数不能完全确认服务器的性能瓶颈,需要借助其他工具进一步判断

2、CPU性能评估

利用vmstat命令监控系统CPU,该命令可以显示关于系统各种资源之间相关性能的简要信息,主要用它来查看CPU负载及队列情况。

如图所示,为vmstat命令在某个系统的输出结果:

Vmstat输出结果详解如下:

r                        列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU;
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等;
us 列显示了用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法;
sy 列显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多;
us+sy的参考值为80%,如果us+sy大于80%说明可能存在CPU资源不足。

利用sar命令监控系统CPU,sar功能很强大,可以对系统的每个方面进行单独的统计,但是使用sar命令会增加系统开销,不过这些开销是可以评估的,对系统的统计结果不会有很大影响。如图15-7所示,为sar命令对某个系统的CPU统计输出:

Sar输出结果详解如下:

%user                    列显示了用户进程消耗的CPU 时间百分比;
%nice 列显示了运行正常进程所消耗的CPU 时间百分比;
%system 列显示了系统进程消耗的CPU时间百分比;
%iowait 列显示了IO等待所占用的CPU时间百分比;
%idle 列显示了CPU处在空闲状态的时间百分比;
%steal 列显示了在内存相对紧张的环境下page in强制对不同的页面进行的steal操作。

3、内存性能评估

利用free指令监控内存,free是监控linux内存使用状况最常用的指令,如图15-8所示为服务器内存使用情况:

一般而言,服务器内存可以通过如下方法判断是否空余:

应用程序可用内存/系统物理内存>%时,表示系统内存资源非常充足,不影响系统性能。
应用程序可用内存/系统物理内存<%时,表示系统内存资源紧缺,需要增加系统内存,%<应用程序可用内存/系统物理内存<%时,表示系统内存资源基本能满足应用需求,暂时不影响系统性能。

4、磁盘I/O性能评估

利用iostat评估磁盘性能,监控磁盘IO读写及带宽,如图所示:

iostat输出结果详解如下:

Blk_read/s                表示每秒读取的数据块数;
Blk_wrtn/s 表示每秒写入的数据块数;
Blk_read 表示读取的所有块数;
Blk_wrtn 表示写入的所有块数。

可以通过Blk_read/s和Blk_wrtn/s的值对磁盘的读写性能有一个基本的了解,如果Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或者优化程序,如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。

利用sar评估磁盘性能,通过sar -d组合,可以对系统的磁盘IO做一个基本的统计,如图所示:

Sar输出结果详解如下:

await表示平均每次设备I/O操作的等待时间(以毫秒为单位);
svctm表示平均每次设备I/O操作的服务时间(以毫秒为单位);
%util表示一秒中有百分之几的时间用于I/O操作;

磁盘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系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。

5、网络性能评估

  • 通过ping命令检测网络的连通性

  • 通过netstat –i组合检测网络接口状况

  • 通过netstat –r组合检测系统的路由表信息

  • 通过sar -n组合显示系统的网络运行状态

通过iftop -i eth0 查看网卡流量,详细参数如下,如图所示:

<=                    客户端流入的流量;
=> 服务器端流出的流量;
TX 发送流量;
RX 接收流量;
TOTAL 总流量;
Cumm 运行iftop到目前时间的总流量;
peak 流量峰值;
rates 分别表示过去 2s 10s 40s 的平均流量。

Linux服务器性能评估与优化的更多相关文章

  1. [转载]Linux服务器性能评估与优化

    转载自:Linux服务器性能评估与优化 一.影响Linux服务器性能的因素 1. 操作系统级 CPU 内存 磁盘I/O带宽 网络I/O带宽 2.        程序应用级 二.系统性能评估标准 影响性 ...

  2. Linux服务器性能评估与优化--转

    http://www.itlearner.com/article/4553 一.影响Linux服务器性能的因素 1. 操作系统级 Ø       CPU Ø       内存 Ø       磁盘I/ ...

  3. Linux服务器性能评估与优化(一)

    网络内容总结(感谢原创) 1.前言简介 一.影响Linux服务器性能的因素   1. 操作系统级         性能调优是找出系统瓶颈并消除这些瓶颈的过程. 很多系统管理员认为性能调优仅仅是调整一下 ...

  4. Linux服务器性能评估与优化(二)

    网络内容总结(感谢原创) 1.Linux内核参数优化 内核参数是用户和系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时动态更新内核配置,而这些内核参数是通过Linux Proc文件系 ...

  5. Linux服务器性能评估

    一.影响Linux服务器性能的因素 1. 操作系统级 CPU 内存 磁盘I/O带宽 网络I/O带宽 2. 程序应用级 二.系统性能评估标准 影响性能因素 影响性能因素 评判标准 好 坏 糟糕 CPU ...

  6. linux - 服务器性能评估

    影响Linux服务器性能的因素 cpu 内存 磁盘IO 网络IO 系统性能评估标准 影响性能因素 好 坏 糟糕 CPU user% + sys%< 70% user% + sys%= 85% u ...

  7. 转贴---Linux服务器性能评估

    http://fuliang.iteye.com/blog/1024360 http://unixhelp.ed.ac.uk/CGI/man-cgi?vmstat ------------------ ...

  8. Linux服务器性能分析与优化

    影响服务器性能的因素: CPU :大部分cpu在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系统下,只有运行SMP内核才能支持 ...

  9. Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)

    补遗 关于网络接收的软中断负载均衡,已经有了成熟的方案,可是该方案并不特别适合数据包转发,它对server的小包处理非常好.这就是RPS.我针对RPS做了一个patch.提升了其转发效率. 下面是我转 ...

随机推荐

  1. SharePoint 使用Expression Web 设计网站

    创建好网站以后可就可以开始发布了 possible causes : 1.The web server may not hava the FrontPage Server Extensions ins ...

  2. C# 运算符 ?、??、?: 、?. 、 各种问号的用法和说明

    1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=null; 编译器就会报错.为了使值类型也 ...

  3. css3实现轮播图

    css3动画属性简写: animation: name  duration  timing-function  delay  iteration-count  direction  fill-mode ...

  4. CSS3新增的属性有哪些:

    CSS 用于控制网页的样式和布局. CSS3 是最新的 CSS 标准. CSS3新增了很多的属性,下面一起来分析一下新增的一些属性: 1.CSS3边框: border-radius:CSS3圆角边框. ...

  5. 解决vuex刷新页面数据丢失

    1.前言 vue构建的项目中,vuex的状态存储是响应式的,当vue组件从store中读取状态的时候,若store中的状态发生变化,那么相应的组件也会得到高效刷新,问题来了,vuex存储的数据只是在页 ...

  6. 当relative遇上z-index,阻断事件捕获

    今天在调试前端页面的时候,发现addflowrank这个元素的click事件不能触发了.下图是它的元素结构. 用开发者工具试图定位这个元素,看看它到底怎么了.发现:无论我怎么用光标定位这个元素都定位不 ...

  7. WebKit.NET-0.5简单应用(2)——音量解决方案

    查找WebKit.NET相关文档,没有找到音量控制解决方法.换思路进行解决,尝试用Win32 API进行解决 [DllImport("winmm.dll")] public sta ...

  8. [NOIP2003提高组]侦探推理

    题目:洛谷P1039.Vijos P1106.codevs1089. 题目大意:给你一系列证词,要你求出谁是凶手.具体题目见原题. 解题思路:我们枚举犯人和星期,一个一个进行判断.如果成功则记录答案, ...

  9. Adobe AIR and Flex - 保存序列化对象文件(译)

    创建任何桌面应用程序几乎总是需要在本地存储数据,通过Adobe AIR我们有几下面几个选择,一个是我们能够使用内置的 SQLite 数据库支持,对于少量的数据这是大材小用了.另外一个选择是我们通过把数 ...

  10. G4Studio+extjs+highcharts 下在ext4j的panel中放入hightCharts图表

    在G4Studio+extjs下.创建一个panel,然后将highCharts图表放入panel中.实现方法例如以下: 首先简单给出的部分代码: Ext.onReady(function() { v ...