你会在什么情况下debuggingWeb服务器以解决性能问题?

不幸的是,这是一个模糊的问题。 但有一个我时不时地面对。

现在我的服务器是一个完全托pipe的CentOS 5 – Plesk 9.2.1。

在最近几天,服务器不断地窒息在哪里apache(或)mysql或两者似乎显着减慢,页面不返回或慢慢地返回,重新启动mysql帮助,有时重新启动Apache帮助,和其他人我需要重新启动整个服务器(SSH开始真的慢)。

所以我的问题是,如果你在停机的时候debugging一个web服务器来解决性能问题,那么你会怎么做呢?

我不认为服务器获得太多的stream量(虽然它获得一致的stream量),只是似乎杀了它…

我从哪说起呢!

帮帮我!

你有没有尝试过某种forms的MySQL查询分析? 如果你运行非常密集的查询,例如SELECT * FROM tbl1 INNER JOIN tbl2 … INNER JOIN tbl3 … LEFT JOIN tbl 4 …作为一个非常基本但很明显的例子,并且你返回很多行或者你的查询没有适当的索引,这可以大大减慢你的系统 – 我从我没有经验的日子,我没有优化;-)

像mysqlreport和tuning-primer.sh脚本这样的工具是很好的起点。 mysqlreport位于http://hackmysql.com/mysqlreport ,我只能发布1个链接,所以谷歌的“tuning-primer.sh”,而不是:-)

Bernhard的反应很好,但是我build议你跳过sysstat并直接去munin 。 与负载的graphics表示会更容易弄清楚,如果你正在交换(太多的Apache程序?),垃圾磁盘[严重优化的SQL查询,太大的临时表? ],用尽CPU等。

为mysql打开慢查询日志 。

您应该先安装sysstat软件包。 它会每10分钟创build一次有关CPU,内存和I / O负载的统计信息。 当服务器再次开始慢时,您可以查看“sar”实用程序(包的一部分)的输出,以确定哪个资源是实际的瓶颈。