我目前运行一个网站,每天大约有15,000-20,000次点击。 我们目前运行一个非常活跃的论坛,使用Vbulletin软件进行托pipe。 我们有450万个post,8万个线程,大约有11000个成员,其中不到三分之一的人一直活跃着。 现在我运行带有4GB RAM,Centos 5.5的Intel Xeon四核(2.13Ghz),并在机器上运行DirectAdmin来pipe理它。 我也运行当前稳定版本的Apache,MySQL和php。 这是此机器上唯一托pipe的网站。 现在在一天的随机时间里,有时候忙时服务器负载可能会达到20,但是当我们只有200个用户活动的时候也会发生这种情况。 我不明白是什么造成这些问题。 有时我会得到页面,在其他时间可以在2秒钟内生成,如5-8秒。 我已经定制了my.cnf文件,并没有什么帮助,我不知道还有什么可以转动,所以如果有人有任何build议,请让我知道。
你有没有login到位:
可悲的是,许多人经常忘记查看日志,以了解他们的问题。
我将从一些基本的监视,logging和诊断工具集开始。
- 最佳
- mtop http://mtop.sourceforge.net
- innotop http://innotop.sourceforge.net
- MySQL进程列表/ mysqladmin进程
- MySQLTuner http://mysqltuner.pl
- MySQLidxchk: http ://hackmysql.com/scripts/mysqlidxchk-1.1(很适合日志parsing)
- MySQLSLA – MySQL的状态报告: http ://hackmysql.com/scripts/mysqlsla
- MySQLReport – http:// hackmysql.com/scripts/mysqlreport(将MySQL的SHOW STATUS值解释为关于MySQL如何运行的详细报告
- IOTOP / SAR
- 你确定所有的stream量是有效的stream量? 可能要仔细检查日志并确保stream量有效。
- 所有连接 – 从相同的IP地址是多个? (比平时多)使用这个来检查有多less连接来自1 ip:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
- 你也可以使用Mod_Evasive进行一些工作
- 根据您的发现 – 将MySQL移动到另一台服务器
- 考虑一下负载平衡器 – 或者Nginx,或者从Apache webhosting解决scheme转移到另一个像切诺基,Nginx等等。
如果这篇文章已经帮了你 – 你为什么不投它:-)祝福
还有一些其他的事情,除了格伦的优秀名单:
- 检查“顶”和“免费”,以确保您没有使用任何交换内存,因为这会杀死你的performance。 如果你发现你开始使用交换,那么减lessApache(主要减lessMaxClients)和MySQL(所有各种caching/缓冲区选项)的内存要求。
- 如果论坛是PHP,请确保您正在运行eAccelerator或APC等操作码caching。
- 考虑使用诸如ab或siege之类的东西来testing网站的性能。 这将为您提供服务器的当前function,并允许您testing特定优化的效果。
- 使用top查看哪些应用程序在高峰时间使用了CPU。 这会给你一个基本的想法,从哪里开始优化。
- 如果你正在提供大量的静态内容,可以考虑使用更轻量级的Web服务器(比如lighttpd或者nginx)。
- 检查MySQL中的查询日志统计信息,确保它已启用并正常运行。 如果你得到很多“低MEM梅”考虑使用更多的内存caching,如果可以的话。
- 如果你给MySQL更多的内存而不是Apache,你可能会获得最好的性能。 理想情况下,您希望您的活动logging集能够完全保存在RAM中,从而最大限度地减less磁盘访问。 这不是数据库的总大小,而是每天通常读取的所有logging的大小。 在一个4GB的机器上,我会确保MySQL至less得到1GB的总体。
- 请注意,stream量通常会激增,您的服务器不仅需要处理平均stream量速率,还要处理stream量高峰。 不要陷入这样一种情况,即您的设置只能处理平均stream量,但在stream量高峰/激增时开始落后。 那么你就处于服务器正在努力维持的状态,但是越来越重。
从我自己的经验来看,你的服务器应该足以支持每天20万次访问,并且有一个很好的configuration和一些优化的调整。 如果理论上可以得到10倍或更多的工作,我不会感到惊讶。