install_ffead-cpp-framework.sh 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #!/bin/bash
  2. #From https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/C%2B%2B/ulib/setup_json.sh
  3. MAX_THREADS=$(( 3 * `nproc` / 2 ))
  4. WRIT_THREADS=$(( $MAX_THREADS / 3 ))
  5. SERV_THREADS=$(( $MAX_THREADS - $WRIT_THREADS ))
  6. cd $IROOT
  7. wget -q https://github.com/efficient/libcuckoo/archive/master.zip
  8. unzip master.zip
  9. rm -f master.zip
  10. cd libcuckoo-master
  11. cmake -DCMAKE_INSTALL_PREFIX=/usr .
  12. make install
  13. cd $IROOT
  14. rm -rf libcuckoo-master
  15. cd $IROOT
  16. wget -q https://github.com/sumeetchhetri/ffead-cpp/archive/master.zip
  17. unzip master.zip
  18. mv ffead-cpp-master ffead-cpp-src
  19. cd ffead-cpp-src/
  20. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  21. rm -rf web/te-benchmark-um
  22. cp -f ${TROOT}/server.sh script/
  23. cp -rf ${TROOT}/te-benchmark-um web/
  24. sed -i 's|THRD_PSIZ=6|THRD_PSIZ='${SERV_THREADS}'|g' resources/server.prop
  25. sed -i 's|W_THRD_PSIZ=2|W_THRD_PSIZ='${WRIT_THREADS}'|g' resources/server.prop
  26. sed -i 's|ENABLE_CRS=true|ENABLE_CRS=false|g' resources/server.prop
  27. sed -i 's|ENABLE_SEC=true|ENABLE_SEC=false|g' resources/server.prop
  28. sed -i 's|ENABLE_FLT=true|ENABLE_FLT=false|g' resources/server.prop
  29. sed -i 's|ENABLE_CNT=true|ENABLE_CNT=true|g' resources/server.prop
  30. sed -i 's|ENABLE_CNT_MPG=true|ENABLE_CNT_MPG=false|g' resources/server.prop
  31. sed -i 's|ENABLE_CNT_PTH=true|ENABLE_CNT_PTH=false|g' resources/server.prop
  32. sed -i 's|ENABLE_CNT_EXT=true|ENABLE_CNT_EXT=false|g' resources/server.prop
  33. sed -i 's|ENABLE_CNT_RST=true|ENABLE_CNT_RST=true|g' resources/server.prop
  34. sed -i 's|ENABLE_EXT=true|ENABLE_EXT=true|g' resources/server.prop
  35. sed -i 's|ENABLE_SCR=true|ENABLE_SCR=false|g' resources/server.prop
  36. sed -i 's|ENABLE_SWS=true|ENABLE_SWS=false|g' resources/server.prop
  37. sed -i 's|LOGGING_ENABLED=true|LOGGING_ENABLED=false|g' resources/server.prop
  38. rm -rf web/default web/oauthApp web/flexApp web/markers web/te-benchmark
  39. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um/config/sdorm.xml
  40. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um/config/sdormmongo.xml
  41. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um/config/sdormmysql.xml
  42. sed -i 's|localhost|tfb-database|g' web/te-benchmark-um/config/sdormpostgresql.xml
  43. #sed -i 's|<pool-size>30</pool-size>|<pool-size>${MAX_THREADS}</pool-size>|g' web/te-benchmark-um/config/sdorm.xml
  44. #sed -i 's|<pool-size>30</pool-size>|<pool-size>${MAX_THREADS}</pool-size>|g' web/te-benchmark-um/config/sdormmongo.xml
  45. sed -i 's|<pool-size>30</pool-size>|<pool-size>${MAX_THREADS}</pool-size>|g' web/te-benchmark-um/config/sdormmysql.xml
  46. sed -i 's|<pool-size>30</pool-size>|<pool-size>${MAX_THREADS}</pool-size>|g' web/te-benchmark-um/config/sdormpostgresql.xml
  47. sed -i 's|127.0.0.1|tfb-database|g' resources/sample-odbcinst.ini
  48. sed -i 's|127.0.0.1|tfb-database|g' resources/sample-odbc.ini
  49. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/default)||g' CMakeLists.txt
  50. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/flexApp)||g' CMakeLists.txt
  51. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/oauthApp)||g' CMakeLists.txt
  52. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/markers)||g' CMakeLists.txt
  53. sed -i 's|add_subdirectory(${PROJECT_SOURCE_DIR}/web/te-benchmark)||g' CMakeLists.txt
  54. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/default/libdefault${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  55. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/flexApp/libflexApp${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  56. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/oauthApp/liboauthApp${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  57. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/markers/libmarkers${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  58. sed -i 's|install(FILES ${PROJECT_SOURCE_DIR}/web/te-benchmark/libte_benchmark${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${PROJECT_NAME}-bin/lib)||g' CMakeLists.txt
  59. sed -i 's|web/default/src/autotools/Makefile||g' configure.ac
  60. sed -i 's|web/flexApp/src/autotools/Makefile||g' configure.ac
  61. sed -i 's|web/oauthApp/src/autotools/Makefile||g' configure.ac
  62. sed -i 's|web/markers/src/autotools/Makefile||g' configure.ac
  63. sed -i 's|web/te-benchmark/src/autotools/Makefile||g' configure.ac
  64. #./autogen.sh
  65. #./configure --enable-debug=no --enable-apachemod=yes --enable-nginxmod=yes --enable-mod_sdormmongo=yes --enable-mod_sdormsql=yes --enable-mod_rediscache=yes --enable-mod_memcached=yes CPPFLAGS="$CPPFLAGS -I${IROOT}/include/libmongoc-1.0 -I${IROOT}/include/libbson-1.0 -I${IROOT}/include/" LDFLAGS="$LDFLAGS -L${IROOT} -L${IROOT}/lib"
  66. #make install
  67. cmake -DMOD_APACHE=on -DMOD_NGINX=on -DMOD_MEMCACHED=on -DMOD_REDIS=on -DMOD_SDORM_MONGO=on .
  68. #make install -j4
  69. cp resources/sample-odbcinst.ini ${IROOT}/odbcinst.ini
  70. cp resources/sample-odbc.ini ${IROOT}/odbc.ini
  71. cd ${IROOT}/ffead-cpp-src/
  72. sed -i 's|Timer t1;|//Timer t1;|g' src/framework/ServiceTask.cpp
  73. sed -i 's|t1.start();|//t1.start();|g' src/framework/ServiceTask.cpp
  74. sed -i 's|t1.end();|//t1.end();|g' src/framework/ServiceTask.cpp
  75. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/framework/ServiceTask.cpp
  76. sed -i 's|Timer t;|//Timer t;|g' src/framework/ControllerHandler.cpp
  77. sed -i 's|t.start();|//t.start();|g' src/framework/ControllerHandler.cpp
  78. sed -i 's|t.end();|//t.end();|g' src/framework/ControllerHandler.cpp
  79. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/framework/ControllerHandler.cpp
  80. sed -i 's|Timer t;|//Timer t;|g' src/modules/server-util/RequestReaderHandler.cpp
  81. sed -i 's|t.start();|//t.start();|g' src/modules/server-util/RequestReaderHandler.cpp
  82. sed -i 's|t.end();|//t.end();|g' src/modules/server-util/RequestReaderHandler.cpp
  83. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/modules/server-util/RequestReaderHandler.cpp
  84. sed -i 's|Timer t;|//Timer t;|g' src/modules/server-util/SocketInterface.cpp
  85. sed -i 's|t.start();|//t.start();|g' src/modules/server-util/SocketInterface.cpp
  86. sed -i 's|t.end();|//t.end();|g' src/modules/server-util/SocketInterface.cpp
  87. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/modules/server-util/SocketInterface.cpp
  88. sed -i 's|Timer to;|//Timer to;|g' src/modules/server-util/SocketInterface.cpp
  89. sed -i 's|to.start();|//to.start();|g' src/modules/server-util/SocketInterface.cpp
  90. sed -i 's|to.end();|//to.end();|g' src/modules/server-util/SocketInterface.cpp
  91. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/modules/server-util/SocketInterface.cpp
  92. sed -i 's|Timer t;|//Timer t;|g' web/te-benchmark-um/src/TeBkUm.cpp
  93. sed -i 's|t.start();|//t.start();|g' web/te-benchmark-um/src/TeBkUm.cpp
  94. sed -i 's|t.end();|//t.end();|g' web/te-benchmark-um/src/TeBkUm.cpp
  95. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' web/te-benchmark-um/src/TeBkUm.cpp
  96. sed -i 's|Timer t;|//Timer t;|g' src/modules/http/http11/Http11Handler.cpp
  97. sed -i 's|t.start();|//t.start();|g' src/modules/http/http11/Http11Handler.cpp
  98. sed -i 's|t.end();|//t.end();|g' src/modules/http/http11/Http11Handler.cpp
  99. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/modules/http/http11/Http11Handler.cpp
  100. sed -i 's|Timer t;|//Timer t;|g' src/modules/http/HttpServiceHandler.cpp
  101. sed -i 's|t.start();|//t.start();|g' src/modules/http/HttpServiceHandler.cpp
  102. sed -i 's|t.end();|//t.end();|g' src/modules/http/HttpServiceHandler.cpp
  103. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/modules/http/HttpServiceHandler.cpp
  104. sed -i 's|Timer to;|//Timer to;|g' src/modules/http/HttpServiceHandler.cpp
  105. sed -i 's|to.start();|//to.start();|g' src/modules/http/HttpServiceHandler.cpp
  106. sed -i 's|to.end();|//to.end();|g' src/modules/http/HttpServiceHandler.cpp
  107. sed -i 's|CommonUtils::ts|//CommonUtils::ts|g' src/modules/http/HttpServiceHandler.cpp
  108. make install -j${MAX_THREADS}
  109. rm -f /usr/local/lib/libffead-*
  110. rm -f /usr/local/lib/libte_benc*
  111. rm -f /usr/local/lib/libinter.so
  112. rm -f /usr/local/lib/libdinter.so
  113. cd ffead-cpp-3.0-bin
  114. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  115. ./server.sh &
  116. while [ ! -f lib/libinter.so ]
  117. do
  118. sleep 1
  119. done
  120. while [ ! -f lib/libdinter.so ]
  121. do
  122. sleep 1
  123. done
  124. pkill ffead-cpp
  125. cd ${IROOT}/ffead-cpp-src/
  126. cp -rf ffead-cpp-3.0-bin ${IROOT}/ffead-cpp-3.0
  127. rm -rf ffead-cpp-3.0-bin
  128. ln -s ${IROOT}/ffead-cpp-3.0/lib/libte_benchmark_um.so /usr/local/lib/libte_benchmark_um.so
  129. ln -s ${IROOT}/ffead-cpp-3.0/lib/libffead-modules.so /usr/local/lib/libffead-modules.so
  130. ln -s ${IROOT}/ffead-cpp-3.0/lib/libffead-framework.so /usr/local/lib/libffead-framework.so
  131. ln -s ${IROOT}/ffead-cpp-3.0/lib/libinter.so /usr/local/lib/libinter.so
  132. ln -s ${IROOT}/ffead-cpp-3.0/lib/libdinter.so /usr/local/lib/libdinter.so
  133. ldconfig
  134. cd ${IROOT}/ffead-cpp-3.0
  135. cp -f ${TROOT}/run_ffead.sh ./
  136. chmod 755 *.sh resources/*.sh rtdcf/autotools/*.sh
  137. chmod 755 $FFEAD_CPP_PATH/*.sh
  138. rm -f $FFEAD_CPP_PATH/*.cntrl
  139. rm -f $FFEAD_CPP_PATH/tmp/*.sess
  140. #cache related dockerfiles will add the cache.xml accordingly whenever needed
  141. rm -f web/te-benchmark-um/config/cache.xml