2016-10-04 11 views
0

memsql cnf内のtransaction_bufferに設定できる最大値はいくらですか?私は、サーバーに割り当てられたRAMとの相関があると仮定します。私の葉には32Gがあり、現時点ではtransaction_bufferは0に設定されています。クラスター上でフェーズを設計することに成功し、パフォーマンスチューニングを行いたいので、それに応じて設定する必要があるパラメータが1つあります。transaction_buffer最大値

答えて

1

transaction_bufferのサイズは、データベースパーティションごとに予約されたメモリの量です。つまり、各リーフノードは、リーフあたりのtransaction_bufferサイズ*パーティション、データベースメモリの数を必要とします。デフォルトは128 MBで、これで十分です。

0

基本的には、バランスのとれた処理です - transaction_bufferのデータはディスクに書き込まれる前にメモリに存在します。 transaction_bufferが0の場合、メモリが節約されるかもしれませんが、メモリ内にある速度の利点を十分に生かしていません。頻繁に更新されないデータベースがたくさんある場合、データベースごとのコストであるため、低いtransaction_bufferが適切なバランスになる可能性があります(各パーティションはデータベース自体であることに注意してください)。

Transaction_bufferは、あなたの作業負荷がますますメモリに集中するようになると、メモリを減らすためにMemSQLを頻繁に使用している状況に陥る可能性があるため、消費。そのような悪循環に陥ると、トランザクションバッファーを減らして再起動すると、メモリオーバーヘッドが削減され、システムをOOMで終了させずに問題をトラブルシューティングして修正できるようになります。

最終的には、適応性があるかもしれませんし、あなたは簡単な方法で揺れる部屋を得ることができません。これは、システムがOOM killプロセスを開始しないようにmaximum_memoryが十分に低いことを確認することが不可欠である理由です。 https://docs.memsql.com/docs/memory-management