sql-async-profiled-install.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. mkdir /tmp/profile-data
  2. rm -rf $IROOT/ffead-cpp-5.0-sql
  3. if [ "$1" = "batch" ]
  4. then
  5. apt remove -yqq libpq-dev
  6. apt autoremove -yqq
  7. apt update && apt install -y bison flex libreadline-dev
  8. cd /tmp
  9. wget -q https://github.com/an-tao/postgres/archive/batch_mode_ubuntu.tar.gz
  10. tar -xzf batch_mode_ubuntu.tar.gz
  11. cd postgres-batch_mode_ubuntu
  12. ./configure --prefix=/usr CFLAGS='-O2 -pipe -march=native'
  13. make && make install
  14. fi
  15. cd $IROOT/ffead-cpp-src/
  16. rm -rf CMakeCache.txt CMakeFiles
  17. rm -rf web/te-benchmark-um web/te-benchmark-um-mgr web/te-benchmark-um-pq
  18. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/te-benchmark-um)||g' CMakeLists.txt
  19. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/te-benchmark-um-mgr)||g' CMakeLists.txt
  20. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/te-benchmark-um-pq)||g' CMakeLists.txt
  21. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/te-benchmark-um/libte_benchmark_um${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  22. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/te-benchmark-um-mgr/libte_benchmark_um_mgr${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  23. sed -i 's|install(FILES ${PROJECT_BINARY_DIR}/web/te-benchmark-um-pq/libte_benchmark_um_pq${LIB_EXT} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  24. sed -i 's|tfb-database|localhost|g' $IROOT/ffead-cpp-src/web/te-benchmark-um-pq-async/config/sdorm.xml
  25. rm -rf build
  26. mkdir build
  27. cd build
  28. CXXFLAGS="-march=native -flto -fprofile-dir=/tmp/profile-data -fprofile-generate" cmake -DSRV_EMB=on -DMOD_REDIS=on ..
  29. make install && mv $IROOT/ffead-cpp-src/ffead-cpp-5.0-bin $IROOT/ffead-cpp-sql-raw
  30. #Start postgresql
  31. service postgresql stop
  32. #For profiling/benchmarking
  33. cd $IROOT/
  34. #sed -i 's|cmake .|cmake -DCMAKE_EXE_LINKER_FLAGS="-fprofile-dir=/tmp/profile-data -fprofile-generate" -DCMAKE_CXX_FLAGS="-march=native -fprofile-dir=/tmp/profile-data -fprofile-generate" .|g' $IROOT/ffead-cpp-sql-raw/resources/rundyn-automake.sh
  35. ./install_ffead-cpp-sql-raw-profiled.sh async
  36. rm -rf $IROOT/ffead-cpp-sql-raw
  37. cd $IROOT/ffead-cpp-src
  38. rm -rf build
  39. mkdir build
  40. cd build
  41. CXXFLAGS="-march=native -flto -fprofile-dir=/tmp/profile-data -fprofile-use=/tmp/profile-data -fprofile-correction" cmake -DSRV_EMB=on -DMOD_MEMCACHED=on -DMOD_REDIS=on -DMOD_SDORM_MONGO=on ..
  42. make install && mv $IROOT/ffead-cpp-src/ffead-cpp-5.0-bin $IROOT/ffead-cpp-sql-raw
  43. #Start postgresql
  44. service postgresql stop
  45. #For profiling/benchmarking
  46. cd $IROOT/
  47. #sed -i 's|cmake .|CXXFLAGS="-march=native -fprofile-dir=/tmp/profile-data -fprofile-use -fprofile-correction" cmake .|g' $IROOT/ffead-cpp-sql-raw/resources/rundyn-automake.sh
  48. ./install_ffead-cpp-sql-raw-profiled.sh async
  49. mv $IROOT/ffead-cpp-sql-raw $IROOT/ffead-cpp-5.0-sql
  50. sed -i 's|localhost|tfb-database|g' $IROOT/ffead-cpp-5.0-sql/web/te-benchmark-um-pq-async/config/sdorm.xml
  51. apt remove -yqq postgresql-13 postgresql-contrib-13 gnupg lsb-release
  52. apt autoremove -yqq
  53. rm -rf /ssd/postgresql
  54. rm -rf /tmp/postgresql
  55. rm -rf /tmp/wrk /usr/local/bin/wrk