MySQL データベース (10GB セットアップ) で YCSB クライアントを使用して、スキャンのみのワークロードを実行しようとしています。次のコマンドを使用してワークロードを実行しています
./bin/ycsb jdbc を実行 -P ワークロード/workloademod -p db.driver=com.mysql.jd bc.Driver -p db.url=jdbc:mysql://localhost:3306/ycsbtest -p db.user=ユーザー名-p maxscanlength=100 -p recordcount=5000 -p operationcount=1000 -p maxexecutiontime=1800 > try_ycsb_emod
しかし、Java GC のメモリ不足の例外が発生し、次のようにワークロードが強制終了されます:-
Loading workload...
Starting test.
Maximum execution time specified as: 1800 secs
Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3380)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3327)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1928)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3278)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:462)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2997)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2245)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2638)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
at com.yahoo.ycsb.db.JdbcDBClient.scan(JdbcDBClient.java:348)
at com.yahoo.ycsb.DBWrapper.scan(DBWrapper.java:107)
at com.yahoo.ycsb.workloads.CoreWorkload.doTransactionScan(CoreWorkload.java:605)
at com.yahoo.ycsb.workloads.CoreWorkload.doTransaction(CoreWorkload.java:491)
at com.yahoo.ycsb.ClientThread.run(Client.java:233)
Could not wait until max specified time, TerminatorThread interrupted.
「export YCSB_HEAP_SIZE=8000」を実行して ycsb クライアントの Java ヒープ サイズを 8G にしようとしましたが、それでも同じエラーが発生します。
ycsb クライアントが mysql サーバーに送信する mysql クエリを確認しましたが、max_scan_length メトリックへの参照/含意が見られません。また、ycsb クライアントの代わりに mysql クライアントを使用してこの mysql クエリを実行すると、正常に動作します。
同じ問題を修正するために何ができるかわかりません。誰かがここで私を助けてくれますか?
ありがとう、ルネ