[Senna-dev 414] 大きなテーブルのカラムに対するインデックス

Back to archive index

島村 優太郎 ml****@ryne*****
2006年 12月 8日 (金) 14:48:34 JST


島村です。

以前からSenna+MySQLの高負荷で落ちる、という現象は
LinuxThreadsを使用することで少しは強くなるようです。
(@FreeBSDでpthreadを使用していた場合)


他に報告が来てる落ちる現象が
どのようなものかわからないので、
なんともいえないのですが、、


FreeBSDの場合で
ネイティブスレッドを使用したバイナリだと、
負荷が高くなったときであればいつでも落ちました。
(というより、あまり強くない?)
デバッグフラグを立てるとさらに弱くなりました。
これはportsからインストールしたMySQLでも、ソースでも 
同様でした。

特にプロセスが確保しているメモリの量が多いと、
スレッドの切り替えがうまく動かないようです。
基本的に256MB以上を確保すると
次第にアラが出始めました。
(amd64ではなく、i386+PAEですが‥)




しかしながら、LinuxThreadsを使用しても
負荷がかかりすぎると落ちてしまいます。
空きメモリは2GB以上あったのですが、以下のエラーで止まって 
しまいました。

mysqld got signal 10;
This could be because you hit a bug.
(...)

key_buffer_size=33554432
read_buffer_size=1044480
max_used_connections=3
max_connections=35
threads_connected=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size) 
*max_connections = 104307 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.


Sennaを使用していないMySQL(4.0.27)+LinuxThreadsは
現在メモリを1400MB近くまで固定していますが、問題は出ていま 
せん。


Senna(rev261)を使用したMySQL5.0.27+LinuxThreadsでは、
落ちた、というよりはソケットもpidファイルものこしたまま反 
応しなくなります。
一応、接続が出来ないのでkill -ABRT `cat *.pid`で再起動させ 
ました。
張ったインデックスは300万records/400MBのテーブルでし 
た。(INITIAL_N_SEGMENTS=192)



大きなテーブルにインデックスを張る場合に、
何かコツみたいなものがあるのでしょうか?

------------------☆
島村 優太郎
yu.sh****@gmail*****
------------------☆





Senna-dev メーリングリストの案内
Back to archive index