Эх сурвалжийг харах

Docker C++/ulib port (#3472)

* Docker ulib

* Docker ulib

* remove cpu_count and move proc info to CMD
Nate 7 жил өмнө
parent
commit
73478aca2a

+ 1 - 1
.travis.yml

@@ -23,7 +23,7 @@ env:
      - "TESTDIR=C++/cutelyst"
      - "TESTDIR=C++/silicon"
      - "TESTDIR=C++/treefrog"
-    # - "TESTDIR=C++/ulib"
+     - "TESTDIR=C++/ulib"
      - "TESTDIR=C++/wt"
      - "TESTDIR=C++/poco"
      - "TESTDIR=C++/luna"

+ 0 - 7
frameworks/C++/ulib/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "ulib",
   "tests": [{
     "default": {
-      "setup_file": "setup_plaintext",
       "plaintext_url": "/plaintext",
       "port": 8080,
       "approach": "Realistic",
@@ -20,7 +19,6 @@
       "versus": ""
     },
     "plaintext_fit": {
-      "setup_file": "setup_plaintext_fit",
       "plaintext_url": "/plaintext",
       "port": 8080,
       "approach": "Realistic",
@@ -38,7 +36,6 @@
       "versus": ""
     },
     "json": {
-      "setup_file": "setup_json",
       "json_url": "/json",
       "port": 8080,
       "approach": "Realistic",
@@ -56,7 +53,6 @@
       "versus": ""
     },
     "json_fit": {
-      "setup_file": "setup_json_fit",
       "json_url": "/json",
       "port": 8080,
       "approach": "Realistic",
@@ -74,7 +70,6 @@
       "versus": ""
     },
     "mysql": {
-      "setup_file": "setup_mysql",
       "db_url": "/db",
       "query_url": "/query?queries=",
       "fortune_url": "/fortune",
@@ -96,7 +91,6 @@
       "versus": ""
     },
     "postgres": {
-      "setup_file": "setup_postgres",
       "db_url": "/db",
       "query_url": "/query?queries=",
       "fortune_url": "/fortune",
@@ -118,7 +112,6 @@
       "versus": ""
     },
     "postgres_fit": {
-      "setup_file": "setup_postgres_fit",
       "db_url": "/db",
       "query_url": "/query?queries=",
       "fortune_url": "/fortune",

+ 0 - 24
frameworks/C++/ulib/setup_elasticsearch.sh

@@ -1,24 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export ELASTICSEARCH_HOST=$DBHOST
-export UMEMPOOL="1261,0,0,49,274,-14,-15,-24,40"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 28
frameworks/C++/ulib/setup_json.sh

@@ -1,28 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$(( 3 * $CPU_COUNT / 2 ))
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="58,0,0,41,273,-15,-14,-20,36"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 28
frameworks/C++/ulib/setup_json_extra.sh

@@ -1,28 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$(( 3 * $CPU_COUNT ))
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="58,0,0,41,273,-15,-14,-20,36"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 28
frameworks/C++/ulib/setup_json_fit.sh

@@ -1,28 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$CPU_COUNT
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="58,0,0,41,273,-15,-14,-20,36"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 23
frameworks/C++/ulib/setup_json_large.sh

@@ -1,23 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="58,0,0,41,273,-15,-14,-20,36"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 28
frameworks/C++/ulib/setup_json_medium.sh

@@ -1,28 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$(( 3 * $CPU_COUNT / 2 ))
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="58,0,0,41,273,-15,-14,-20,36"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 29
frameworks/C++/ulib/setup_mongodb.sh

@@ -1,29 +0,0 @@
-#!/bin/bash
-
-fw_depends mongodb ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$(( 3 * $CPU_COUNT / 2 ))
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export MONGODB_HOST=$DBHOST
-export UMEMPOOL="96,0,0,47,16401,-14,-20,-18,26"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 30
frameworks/C++/ulib/setup_mysql.sh

@@ -1,30 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$CPU_COUNT
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g"								  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export ORM_DRIVER="mysql"
-export UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31"
-export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=hello_world"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 28
frameworks/C++/ulib/setup_plaintext.sh

@@ -1,28 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$(( 3 * $CPU_COUNT / 2 ))
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"										$IROOT/ULib/benchmark.cfg
-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
-sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 8000|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="58,0,0,41,16401,-14,-15,11,25"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 28
frameworks/C++/ulib/setup_plaintext_fit.sh

@@ -1,28 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$CPU_COUNT
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"										$IROOT/ULib/benchmark.cfg
-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
-sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 8000|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="58,0,0,41,16401,-14,-15,11,25"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 25
frameworks/C++/ulib/setup_postgres.sh

@@ -1,25 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql ulib
-
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g"								  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export ORM_DRIVER="pgsql"
-export UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31"
-export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 30
frameworks/C++/ulib/setup_postgres_fit.sh

@@ -1,30 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$CPU_COUNT
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g"								  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export ORM_DRIVER="pgsql"
-export UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31"
-export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 29
frameworks/C++/ulib/setup_redis.sh

@@ -1,29 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$(( 3 * $CPU_COUNT / 2 ))
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export REDIS_HOST=$DBHOST
-export UMEMPOOL="1261,0,0,49,274,-14,-15,-24,40"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 0 - 30
frameworks/C++/ulib/setup_sqlite.sh

@@ -1,30 +0,0 @@
-#!/bin/bash
-
-fw_depends ulib
-
-# Travis is broken
-if [ "$TRAVIS" != "true" ]; then
-MAX_THREADS=$(( 3 * $CPU_COUNT / 2 ))
-else
-MAX_THREADS=$(( 2 * $CPU_COUNT ))
-fi
-
-# 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
-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|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
-
-# 2. Start ULib Server (userver_tcp)
-export ORM_DRIVER="sqlite"
-export UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31"
-export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=${IROOT}/ULib/db/%.*s"
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-$IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 72 - 0
frameworks/C++/ulib/ulib-base.dockerfile

@@ -0,0 +1,72 @@
+FROM tfb/gcc-6:latest
+
+ENV IROOT=/install
+ENV ULIB_VERSION=1.4.2
+ENV ULIB_ROOT=$IROOT/ULib
+ENV ULIB_DOCUMENT_ROOT=$ULIB_ROOT/ULIB_DOCUMENT_ROOT
+ENV CC=gcc-6
+ENV CXX=g++-6
+ENV AR=gcc-ar-6
+ENV RANLIB=gcc-ranlib-6
+
+RUN mkdir -p $ULIB_ROOT
+RUN mkdir -p $ULIB_DOCUMENT_ROOT
+
+RUN apt install -yqq postgresql-server-dev-all libcap2-bin
+
+WORKDIR $IROOT
+
+# We need to install mongo-c-driver (we don't have a ubuntu package)
+RUN wget -q https://github.com/mongodb/mongo-c-driver/releases/download/1.1.10/mongo-c-driver-1.1.10.tar.gz
+RUN tar -xzf mongo-c-driver-1.1.10.tar.gz
+RUN cd mongo-c-driver-1.1.10/ && \
+    ./configure --prefix=$IROOT --libdir=$IROOT && \
+    make && make install
+
+# 1. Download ULib
+RUN wget -q -O ULib-${ULIB_VERSION}.tar.gz https://github.com/stefanocasazza/ULib/archive/v${ULIB_VERSION}.tar.gz
+RUN tar xf ULib-${ULIB_VERSION}.tar.gz
+
+# 2. Compile application (userver_tcp)
+# AVOID "configure: error: newly created file is older than distributed files! Check your system clock"
+WORKDIR $IROOT/ULib-$ULIB_VERSION
+RUN find . -exec touch {} \;
+RUN cp -r tests/examples/benchmark/FrameworkBenchmarks/ULib/db $ULIB_ROOT
+
+RUN echo "userver {" >> $ULIB_ROOT/benchmark.cfg
+RUN echo "PORT 8080" >> $ULIB_ROOT/benchmark.cfg
+RUN echo "PREFORK_CHILD 2" >> $ULIB_ROOT/benchmark.cfg
+RUN echo "TCP_LINGER_SET 0 " >> $ULIB_ROOT/benchmark.cfg
+RUN echo "LISTEN_BACKLOG 16384" >> $ULIB_ROOT/benchmark.cfg
+RUN echo "ORM_DRIVER \"mysql pgsql\"" >> $ULIB_ROOT/benchmark.cfg
+RUN echo "CLIENT_FOR_PARALLELIZATION 100" >> $ULIB_ROOT/benchmark.cfg
+RUN echo "DOCUMENT_ROOT $ULIB_DOCUMENT_ROOT " >> $ULIB_ROOT/benchmark.cfg
+RUN echo "}" >> $ULIB_ROOT/benchmark.cfg
+
+RUN USP_FLAGS="-DAS_cpoll_cppsp_DO" \
+    ./configure --prefix=$ULIB_ROOT \
+    --disable-static --disable-examples \
+    --with-mysql --with-pgsql \
+    --without-ssl --without-pcre --without-expat \
+    --without-libz --without-libuuid --without-magic --without-libares \
+    --enable-static-orm-driver='mysql pgsql' --enable-static-server-plugin=http \
+    --with-mongodb --with-mongodb-includes="-I$IROOT/include/libbson-1.0 -I$IROOT/include/libmongoc-1.0" --with-mongodb-ldflags="-L$IROOT"
+# --enable-debug \
+#USP_LIBS="-ljson" \
+#cp $TROOT/src/* src/ulib/net/server/plugin/usp
+
+RUN make install
+RUN cd examples/userver && make install
+
+# Compile usp pages (no more REDIS)
+RUN cd src/ulib/net/server/plugin/usp && \
+    make json.la plaintext.la db.la query.la update.la fortune.la cached_worlds.la \
+          mdb.la mquery.la mupdate.la mfortune.la && \
+    cp .libs/json.so .libs/plaintext.so \
+        .libs/db.so   .libs/query.so  .libs/update.so  .libs/fortune.so .libs/cached_worlds.so \
+        .libs/mdb.so  .libs/mquery.so .libs/mupdate.so .libs/mfortune.so $ULIB_DOCUMENT_ROOT
+
+ENV PATH=${ULIB_ROOT}/bin:${PATH}
+
+ADD ./ /ulib
+WORKDIR /ulib

+ 13 - 0
frameworks/C++/ulib/ulib-json.dockerfile

@@ -0,0 +1,13 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV UMEMPOOL="58,0,0,41,273,-15,-14,-20,36"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(( 3 * $(nproc) / 2 ))|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 13 - 0
frameworks/C++/ulib/ulib-json_fit.dockerfile

@@ -0,0 +1,13 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV UMEMPOOL="58,0,0,41,273,-15,-14,-20,36"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(nproc)|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 14 - 0
frameworks/C++/ulib/ulib-mongodb.dockerfile

@@ -0,0 +1,14 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV MONGODB_HOST=TFB-database
+ENV UMEMPOOL="96,0,0,47,16401,-14,-20,-18,26"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(( 3 * $(nproc) / 2 ))|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 15 - 0
frameworks/C++/ulib/ulib-mysql.dockerfile

@@ -0,0 +1,15 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV ORM_DRIVER="mysql"
+ENV UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31"
+ENV ORM_OPTION="host=TFB-database user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=hello_world"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(nproc)|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 13 - 0
frameworks/C++/ulib/ulib-plaintext_fit.dockerfile

@@ -0,0 +1,13 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 16384|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 8000|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV UMEMPOOL="58,0,0,41,16401,-14,-15,11,25"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(nproc)|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 15 - 0
frameworks/C++/ulib/ulib-postgres.dockerfile

@@ -0,0 +1,15 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV ORM_DRIVER="pgsql"
+ENV UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31"
+ENV ORM_OPTION="host=TFB-database user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(( 2 * $(nproc)))|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 15 - 0
frameworks/C++/ulib/ulib-postgres_fit.dockerfile

@@ -0,0 +1,15 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV ORM_DRIVER="pgsql"
+ENV UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31"
+ENV ORM_OPTION="host=TFB-database user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(nproc)|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 13 - 0
frameworks/C++/ulib/ulib.dockerfile

@@ -0,0 +1,13 @@
+FROM tfb/ulib-base:latest
+
+# 1. Change ULib Server (userver_tcp) configuration
+RUN sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 16384|g" $IROOT/ULib/benchmark.cfg
+RUN sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 8000|g"  $IROOT/ULib/benchmark.cfg
+
+# 2. Start ULib Server (userver_tcp)
+ENV UMEMPOOL="58,0,0,41,16401,-14,-15,11,25"
+
+CMD sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD $(( 3 * $(nproc) / 2 ))|g"  $IROOT/ULib/benchmark.cfg && \
+    setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip  $IROOT/ULib/bin/userver_tcp && \
+    $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg

+ 0 - 122
toolset/setup/linux/frameworks/ulib.sh

@@ -1,122 +0,0 @@
-#!/bin/bash
-
-fw_depends gcc-6
-
-fw_installed ulib && return 0
-
-ULIB_VERSION=1.4.2
-ULIB_ROOT=$IROOT/ULib
-ULIB_DOCUMENT_ROOT=$ULIB_ROOT/ULIB_DOCUMENT_ROOT
-
-# Create a run directory for ULIB
-[ ! -e $IROOT/ulib.installed -a -d $IROOT/ULib ] && rm -rf $IROOT/ULib*
-
-mkdir -p $ULIB_ROOT
-mkdir -p $ULIB_DOCUMENT_ROOT
-
-#if [ "$TRAVIS" = "true" ]; then
-# AVOID "fatal error: postgres_fe.h: No such file or directory"
-sudo apt-get install -y postgresql-server-dev-all
-#fi
-
-# make use of FIFO scheduling policy possible (we must avoid use of test because bash signal trapping)
-#type setcap >/dev/null 2>/dev/null
-
-#if [ $? -ne 0 ]; then
-  sudo apt-get install -y libcap2-bin
-#fi
-
-export CC=gcc-6
-export CXX=g++-6
-export AR=gcc-ar-6
-export RANLIB=gcc-ranlib-6
-
-# We need to install mongo-c-driver (we don't have a ubuntu package)
-RETCODE=$(fw_exists ${IROOT}/mongo-c-driver.installed)
-if [ "$RETCODE" != 0 ]; then
-  wget https://github.com/mongodb/mongo-c-driver/releases/download/1.1.10/mongo-c-driver-1.1.10.tar.gz
-  tar -xzf mongo-c-driver-1.1.10.tar.gz
-  cd mongo-c-driver-1.1.10/
-  ./configure --prefix=$IROOT --libdir=$IROOT
-  make && sudo make install
-  touch ${IROOT}/mongo-c-driver.installed
-fi
-
-cd $IROOT
-
-if [ -e ../results/ULib-${ULIB_VERSION}.tar.gz ]; then
-	mv ../results/ULib-${ULIB_VERSION}.tar.gz .
-else
-	# 1. Download ULib
-	fw_get -o ULib-${ULIB_VERSION}.tar.gz https://github.com/stefanocasazza/ULib/archive/v${ULIB_VERSION}.tar.gz 
-fi
-
-fw_untar ULib-${ULIB_VERSION}.tar.gz
-
-# 2. Compile application (userver_tcp)
-cd ULib-$ULIB_VERSION
-
-# AVOID "configure: error: newly created file is older than distributed files! Check your system clock"
-find . -exec touch {} \;
-
-cp -r tests/examples/benchmark/FrameworkBenchmarks/ULib/db $ULIB_ROOT
-
-cat <<EOF >$ULIB_ROOT/benchmark.cfg
-userver {
-PORT 8080
-PREFORK_CHILD 2
-TCP_LINGER_SET 0 
-LISTEN_BACKLOG 16384
-ORM_DRIVER "mysql pgsql"
-CLIENT_FOR_PARALLELIZATION 100
-DOCUMENT_ROOT $ULIB_DOCUMENT_ROOT 
-}
-EOF
-
-USP_FLAGS="-DAS_cpoll_cppsp_DO" \
-./configure --prefix=$ULIB_ROOT \
---disable-static --disable-examples \
---with-mysql --with-pgsql \
---without-ssl --without-pcre --without-expat \
---without-libz --without-libuuid --without-magic --without-libares \
---enable-static-orm-driver='mysql pgsql' --enable-static-server-plugin=http \
---with-mongodb --with-mongodb-includes="-I$IROOT/include/libbson-1.0 -I$IROOT/include/libmongoc-1.0" --with-mongodb-ldflags="-L$IROOT"
-# --enable-debug \
-#USP_LIBS="-ljson" \
-#cp $TROOT/src/* src/ulib/net/server/plugin/usp
-
-make install
-cd examples/userver
-make install
-
-# Never use setcap inside of TRAVIS 
-[ "$TRAVIS" != "true" ] || { \
-if [ `ulimit -r` -eq 99 ]; then
-	sudo setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp
-fi
-}
-
-# Compile usp pages (no more REDIS)
-cd ../../src/ulib/net/server/plugin/usp
-make json.la plaintext.la db.la query.la update.la fortune.la cached_worlds.la \
-	  mdb.la mquery.la mupdate.la mfortune.la
-#    rdb.la rquery.la rupdate.la rfortune.la
-
-# Check that compilation worked
-if [ ! -e .libs/cached_worlds.so ]; then
-	exit 1
-fi
-
-cp .libs/json.so .libs/plaintext.so \
-	.libs/db.so   .libs/query.so  .libs/update.so  .libs/fortune.so .libs/cached_worlds.so \
-	.libs/mdb.so  .libs/mquery.so .libs/mupdate.so .libs/mfortune.so $ULIB_DOCUMENT_ROOT
-#	.libs/rdb.so  .libs/rquery.so .libs/rupdate.so .libs/rfortune.so \
-
-cat <<EOF >$IROOT/ulib.installed
-export ULIB_ROOT=${ULIB_ROOT}
-export ULIB_VERSION=${ULIB_VERSION}
-export ULIB_DOCUMENT_ROOT=${ULIB_DOCUMENT_ROOT}
-export PATH=${ULIB_ROOT}/bin:${PATH}
-EOF
-
-source $IROOT/ulib.installed