Browse Source

some tuning and add setting on prerequisites.sh for real-time priority

stefanocasazza 10 years ago
parent
commit
cb266d4675

+ 28 - 11
frameworks/C++/ULib/benchmark_config.json

@@ -2,8 +2,7 @@
   "framework": "ULib",
   "framework": "ULib",
   "tests": [{
   "tests": [{
     "default": {
     "default": {
-      "setup_file": "setup",
-      "json_url": "/json",
+      "setup_file": "setup_plaintext",
       "plaintext_url": "/plaintext",
       "plaintext_url": "/plaintext",
       "port": 8080,
       "port": 8080,
       "approach": "Realistic",
       "approach": "Realistic",
@@ -20,6 +19,24 @@
       "notes": "",
       "notes": "",
       "versus": ""
       "versus": ""
     },
     },
+    "json": {
+      "setup_file": "setup_json",
+      "json_url": "/json",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Platform",
+      "database": "None",
+      "framework": "ULib",
+      "language": "C++",
+      "orm": "Micro",
+      "platform": "ULib",
+      "webserver": "userver_tcp",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "ULib",
+      "notes": "",
+      "versus": ""
+    },
     "mysql": {
     "mysql": {
       "setup_file": "setup_mysql",
       "setup_file": "setup_mysql",
       "db_url": "/db",
       "db_url": "/db",
@@ -41,15 +58,16 @@
       "notes": "",
       "notes": "",
       "versus": ""
       "versus": ""
     },
     },
-    "sqlite": {
-      "setup_file": "setup_sqlite",
+    "postgres": {
+      "setup_file": "setup_postgres",
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/query?queries=",
       "query_url": "/query?queries=",
       "fortune_url": "/fortune",
       "fortune_url": "/fortune",
+      "update_url": "/update?queries=",
       "port": 8080,
       "port": 8080,
       "approach": "Realistic",
       "approach": "Realistic",
       "classification": "Platform",
       "classification": "Platform",
-      "database": "SQLite",
+      "database": "Postgres",
       "framework": "ULib",
       "framework": "ULib",
       "language": "C++",
       "language": "C++",
       "orm": "Micro",
       "orm": "Micro",
@@ -57,20 +75,19 @@
       "webserver": "userver_tcp",
       "webserver": "userver_tcp",
       "os": "Linux",
       "os": "Linux",
       "database_os": "Linux",
       "database_os": "Linux",
-      "display_name": "ULib-sqlite",
+      "display_name": "ULib-postgres",
       "notes": "",
       "notes": "",
       "versus": ""
       "versus": ""
     },
     },
-    "postgres": {
-      "setup_file": "setup_postgres",
+    "sqlite": {
+      "setup_file": "setup_sqlite",
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/query?queries=",
       "query_url": "/query?queries=",
       "fortune_url": "/fortune",
       "fortune_url": "/fortune",
-      "update_url": "/update?queries=",
       "port": 8080,
       "port": 8080,
       "approach": "Realistic",
       "approach": "Realistic",
       "classification": "Platform",
       "classification": "Platform",
-      "database": "Postgres",
+      "database": "SQLite",
       "framework": "ULib",
       "framework": "ULib",
       "language": "C++",
       "language": "C++",
       "orm": "Micro",
       "orm": "Micro",
@@ -78,7 +95,7 @@
       "webserver": "userver_tcp",
       "webserver": "userver_tcp",
       "os": "Linux",
       "os": "Linux",
       "database_os": "Linux",
       "database_os": "Linux",
-      "display_name": "ULib-postgres",
+      "display_name": "ULib-sqlite",
       "notes": "",
       "notes": "",
       "versus": ""
       "versus": ""
     }
     }

+ 9 - 9
frameworks/C++/ULib/install.sh

@@ -1,5 +1,6 @@
 #!/bin/bash
 #!/bin/bash
 
 
+# --------------------------------------------------------------------------------------------------------
 # install.sh
 # install.sh
 # --------------------------------------------------------------------------------------------------------
 # --------------------------------------------------------------------------------------------------------
 # toolset/run-tests.py --install server --test ULib-mysql  --type all --verbose
 # toolset/run-tests.py --install server --test ULib-mysql  --type all --verbose
@@ -18,15 +19,15 @@
 
 
 ULIB_VERSION=1.4.2
 ULIB_VERSION=1.4.2
 ULIB_ROOT=$IROOT/ULib
 ULIB_ROOT=$IROOT/ULib
-ULIB_DOCUMENT_ROOT=${ULIB_ROOT}/ULIB_DOCUMENT_ROOT
+ULIB_DOCUMENT_ROOT=$ULIB_ROOT/ULIB_DOCUMENT_ROOT
 
 
 # Check if ULib is already installed
 # Check if ULib is already installed
-ULIB_INSTALLED_FILE="${IROOT}/ULib-${ULIB_VERSION}.installed"
-RETCODE=$(fw_exists ${ULIB_INSTALLED_FILE})
+ULIB_INSTALLED_FILE="$IROOT/ULib-${ULIB_VERSION}.installed"
+RETCODE=$(fw_exists $ULIB_INSTALLED_FILE)
 [ ! "$RETCODE" == 0 ] || { return 0; }
 [ ! "$RETCODE" == 0 ] || { return 0; }
 
 
 # Create a run directory for ULIB
 # Create a run directory for ULIB
-[ ! -e ${ULIB_INSTALLED_FILE} -a -d ${IROOT}/ULib ] && rm -rf ${IROOT}/ULib*
+[ ! -e $ULIB_INSTALLED_FILE -a -d $IROOT/ULib ] && rm -rf $IROOT/ULib*
 
 
 if [ ! -d "$ULIB_ROOT" ]; then
 if [ ! -d "$ULIB_ROOT" ]; then
   mkdir -p $ULIB_ROOT
   mkdir -p $ULIB_ROOT
@@ -42,9 +43,7 @@ if [ ! -f "benchmark.cfg" ]; then
 userver {
 userver {
  PORT 8080
  PORT 8080
  PREFORK_CHILD 4
  PREFORK_CHILD 4
- MAX_KEEP_ALIVE 1023
- LISTEN_BACKLOG 16384
- CLIENT_FOR_PARALLELIZATION 256
+ LISTEN_BACKLOG 256
  ORM_DRIVER "mysql pgsql sqlite"
  ORM_DRIVER "mysql pgsql sqlite"
  DOCUMENT_ROOT $ULIB_DOCUMENT_ROOT
  DOCUMENT_ROOT $ULIB_DOCUMENT_ROOT
 }
 }
@@ -88,10 +87,11 @@ USP_FLAGS="-DAS_cpoll_cppsp_DO" \
 #USP_LIBS="-ljson" \
 #USP_LIBS="-ljson" \
 
 
 make install
 make install
-cp -r tests/examples/benchmark/FrameworkBenchmarks/ULib/db ${ULIB_ROOT}
+cp -r tests/examples/benchmark/FrameworkBenchmarks/ULib/db $ULIB_ROOT
 
 
 cd examples/userver
 cd examples/userver
 make install
 make install
+setcap cap_sys_nice,cap_sys_resource+eip $ULIB_ROOT/bin/userver_tcp
 
 
 # 3. Compile usp pages for benchmark
 # 3. Compile usp pages for benchmark
 cd ../../src/ulib/net/server/plugin/usp
 cd ../../src/ulib/net/server/plugin/usp
@@ -105,4 +105,4 @@ fi
 mkdir -p $ULIB_DOCUMENT_ROOT
 mkdir -p $ULIB_DOCUMENT_ROOT
 cp .libs/db.so .libs/fortune.so .libs/json.so .libs/plaintext.so .libs/query.so .libs/update.so $ULIB_DOCUMENT_ROOT
 cp .libs/db.so .libs/fortune.so .libs/json.so .libs/plaintext.so .libs/query.so .libs/update.so $ULIB_DOCUMENT_ROOT
 
 
-touch ${ULIB_INSTALLED_FILE}
+touch $ULIB_INSTALLED_FILE

+ 0 - 13
frameworks/C++/ULib/setup.sh

@@ -1,13 +0,0 @@
-#!/bin/bash
-
-export ULIB_VERSION=1.4.2
-export ULIB_ROOT=$IROOT/ULib
-export ULIB_DOCUMENT_ROOT=${ULIB_ROOT}/ULIB_DOCUMENT_ROOT
-
-export UMEMPOOL="136,0,0,85,1160,155,-17,-22,40"
-
-# 1. Change ULib Server configuration
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" ${IROOT}/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-${IROOT}/ULib/bin/userver_tcp -c ${IROOT}/ULib/benchmark.cfg &

+ 10 - 0
frameworks/C++/ULib/setup_json.sh

@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# 1. Change ULib Server (userver_tcp) configuration
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
+
+$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 5 - 9
frameworks/C++/ULib/setup_mysql.sh

@@ -1,16 +1,12 @@
 #!/bin/bash
 #!/bin/bash
 
 
-export ULIB_VERSION=1.4.2
-export ULIB_ROOT=$IROOT/ULib
-export ULIB_DOCUMENT_ROOT=${ULIB_ROOT}/ULIB_DOCUMENT_ROOT
+# 1. Change ULib Server (userver_tcp) configuration
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
 
 
+# 2. Start ULib Server (userver_tcp)
 export ORM_DRIVER="mysql"
 export ORM_DRIVER="mysql"
+export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
 export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=hello_world"
 export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=hello_world"
 
 
-export UMEMPOOL="136,0,0,85,1160,155,-17,-22,40"
-
-# 1. Change ULib Server configuration
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 10 - 0
frameworks/C++/ULib/setup_plaintext.sh

@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# 1. Change ULib Server (userver_tcp) configuration
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 16384|g"		  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+export UMEMPOOL="50,0,0,0,8356,170,-13,-22,0"
+
+$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 6 - 6
frameworks/C++/ULib/setup_postgres.sh

@@ -1,12 +1,12 @@
 #!/bin/bash
 #!/bin/bash
 
 
-export ORM_DRIVER="pgsql"
-export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8"
-
-export UMEMPOOL="136,0,0,85,1160,155,-17,-22,40"
-
-# 1. Change ULib Server configuration
+# 1. Change ULib Server (userver_tcp) configuration
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
 sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
 sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
 
 
 # 2. Start ULib Server (userver_tcp)
 # 2. Start ULib Server (userver_tcp)
+export ORM_DRIVER="pgsql"
+export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
+export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8"
+
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 7 - 11
frameworks/C++/ULib/setup_sqlite.sh

@@ -1,16 +1,12 @@
 #!/bin/bash
 #!/bin/bash
 
 
-export ULIB_VERSION=1.4.2
-export ULIB_ROOT=$IROOT/ULib
-export ULIB_DOCUMENT_ROOT=${ULIB_ROOT}/ULIB_DOCUMENT_ROOT
+# 1. Change ULib Server (userver_tcp) configuration
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
 
 
+# 2. Start ULib Server (userver_tcp)
 export ORM_DRIVER="sqlite"
 export ORM_DRIVER="sqlite"
-export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=${ULIB_ROOT}/db/%.*s"
-
-export UMEMPOOL="136,0,0,85,1160,155,-17,-22,40"
+export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
+export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=${IROOT}/ULib/db/%.*s"
 
 
-# 1. Change ULib Server configuration
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" ${IROOT}/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-${IROOT}/ULib/bin/userver_tcp -c ${IROOT}/ULib/benchmark.cfg &
+$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 2 - 0
toolset/setup/linux/prerequisites.sh

@@ -62,6 +62,8 @@ RETCODE=$(fw_exists ~/.bash_profile.bak)
 }
 }
 
 
 sudo sh -c "echo '*               -    nofile          65535' >> /etc/security/limits.conf"
 sudo sh -c "echo '*               -    nofile          65535' >> /etc/security/limits.conf"
+sudo sh -c "echo '*            hard    rtprio             99' >> /etc/security/limits.conf"
+sudo sh -c "echo '*            soft    rtprio             99' >> /etc/security/limits.conf"
 
 
 # Sudo in case we don't have permissions on IROOT
 # Sudo in case we don't have permissions on IROOT
 sudo touch fwbm_prereqs_installed
 sudo touch fwbm_prereqs_installed