mirror of https://gitee.com/bigwinds/arangodb
59 lines
3.9 KiB
Bash
Executable File
59 lines
3.9 KiB
Bash
Executable File
#!/bin/bash -x
|
|
|
|
DEPS_DIR="$(pwd)/../iresearch.deps"
|
|
export BENCHMARK_RESOURCES_ROOT="${DEPS_DIR}/benchmark_resources"
|
|
export TEST_RESOURCE_ROOT="${DEPS_DIR}/test_resources/tests/resources"
|
|
PATH=${PATH}:${BISON_ROOT}/bin
|
|
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$(pwd)/build/bin"
|
|
for file in $(find / -name java -type f -executable 2>/dev/null); do PATH="${PATH}:$(dirname "${file}")"; done # ensure java is in the PATH
|
|
rm -rf build
|
|
mkdir build
|
|
cd build
|
|
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -g "Unix Makefiles" .. || exit 1
|
|
make -j 16 iresearch-benchmarks || exit 1
|
|
cd bin
|
|
ulimit -c unlimited
|
|
|
|
for i in `seq 1 5`; do
|
|
for j in 1 5 10 15 20 25; do
|
|
MAX_LINES=${j}000000
|
|
|
|
# index
|
|
/usr/bin/time -v ./iresearch-benchmarks -m put --in ${BENCHMARK_RESOURCES_ROOT}/benchmark.data --index-dir ../iresearch.data --max-lines=${MAX_LINES} --commit-period=1000 --batch-size=10000 --threads=8 2> iresearch.stderr.${MAX_LINES}.index.log.$i 1> /dev/null &
|
|
IRESEARCH_PID=$!
|
|
/usr/bin/time -v java -jar ${BENCHMARK_RESOURCES_ROOT}/lucene_index.jar -dirImpl MMapDirectory -analyzer StandardAnalyzer -lineDocsFile ${BENCHMARK_RESOURCES_ROOT}/benchmark.data -maxConcurrentMerges 1 -ramBufferMB -1 -postingsFormat Lucene50 -waitForMerges -mergePolicy LogDocMergePolicy -idFieldPostingsFormat Memory -grouping -waitForCommit -indexPath ../lucene.data -docCountLimit ${MAX_LINES} -maxBufferedDocs 10000 -threadCount 8 2> lucene.stderr.${MAX_LINES}.index.log.$i 1> /dev/null &
|
|
LUCENE_PID=$!
|
|
wait $IRESEARCH_PID $LUCENE_PID
|
|
|
|
# search
|
|
/usr/bin/time -v ./iresearch-benchmarks -m search --in ${BENCHMARK_RESOURCES_ROOT}/benchmark.tasks --dir-type mmap --index-dir ../iresearch.data --max-tasks 1 --repeat 20 --threads 8 --scorer=bm25 --scorer-arg='{"b":0}' --scored-terms-limit=16 --csv --topN=100 2> iresearch.stderr.${MAX_LINES}.search.log.$i 1> iresearch.stdout.${MAX_LINES}.search.log.$i &
|
|
IRESEARCH_PID=$!
|
|
/usr/bin/time -v java -server -Xms2g -Xmx40g -XX:-TieredCompilation -XX:+HeapDumpOnOutOfMemoryError -Xbatch -jar ${BENCHMARK_RESOURCES_ROOT}/lucene_search.jar -dirImpl MMapDirectory -indexPath ../lucene.data -analyzer StandardAnalyzer -taskSource ${BENCHMARK_RESOURCES_ROOT}/benchmark.tasks -searchThreadCount 8 -taskRepeatCount 20 -field body -tasksPerCat 1 -staticSeed -6486775 -seed -6959386 -similarity BM25Similarity -commit multi -hiliteImpl FastVectorHighlighter -log lucene.stdlog.${MAX_LINES}.search.log.$i -csv -topN 100 -pk 2> lucene.stderr.${MAX_LINES}.search.log.$i 1> lucene.stdout.${MAX_LINES}.search.log.$i &
|
|
LUCENE_PID=$!
|
|
wait $IRESEARCH_PID $LUCENE_PID
|
|
|
|
for k in lucene.stdlog.${MAX_LINES}.search.log.$i; do
|
|
mv $k $k.raw
|
|
cat $k.raw | grep ',' \
|
|
| awk -F ',' '{do {++count[$1];sum[$1]+=$5;} while(getline);for (category in sum) {printf("Lucene Query execution (%s) time calls:%i, time: %.2f us, avg call: %.2f us\n", category, count[category], sum[category], sum[category]/count[category]);}}' > $k
|
|
done
|
|
|
|
echo iresearch.stdout.${MAX_LINES}.search.log.$i
|
|
cat iresearch.stdout.${MAX_LINES}.search.log.$i | grep 'Query execution' | sort
|
|
echo lucene.stdlog.${MAX_LINES}.search.log.$i
|
|
cat lucene.stdlog.${MAX_LINES}.search.log.$i | grep 'Query execution' | sort
|
|
#tar czf iresearch.data.$i.$j.tgz ../iresearch.data
|
|
rm -r ../iresearch.data || {
|
|
ls -la bin && cat iresearch.stderr.${MAX_LINES}.index.log.$i
|
|
}
|
|
rm -r ../lucene.data || {
|
|
ls -la bin && cat lucene.stderr.${MAX_LINES}.index.log.$i
|
|
}
|
|
done
|
|
done
|
|
|
|
grep "Elapsed (wall clock) time (h:mm:ss or m:ss)" iresearch.stderr.* | sort -t . -k 3 -n || true
|
|
grep "Elapsed (wall clock) time (h:mm:ss or m:ss)" lucene.stderr.* | sort -t . -k 3 -n || true
|
|
grep "Maximum resident set size (kbytes)" iresearch.stderr.* | sort -t . -k 3 -n || true
|
|
grep "Maximum resident set size (kbytes)" lucene.stderr.* | sort -t . -k 3 -n || true
|