我的客户有一个非常大的基于 Joomla 的网站,托管在 Amazon EC2 上,内存为 1.5GB。该服务器同时托管 Apache 和 MySQL。目前数据库大小约为 250MB,网站每天的访问量约为 5000。看起来网站上存在严重的内存泄漏,因为有时 MySQL 使用了大约 99% 的 CPU 内存然后崩溃。我已经尝试优化数据库表,修改我的.cnf
,但仍然没有任何改进。
Joomla 智能搜索使用的查找器表占用超过 100MB 的数据库大小。我禁用了智能搜索,但问题仍然存在。
朋友,请提出一些解决此问题的建议。
谢谢。
下面是 my.cnf 文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
bind-address = 127.0.0.1
default-storage-engine=innodb
transaction-isolation = REPEATABLE-READ
character-set-server = UTF8
collation-server = UTF8_general_ci
max_connections = 5000
wait_timeout = 30
connect_timeout = 60
#interactive_timeout = 600
#max_connect_errors = 1000000
#max_allowed_packet = 10M
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
slow_query_log
long_query_time = 2
[mysqld_safe]
log-error=/var/log/mysqld.log
myisam_sort_buffer_size = 64M