3

私は非常に奇妙な問題に直面しています.redisを使用すると、書き込み速度が非常に遅くなります(理想的な世界では、書き込み速度はRAMの書き込み速度に近づく必要があります)。

これが私のベンチマークです:

package redisbenchmark;
import redis.clients.jedis.Jedis;

public class RedisBenchmark {

    private static final String REDIS_KEY = "anon_id";

    private Jedis conn;

    private long writeTimeNano=0;

    private RandomString stringGenerator;

    private String[] fields;

    public RedisBenchmark(){
        conn = new Jedis("localhost");
        stringGenerator = new RandomString(32);
    }

    public void run(int nbWrites, int nbReads){     
        writeBenchmark(nbWrites);
    }

    public void writeBenchmark(int amount){
        fields = new String[amount];

        for(int i=0; i< amount; i++){
            fields[i] = stringGenerator.nextString();           
        }

        long start = System.nanoTime();
        for(int i=0; i< amount; i++){
            write(fields[i]);
        }
        writeTimeNano+=System.nanoTime()-start;

        double seconds = (double)writeTimeNano / 1000000000.0;
        System.out.println("[write]nb:"+amount+"|time:"+seconds+"|speed:"+((amount*33)/(seconds*1024*1024))+" MB/s");
    }

    public void write(String anonId){       
        conn.hsetnx(REDIS_KEY, anonId, "1");
    }


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        RedisBenchmark benchmark = new RedisBenchmark();
        benchmark.run(100000, 200);
    }
}

RandomStringランダムな文字列を生成するクラスです (引数は文字列の長さです)

以下は、いくつかの結果です。

[書き込み]nb:100000|時間:4.408319378|速度:0.713905907055318 MB/秒 [書き込み]nb:100000|時間:4.447246995|速度:0.707656949946542 MB/秒

設定ファイルの save to hdd パラメータを変更しようとしましたが、改善されませんでした。

私には2つのアイデアがあります:
1.クライアントとサーバー(redis)が同じマシン上にあるため、ソケットの問題です
2.コネクタの実装にはパフォーマンスの問題があります

更新セット操作のベンチマーク結果:

====== SET ======
10000 リクエストが 0.09 秒で完了
50 の並列クライアント
3 バイトのペイロード
キープアライブ: 1

99.51% <= 1 ミリ秒
100.00% <= 1 ミリ秒
111111.11 リクエスト/秒

システム仕様 :
- Ubuntu 11.04
- 8GB RAM
- Intel i5 プロセッサ

どんな提案でも大歓迎です。

4

1 に答える 1