不幸的是,这是一个有点模糊的问题。但我时不时会遇到这个问题。
现在我的服务器是完全托管的 CentOS 5 - Plesk 9.2.1。
最近几天,服务器一直处于堵塞状态,apache(或)mysql 或两者都似乎明显变慢,页面没有返回或返回速度非常慢,重新启动 mysql 有帮助,有时重新启动 apache 有帮助,有时我需要重新启动整个服务器(SSH 开始工作得非常慢)。
所以我的问题是,在出现停机时,调试 Web 服务器性能问题的流程是怎样的?
我不认为服务器的流量太大(尽管它的流量很稳定),只是某物好像要杀死它……
我从哪说起呢!
帮助!
答案1
您是否尝试过在 MySQL 上进行某种形式的查询分析?如果您运行非常密集的查询(例如 SELECT * FROM tbl1 INNER JOIN tbl2 ... INNER JOIN tbl3... LEFT JOIN tbl 4... 作为一个非常基本但明显的例子),并且您返回了很多行,或者您的查询没有正确索引,这可能会大大降低您的系统速度 - 我从没有优化的缺乏经验的日子中吸取了教训 ;-)
mysqlreport 和 tuning-primer.sh 脚本等工具是实现此目的的良好起点。mysqlreport 位于http://hackmysql.com/mysqlreport,而且我只能发布 1 个链接,因此请改用 Google 搜索“tuning-primer.sh” :-)
答案2
答案3
您应该首先安装 sysstat 软件包。它将每 10 分钟创建一次有关 CPU、内存和 I/O 负载的统计数据。当服务器再次开始变慢时,您可以查看“sar”实用程序(软件包的一部分)的输出,以确定哪个资源是实际的瓶颈。