Mysql

為 Drupal 優化 my.cnf (mysql) 中的變數

  • September 4, 2015

我剛得到一個執行 UBUNTU 的專用伺服器,我需要為Drupal 7優化 my.cnf 中的變數。

我知道這是尾隨工作。那麼**有什麼工具可以幫助我做到這一點嗎?**我是這方面的新手。

我發現了這篇文章(這似乎有點過時了)。它顯示了具有 500mb RAM 的伺服器的一些值。

我的伺服器有 16Gb 的 RAM。我想並不像將這些值乘以 32 那樣容易……?

我使用 InnoDB 表。

For a setup with 500mb of RAM your my.cnf file may look like this:

[mysqld]
max_connections = 150
max_user_connections = 150
key_buffer = 36M
myisam_sort_buffer_size = 64M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 3M
table_cache = 1024
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1800
connect_timeout = 10
max_allowed_packet = 16M
max_connect_errors = 1000
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
tmp_table_size = 16M
innodb-flush-log-at-trx-commit=2

你的配置看起來很不錯。如果你有 16 GB 的記憶體並且它是 Mysql 的專用伺服器,那麼我會將 innodb 提升到 8 GB。Mysql 還需要“預熱”,這是開始記憶體最常用的表所需的時間。根據您的應用程序,查詢記憶體可能沒有用。(如果關閉,我會關閉)。確保打開慢查詢日誌,將長查詢設置為 5 秒。如果一兩天后沒有任何顯示,請將長查詢設置為 3 秒。使用 8GB 的​​ innodb_buffer,您應該能夠處理大於 20GB 的數據庫。您可以隨時增加 innodb 緩衝池,但需要重新啟動。

slow-query-log          = 1
slow-query-log_file     = /mysqldb/logs/.hostname..-slow-query.log
long_query_time         = 5
log_slow_verbosity      = full   

沒有神奇的文件配置,每台伺服器都有不同的負載規格、使用者、使用類型、數據庫大小等等。

儘管有一些像 mysqltuner http://mysqltuner.com/這樣的工具在一些明顯的假設下可以安全使用。將其用作提示提供者,而不是像唯一真實的真相。

還有一些關於你的配置的提示:

使用 InnoDB 更改的最重要參數是innodb_buffer_pool_size,它越大,您擁有的 I/O 越少,即使我已經看到建議使用總記憶體的 80%(可能您不需要那麼多)

有些人看到在多核機器上禁用query_cache的改進。

innodb-flush-log-at-trx-commit=2這是一個有風險的選擇,您有可能失去 1 秒的事務。我認為 1 選項更安全,在此之前可能還有其他需要更改的地方。

引用自:https://dba.stackexchange.com/questions/114182