2013-04-24 39 views
0

我有專用服務器(英特爾四核至強E5645 VT,6 GB RAM)。但我有問題與MySQL。mysql my.cnf config for 6gb RAM

我的網站每天有40-60k的單身用戶。我需要配置my.cnf以獲得最佳性能。

我目前的配置:

key_buffer    = 256M 
max_allowed_packet  = 32M 
thread_stack   = 320K 
thread_cache_size  = 20 
myisam-recover   = BACKUP 
max_connections  = 500 
myisam_sort_buffer_size = 24M 
table_cache   = 1024 
tmp_table_size = 48M 
query_cache_limit  = 3M 
query_cache_size  = 128M 
+0

屬於http://serverfault.com – Raptor 2013-04-24 08:28:12

+0

@ShivanRaptor其實,這屬於[DBA](http://dba.stackexchange.com) – 2013-04-24 08:30:03

+0

您是否使用大多數InnoDB或MyISAM?你有更多的讀取或寫入? – 2013-04-24 08:41:51

回答

1

對於table_open_cache,看看這個頁面: https://kb.askmonty.org/en/optimizing-table_open_cache/ (它是關於MariaDB的,但也適用於MySQL的)

對於key_buffer_size的: https://kb.askmonty.org/en/optimizing-key_buffer_size/對於max_connections: https://kb.askmonty.org/en/handling-too-many-connections/

當然,myisam-recover = BACKUP會讓你放慢速度,所以確保它是必要的。但我建議你添加FORCE,以防你的服務器崩潰。

檢查query_cache_limit是否過高(當然這取決於您的工作負載)。 tmp_table_size對於避免基於磁盤的臨時表非常重要,但我無法幫到你,因爲只有你知道你的GROUP BY有多沉重。

如果你不使用InnoDB,你可以禁用插件來節省內存。