Răsfoiți Sursa

Drogon: disable auto-batch mode (#7392)

* Drogon:disable auto-batch mode

* update dockerfile

* Docker

* docker

* Update

* Update configuration files

Co-authored-by: Leon <[email protected]>
Co-authored-by: root <an-tao>
An Tao 3 ani în urmă
părinte
comite
14f888996a

+ 14 - 18
frameworks/C++/drogon/drogon-core.dockerfile

@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
+FROM ubuntu:20.04
 
 COPY ./ ./
 
@@ -11,7 +11,7 @@ RUN  apt-get update -yqq && \
      zlib1g-dev && \
      add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
 	 apt-get update -yqq && \
-	 apt-get install -yqq gcc-8 g++-8
+	 apt-get install -yqq gcc-10 g++-10
 
 RUN locale-gen en_US.UTF-8
 
@@ -19,10 +19,10 @@ ENV LANG en_US.UTF-8
 ENV LANGUAGE en_US:en
 ENV LC_ALL en_US.UTF-8
 
-ENV CC=gcc-8
-ENV CXX=g++-8
-ENV AR=gcc-ar-8
-ENV RANLIB=gcc-ranlib-8
+ENV CC=gcc-10
+ENV CXX=g++-10
+ENV AR=gcc-ar-10
+ENV RANLIB=gcc-ranlib-10
 
 ENV IROOT=/install
 ENV DROGON_ROOT=$IROOT/drogon
@@ -32,26 +32,22 @@ ENV TEST_PATH=/drogon_benchmark/build
 
 WORKDIR $IROOT
 
-RUN wget https://github.com/an-tao/postgres/archive/batch_mode_ubuntu.tar.gz
-RUN tar -xvzf batch_mode_ubuntu.tar.gz
-WORKDIR $PG_ROOT
-
-RUN ./configure --prefix=/usr CFLAGS='-O2 -pipe'
-RUN make && make install
-
-WORKDIR $IROOT
+RUN sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
+RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
+RUN sudo apt -y update
+RUN sudo apt -y install postgresql-server-dev-all
 
 RUN git clone https://github.com/an-tao/drogon
 
 WORKDIR $DROGON_ROOT
 
-RUN git checkout fb17efe765d162be01680b05a3a387c7a182a4c5
+RUN git checkout ebf87d69d7bb45dfa478ba364ef9374d9be25092
 RUN git submodule update --init
 RUN mkdir build
 
 WORKDIR $DROGON_ROOT/build
 
-RUN cmake -DCMAKE_BUILD_TYPE=release ..
+RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ..
 RUN make && make install
 
 WORKDIR $IROOT
@@ -62,12 +58,12 @@ WORKDIR $MIMALLOC_ROOT
 RUN git checkout v1.6.7 -b v1.6.7
 RUN mkdir -p out/release
 WORKDIR $MIMALLOC_ROOT/out/release
-RUN cmake ../..
+RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ../..
 RUN make && make install
 
 WORKDIR $TEST_PATH
 
-RUN cmake -DCMAKE_BUILD_TYPE=release ..
+RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ..
 RUN make
 
 EXPOSE 8080

+ 14 - 18
frameworks/C++/drogon/drogon.dockerfile

@@ -1,4 +1,4 @@
-FROM ubuntu:18.04
+FROM ubuntu:20.04
 
 COPY ./ ./
 
@@ -11,7 +11,7 @@ RUN  apt-get update -yqq && \
      zlib1g-dev && \
      add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
 	 apt-get update -yqq && \
-	 apt-get install -yqq gcc-8 g++-8
+	 apt-get install -yqq gcc-10 g++-10
 
 RUN locale-gen en_US.UTF-8
 
@@ -19,10 +19,10 @@ ENV LANG en_US.UTF-8
 ENV LANGUAGE en_US:en
 ENV LC_ALL en_US.UTF-8
 
-ENV CC=gcc-8
-ENV CXX=g++-8
-ENV AR=gcc-ar-8
-ENV RANLIB=gcc-ranlib-8
+ENV CC=gcc-10
+ENV CXX=g++-10
+ENV AR=gcc-ar-10
+ENV RANLIB=gcc-ranlib-10
 
 ENV IROOT=/install
 ENV DROGON_ROOT=$IROOT/drogon
@@ -32,26 +32,22 @@ ENV TEST_PATH=/drogon_benchmark/build
 
 WORKDIR $IROOT
 
-RUN wget https://github.com/an-tao/postgres/archive/batch_mode_ubuntu.tar.gz
-RUN tar -xvzf batch_mode_ubuntu.tar.gz
-WORKDIR $PG_ROOT
-
-RUN ./configure --prefix=/usr CFLAGS='-O2 -pipe'
-RUN make && make install
-
-WORKDIR $IROOT
+RUN sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
+RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
+RUN sudo apt -y update
+RUN sudo apt -y install postgresql-server-dev-all
 
 RUN git clone https://github.com/an-tao/drogon
 
 WORKDIR $DROGON_ROOT
 
-RUN git checkout fb17efe765d162be01680b05a3a387c7a182a4c5
+RUN git checkout ebf87d69d7bb45dfa478ba364ef9374d9be25092
 RUN git submodule update --init
 RUN mkdir build
 
 WORKDIR $DROGON_ROOT/build
 
-RUN cmake -DCMAKE_BUILD_TYPE=release ..
+RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ..
 RUN make && make install
 
 WORKDIR $IROOT
@@ -62,12 +58,12 @@ WORKDIR $MIMALLOC_ROOT
 RUN git checkout v1.6.7 -b v1.6.7
 RUN mkdir -p out/release
 WORKDIR $MIMALLOC_ROOT/out/release
-RUN cmake ../..
+RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ../..
 RUN make && make install
 
 WORKDIR $TEST_PATH
 
-RUN cmake -DCMAKE_BUILD_TYPE=release ..
+RUN cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_CXX_FLAGS=-flto ..
 RUN make
 
 EXPOSE 8080

+ 2 - 1
frameworks/C++/drogon/drogon_benchmark/config-core.json

@@ -34,7 +34,8 @@
         //any synchronous interface of it.
         "is_fast": true,
         //connection_number:1 by default
-        "connection_number": 1
+        "connection_number": 1,
+        "auto_batch": false
     }],
     "app": {
         //threads_num:the number of IO threads,1 by default, if the value is set to 0, the number of threads

+ 3 - 2
frameworks/C++/drogon/drogon_benchmark/config.json

@@ -34,7 +34,8 @@
         //any synchronous interface of it.
         "is_fast": true,
         //connection_number:1 by default
-        "connection_number": 1
+        "connection_number": 1,
+        "auto_batch": false
     }],
     "app": {
         //threads_num:the number of IO threads,1 by default, if the value is set to 0, the number of threads
@@ -185,4 +186,4 @@
     }],
     //custom_config: custom configuration for users. This object can be get by the app().getCustomConfig() method. 
     "custom_config": {}
-}
+}

+ 1 - 2
frameworks/C++/drogon/drogon_benchmark/plugins/SyncPlugin.cc

@@ -34,8 +34,7 @@ void SyncPlugin::initAndStart(const Json::Value &config)
                     {
                         auto resp = HttpResponse::newHttpResponse();
                         resp->setBody("Hello, World!");
-                        resp->setContentTypeCodeAndCustomString(
-                            CT_TEXT_PLAIN, "Content-Type: text/plain\r\n");
+                        resp->setContentTypeCode(CT_TEXT_PLAIN);
                         return resp;
                     }
                     break;