24

非常に大容量の mysql データベース サーバー用に my.cnf ファイルを最適化する際に、誰かが何らかの支援を提供できることを期待しています。

Our architecture is as follows:

Memory     : 96GB
CPUs       : 12
OS & Mysql : 64-bit
Disk Space : 1.2 TB
DB Engine  : MyISAM

私たちの Web アプリケーションは、約 300 のクライアントが同時に使用しています。このインフラストラクチャで最高のパフォーマンスが得られるように、my.cnf を調整する必要があります。

インデックスと最適化されたクエリがこれの主な要因であることは十分承知していますが、適切に構成されたシステムから始めて、それに応じてクエリを体系的に再設計することでフォローアップしたいと考えています。

Here is our current my.cnf file content:

[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock
user=mysql

log-bin=mysql-bin
server-id=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=1

log-slow-queries = /var/log/mysqld_slow_queries.log
long_query_time = 10

max_connections = 500

key_buffer_size = 32768M
#max_allowed_packet = 2M
#table_open_cache = 128
#sort_buffer_size = 1024K
#net_buffer_length = 64K
#read_buffer_size = 1024K
#read_rnd_buffer_size = 1024K
#myisam_sort_buffer_size = 8M
query_cache_size = 128M
query_cache_limit = 128M

interactive_timeout = 300
wait_timeout = 300

# Added values after load testing
thread_cache_size = 8
#tmp_table_size = 256M
#max_heap_table_size = 256M
#table_cache = 512
#join_buffer_size = 512

log-error=/var/log/mysqld.log

innodb_buffer_pool_size=128M
#innodb_file_per_table
#innodb_log_file_size=250M
##innodb_buffer_pool_size=64M
#innodb_buffer_pool_size=1024M
#innodb_log_buffer_size=4M
##log-bin=mysql-bin

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#[myisamchk]
#key_buffer = 64M
#sort_buffer = 64M
#read_buffer = 16M
#write_buffer = 16M

助言がありますか?ありがとうございます。

RolandoMySQLDBA による編集

データはすべて MyISAM であるため、このクエリを実行して出力を表示してください

SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1))
recommended_key_buffer_size FROM
(SELECT LEAST(POWER(2,32),KBS1) KBS
FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables
WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','mysql')) AA ) A,
(SELECT 3 PowerOf1024) B;

@ Rolando - ありがとう...そのクエリの結果は 4G でした。

4

2 に答える 2

25

Percona ウィザードから始めて、推奨事項を現在の設定と 1 つずつ比較してみてください。適用可能な設定が思ったほど多くないことを心配しないでください。

https://tools.percona.com/wizard

2020 年頃の更新: 申し訳ありませんが、このツールはサポート終了になりました: https://www.percona.com/blog/2019/04/22/end-of-life-query-analyzer-and-mysql-configuration-generator/

key_buffer_size全員が最初にあなたが話しかけたものを指します。メモリが 96GB の場合、デフォルト値が小さい場合は注意が必要です (おそらくわずか 96M です!)。

于 2012-06-05T21:52:50.283 に答える