我有一个vb 3.8.4论坛和一个drupal的pressflow 6.22站点一起在我的托pipe服务器上
当我将drupal站点添加到服务器时,服务器中出现了很多性能问题
有时候会导致服务器停机
这里是主机服务器的规格:
- 操作系统CentOS Linux 5.5
- Webmin版本1.560
- 内核和CPU x86_64上的Linux 2.6.18-194.26.1.el5处理器信息英特尔(R)奔腾(R)双CPU E2160 @ 1.80GHz,2个内核
- 实际内存总计3.74 GB,使用2.35 GB虚拟内存总计4 GB,使用124 kB
- 本地磁盘空间总计1.76 TB,使用147.63 GB
这里是基本的apache设置:
- Apache MPM Prefork
- 主机名查看closures
- AllowOverride无
- MaxClients 100
- ThreadsPerChild 25
- StartServers 8
- MaxRequestsPerChild 4000
- mod_deflate已启用
- mod_expires已启用
这里是基本的php.ini设置:
- safe_mode = on
- max_execution_time = 1200
- max_input_time = 1200
- memory_limit = 1500M
这里是mysql的设置:
- max_allowed_packet的3G =
- MAX_CONNECTIONS = 200
- WAIT_TIMEOUT = 30
- thread_cache = 50
- connect_timeout = 30
- query_cache_limit = 1M
- interactive_timeout = 30
这是top
cpu命令结果:
这里是free -m
和iostat
命令的结果:
这里是mysqladmin -u root -p ext -ri 30 | grep tmp_disk_tables
mysqladmin -u root -p ext -ri 30 | grep tmp_disk_tables
命令结果:
- | Created_tmp_disk_tables | 1771 |
- | Created_tmp_disk_tables | 2 |
- | Created_tmp_disk_tables | 5 |
- | Created_tmp_disk_tables | 3 |
- | Created_tmp_disk_tables | 7 |
- | Created_tmp_disk_tables | 0 |
我们安装了:ffmpeg,gd库和zend优化器
CPU的平均负载总是在3以上
所以任何人都可以帮助我呢?
如果您需要任何额外的必要信息,请在评论中提问?
您有一个3.5 GB的内存限制( memory_limit = 3500M
),并有可能启动256个服务器( MaxClients 256
)。 这会使您的潜在内存消耗总量低于900 GB。 除非你的盒子里有那么多的内存,否则你交换的机会是多么的多,这就是你的性能下降的原因。
您需要大幅拨回这两个数字。 在支持Drupal的五年中,我从来没有见过3.5 GB的内存限制。 如果你有一个偶尔的任务需要一个很高的限制,它应该可以在命令行上drush
,而不是通过Apache。
什么是free -m
的输出? 怎么样iostat
( yum install sysstat
如果你没有)?
一些进程正在吃你的CPU。 要find什么,请执行以下操作:
Type on the terminal: top Press Shift+P to order the list by CPU usage.
检查哪个进程正在消耗你的cpu,或者检查如何处理它,或者把它发布在评论上。
Drupal是高度关系的。 有一点很常见,就是在磁盘上创build临时表。 如果你可以通过优化查询或者把MySQL的tmpdir放到RAM磁盘上的话,你想尽量减less这个。
运行这个:
mysqladmin -u root -p ext -ri 30 | grep tmp_disk_tables
第一项将告诉你从上次重新启动以来在磁盘上创build了多less个临时表; 之后在30秒的窗口中创build了多less个,直到你按下Ctrl-C。
你也没有说你的Drupal表是InnoDB还是MyISAM在MySQLconfiguration方面的build议。 在Drupal 6中它默认为MyISAM。