Memcached サーバー: 2 つのサーバー URL を同じサーバーにポイントするのは良い方法でしょうか?

Memcached サーバー: 2 つのサーバー URL を同じサーバーにポイントするのは良い方法でしょうか?

複数の異なるファイルとサーバーから memcache サーバーへの接続があるシステムがあります。

1 つのサーバーを維持しつつ、memcache サーバーの数を増やすオプションも残しておきたいです (トラフィックが多い期間用)。

私のアイデアは、memcache に 2 つのサーバーがあることを伝え、2 つの URL が (DNS によって) 1 つのサーバーを指すようにすることです。将来、必要になった場合は、多くの場所でコードを変更せずにサーバーを追加して DNS を変更できます。

これは良い方法でしょうか? 2 つのサーバー接続があり、両方とも同じサーバーを指しているという事実によってパフォーマンス コストが発生しますか?

コードを変更してデプロイする必要なく、memcache 容量を即座に拡張できるようにする他の方法はありますか?

答え1

これは、使用している memcached クライアントと、複数のサーバー間でキーをハッシュする方法によって異なります。1 つの memcached サーバーは、1 つの Web サーバーが処理できる接続数よりも多くの接続を処理するため (ほとんどの場合)、1 つのサーバーを指定するよりも 2 つのサーバーを指定してもパフォーマンスが向上するとは期待できません。実際、クライアントが 2 つの異なるサーバー (実際には同じ) 間でキーをハッシュしようとすると、メリットよりもデメリットの方が大きくなる可能性があります。

再度デプロイしたくない場合は、構成オプションとしてサーバーに取り込まれる環境変数にサーバーをリストします。たとえば、ENV['MEMCACHE_SERVERS'] と指定して、再度デプロイせずにサーバー側で構成するだけです。

memcache の優れた点は、冗長性やフェイルオーバーを意図しておらず、永続的な保存場所ではないことです。完全に機能しなくなり、サイトのキャッシュ ヒットが 0% になる可能性もありますが、少なくとも機能し続けます。

冗長性とフェイルオーバーの詳細については、FAQをご覧ください。

関連情報