我有一个托pipe半专用服务器运行Centos和LAMP设置与PHP 5.2.9。 我注意到在过去的几个月中,HTTP请求需要花费更长的时间,并且很多站点的页面加载速度都显着下降。 在服务器上似乎没有任何重要的负载,我已经用系统pipe理员支持来检查这个问题,他们说没有任何明显的问题。 然而,现在至less有两个月的performance一直在恶化 – 所以我真的需要尝试弄清楚发生了什么,希望有人能够提出可能的原因。 服务器占磁盘使用量的80%左右,所以这可能会影响事情。
任何帮助或指针非常感谢!
编辑:我有eAccelerator启用,Apache KeepAlives启用,MySQLconfiguration如下。 我还应该指出,网页的大部分加载时间是连接到服务器,而不是下载页面内容。
[mysqld] max_connections = 400 key_buffer = 16M myisam_sort_buffer_size = 32M join_buffer_size = 1M read_buffer_size = 1M sort_buffer_size = 2M table_cache = 1024 thread_cache_size = 286 interactive_timeout = 25 wait_timeout = 1000 connect_timeout = 10 max_allowed_packet = 16M max_connect_errors = 10 query_cache_limit = 1M query_cache_size = 16M query_cache_type = 1 tmp_table_size = 16M #skip-innodb [mysqld_safe] open_files_limit = 8192 [mysqldump] quick max_allowed_packet = 16M [myisamchk] key_buffer = 32M sort_buffer = 32M read_buffer = 16M write_buffer = 16M
为了缩小性能问题的根源,你可以尝试做一些事情(假设它主要是一件事情):
如果您在php应用程序中进行了大量数据库查找,则可以查看索引表以及在数据库上运行优化。 还要考虑在mysql的configuration中增加thread_concurrency,buffers和table_cache。
你可能会站在通过优化Apache和PHP来获得一些速度的提高。 例如,确保在Apache中启用了KeepAlive,并考虑安装并激活mod_gzip(如果适用)。 对于PHP你可能想看看eaccelerator模块。
它可以提供磁盘子系统。 它要么与另一台主机共享,这会降低系统性能,或者更糟糕的是,这是一种大型的networking磁盘子系统。 在这两种情况下,磁盘的响应时间都受到严重影响。
在生产环境中使用真正的专用硬件是个好主意。
如果你想testing这个,将文档和mysql数据库移动到tmpfs,看看会发生什么。 这不是一切,因为系统仍然需要从根加载东西,但这是一个开始。