Linux Web服务器优化 从何入手?


网站经常会很卡,这是我刷新网页的同时 top 命令的截图。正常吗?

top命令

这是 iostat 命令的截图。
iostat命令

性能优化 nginx centos web服务器 Linux

狐狸Fse 10 years, 2 months ago

1、Apache换用nginx
2、将静态文件全部放到CDN上
3、参考YUI和google提供的页面优化方案
4、启用缓存,将热点数据放到Memecache上

傲嬌大小姐 answered 10 years, 2 months ago

cpu没有问题
内存没有问题
应该是javascript的问题,把所有的js放在页面底部

真汐波、恋萍 answered 10 years, 2 months ago

CPU比较低 内存也还能接受 那你就看看磁盘IO吧 一般到最后都是IOPS的问题 有CDN加速吗 还是JS直接从本地服务器取的?
试试iotop看看IO是否正常 http://guichaz.free.fr/iotop/
有条件的话 上SSD吧

英俊的小帅哥 answered 10 years, 2 months ago

cpu 和内存的占用并不高。
瓶颈也有可能是网络的延时,或者前端页面加载了什么太大的字体文件、js文件。

建议用chrome的调试工具里的时间线和性能分析,看看页面加载的过程卡在哪里。
或者试试YSLOW。

赤いハット answered 10 years, 2 months ago

从top和iostat的状态来看,设备的idle很富裕,负载不高,IO也不高。(当然可能是瞬时状态,最好做个长期记录,方便更好的判断)

然后网页卡可能有多个原因引起,大体上按以下项目排查下。
1. 浏览器端用chrome开发工具或者其他类似工具,先初步判断下,1)是网页的哪部分卡?是否只有某个请求卡还是都卡;2)是网络传输卡还是等待服务器处理卡?
2. 如果只有某个具体的请求卡,并且会复现,可以针对这个请求的业务流程排查下,是否在某个位置有高IO请求或者计算密集处理;如果是静态文件卡(比如图片,大文件等)可以考虑做静态文件分离(独立服务器或者做CDN);
3. 如果所有请求全部都卡,分析下时候有时间规律,是否和业务高峰时段重合,由此进一步判断是因为业务繁重导致的处理过慢还是有其他进程导致的设备资源不足;
4. 做好长期的系统负载记录,包括但不限于CPU空闲、内存使用、IO、负载、网络连接数、中断处理数,并且如果是多核的话,最好多个CPU都做下分别的记录,因为可能出现平均负载不高但主CPU负载高的情况;

在这些基础上找到原因之后,才好谈优化策略;

PS:虽然可能不是这个原因,但我注意到你的进程数量很多,是不是服务器上处理的业务太多了,可以适当的考虑做下分离。

诺幻SAMA answered 10 years, 2 months ago

我觉得首先要装个htop

传说中的少男A answered 10 years, 2 months ago

高性能产品的必由之路—性能测试工具 http://www.imooc.com/view/278
慕课网的免费教程,内容完全契合你的问题,看了一半,感觉不错,推荐参考。

yintama answered 10 years, 2 months ago

Your Answer