Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


16.6.2.7 memcached のスレッドサポート

memcached をソースからビルドするときに内部のスレッド実装を有効にすると、memcachedlibevent システムに加えて複数のスレッドを使用して要求を処理します。

有効にすると、スレッド実装は次のように動作します。

  • スレッド化は、コード内の関数をラップして、同じグローバル構造の同時更新から保護する基本的な機能を提供することによって処理されます。

  • 各スレッドは、独自の libevent インスタンスを使用してパフォーマンスを向上させます。

  • TCP/IP 接続は、TCP/IP ソケットで待機する単独のスレッドによって処理されます。その後、各接続は単純なラウンドロビン方式でいずれかのアクティブスレッドに分配されます。その後、接続が開いている間は、各接続はこのスレッド内でのみ動作します。

  • UDP 接続については、すべてのスレッドが 1 つの UDP ソケットで受信要求を待機します。現在別の要求を処理していないスレッドは、受信パケットを無視します。残りの (ビジーではない) スレッドのいずれかが要求を読み取り、応答を送信します。この実装では、要求を処理する可能性があるスレッドがスリープから復帰するため、CPU 負荷が増加する可能性があります。

スレッドを使用すると、ハッシュテーブルを更新する要求を個々のスレッド間で分散できるため、複数の CPU コアが使用可能なサーバーではパフォーマンスが向上する可能性があります。使用されるロックメカニズムのオーバーヘッドを最小限に抑えるには、さまざまなスレッド値を試して、特定のワークロード内の要求数とタイプに基づく最適なパフォーマンスを実現してください。


User Comments
Sign Up Login You must be logged in to post a comment.