為 Drupal 優化 my.cnf (mysql) 中的變數
我剛得到一個執行 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 選項更安全,在此之前可能還有其他需要更改的地方。