影响企业生产环境Linux服务器性能的因素有很多,一般分为两大类,即操作系统层级和应用程序级别。
以下为各级别影响性能的具体项及性能评估的标准:
- 操作系统级别。
- 内存;
- CPU;
- 磁盘I/O;
- 网络I/O带宽。 - 应用程序及软件。
- Nginx;
- MySQL;
- Tomcat;
- PHP;
- 应用程序代码。 - Linux系统性能评估标准如表所示。表为Linux性能评估标准。
- Linux系统性能分析工具
常用系统性能分析命令为vmstat、sar、iostat、netstat、free、ps、top、iftop等。
常用系统性能组合分析命令如下:
- vmstat、sar、iostat:检测是否是CPU瓶颈。
- free、vmstat:检测是否是内存瓶颈。
- iostat:检测是否是磁盘I/O瓶颈。
- netstat、iftop:检测是否是网络带宽瓶颈。
**
Linux服务器性能评估与优化
**
Linux服务器性能评估与优化是一项长期的工作,需要随时关注网站服务器的运行状态,及时作出相应的调整,以下为Linux服务器性能评估及优化方案。
- Linux系统整体性能评估。
uptime命令主要用于查看当前服务器整体性能,例如CPU、负载、内存等值的总览,以下为uptime命令应用案例及详解。
load average负载有3个值,分别表示最近1min、5min、15min系统的负载,3个值的大小一般不能大于系统逻辑CPU核数的2倍,例如Linux操作系统有4个逻辑CPU,如果load average的3个值长期大于8时,说明CPU很繁忙,负载很高,可能会影响系统性能,但是偶尔大于8时,可以不用担心,一般不会影响系统性能。
如果load average的输出值小于CPU逻辑个数的2倍,则表示CPU还有空闲的时间片,例如案例中CPU负载为6.22,表示CPU或者服务器是比较空闲的。基于此参数不能完全确认服务器的性能瓶颈,需要借助其他工具进一步判断。 - CPU性能评估。
利用vmstat命令监控系统CPU,该命令可以显示关于系统各种资源之间相关性能的简要信息,主要用它来查看CPU负载及队列情况。如图所示,为vmstat命令在某个系统的输出结果。
vm stat工具查看系统CPU资源
vm stat输出结果详解如下:
- r:该列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU。
- b:该列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。
- us:该列显示了用户进程消耗的CPU时间百分比,us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期大于50%,就需要考虑优化程序或算法。
- sy:该列显示了内核进程消耗的CPU时间百分比,sy的值较高时,说明内核消耗的CPU资源很多。
- us+sy:参考值为80%,如果us+sy大于80%说明可能存在CPU资源不足。