Spymemcachedをmemcached Javaクライアントとして選択しました。設定されたメソッドが見つからず、返答がない場合、他のmemcachedクライアントよりも10倍も速いようです。memcachedクライアントとサーバーの間で280qpsを実現するにはどうすればよいですか?
私のコード:
memcachedClient.set(キー、0、値);
代わりに:
memcachedClient.set(鍵、0、値)に.get();
私は時間のコストがはるかにセットの結果よりも気にします。
これははるかに速いようですが、memcachedクライアントでメモリリークが発生する可能性があります。
memcachedサーバーと同じコンピュータで4を実行すると、memcachedクライアントプロセスごとに約2Gのメモリが割り当てられます。そして、8コアCPUと4Gメモリはほぼ完全に消費されます。ローカルネットインタフェース「lo」はわずか0.2Gbits /秒です。
どのようにしてCPUとメモリの消費率を引き下げ、memcached qpsのスピードを上げることができますか。
memcachedクライアントから280k qpsが必要です。それぞれのqpsは50B鍵長と500B値長のデータを送信します。今、私は、ローカルホストでmemcachedクライアントを起動して、ネットワークインタフェースの帯域制限を回避しようとしています。 4つのmemcahcedプロセスでは、それぞれが6スレッドを実行します。今では目標とは大きく離れている180qpsをほとんど実現でき、CPUとメモリが限界になります。また、実際のjava memcachedクライアントを含む同じコンピュータで暴風雨を流す必要があります。もちろん、私はmemcachedクライアントがコアリソースを占有することを許可できません。
どのように私はCPUとメモリの消費を減らすことができますか、または単一のコンピュータ上のいくつかのjava memcachedクライアントと分散memcachedサーバー間で280qpsを実現するにはどうすればいいですか?
getとsetの両方がクエリの半分を取る。私は毎回50個のキーを取得するgetMultiを試すことができます。しかし、質問はまだそこにあります。
あなたの種類の返信を期待しています。お気軽に!