mysql:11633
From: 草野龍雄 <草野龍雄 <kusano@xxxxxxxxxx>>
Date: Tue, 28 Jun 2005 14:43:51 +0900
Subject: [mysql 11633] mysqlのスループットが4CPU構成では期待性能にならない?
初めまして。草野と申します。 AMD-Optern252-4CPUで16GBメモリを積んだサーバに、 MySQL 4.0.18(MyISAM)で12GB程度のデータ量のDBを組んでいます。 OSはFedora3を使っています。 # uname -a (サーバ名は伏せてあります) Linux 2.6.11-1.14_FC3smp #1 SMP Thu Apr 7 19:36:23 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux 運用中のデータはOSのディスクキャッシュに収まるようにテーブルを組んでいま す。(10GB程度です) 同時に6台のサーバから秒速1000クエリ・500接続(全体で)位のところで頭打ちに なります。(コネクションスプールは使っていません) (my.cnf は set-variable = max_connections=5000) topで見ると、 top - 14:36:27 up 26 days, 9:36, 1 user, load average: 1.40, 1.38, 1.29 Tasks: 73 total, 1 running, 72 sleeping, 0 stopped, 0 zombie Cpu0 : 22.3% us, 13.9% sy, 0.0% ni, 61.2% id, 1.0% wa, 0.2% hi, 1.4% si Cpu1 : 26.4% us, 21.1% sy, 0.0% ni, 46.3% id, 1.3% wa, 0.7% hi, 4.2% si Cpu2 : 32.0% us, 21.0% sy, 0.0% ni, 45.0% id, 1.4% wa, 0.0% hi, 0.6% si Cpu3 : 17.5% us, 13.8% sy, 0.0% ni, 66.4% id, 1.7% wa, 0.0% hi, 0.6% si Mem: 16254788k total, 16187500k used, 67288k free, 251236k buffers Swap: 1020088k total, 208k used, 1019880k free, 10427348k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7116 mysql 16 0 4901m 4.4g 3896 S 99.9 28.2 10768:07 mysqld という状態になっており、mysqld のプロセスが100%となっていますが、OS的に はidle時間がかなりあります。 XeonからOpteronに乗り換える際にメモリバンドの問題をクリアできたのですが、 どうも期待通りの性能が出ていません。 ちょっと計算すると Cpu0-3のuserの数字を足しあわせるとちょうど100位になり ます。ということはマルチスレッドで動いてはいるもののCPUに関しては同時に 1つしか利用していないのでしょうか?? (つまりカレントCPUがメモリアクセス中などに別のCPUを使うとか・・) もしかするとこれは Linux のスレッドライブラリの話かもしれず、ML違いでし たらすみません。 もし、何らかの情報がありましたら、よろしくお願いします。