Browse Source

Merge pull request #1498 from LadyMozzarella/lgratrix-fix-nancy-mono

Start Nancy Mono
Brittany Mazza 10 years ago
parent
commit
ef2c648271

+ 0 - 5
frameworks/CSharp/nancy/bash_profile.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-export MONO_ROOT=${IROOT}/mono-3.6.0-install
-
-export NGINX_HOME=${IROOT}/nginx

+ 1 - 1
frameworks/CSharp/nancy/benchmark_config.json

@@ -47,7 +47,7 @@
       "db_url": "/db",
       "query_url": "/db/",
       "port": 8080,
-	        "approach": "Realistic",
+      "approach": "Realistic",
       "classification": "Micro",
       "database": "MySQL",
       "framework": "nancy",

+ 34 - 0
frameworks/CSharp/nancy/setup_libevent.sh

@@ -0,0 +1,34 @@
+#!/bin/bash
+
+export NGINX_HOME=${IROOT}/nginx
+export LIBEVENTHOST_HOME=${TROOT}/src/LibeventHost
+export MONO_GC_PARAMS="nursery-size=16m"
+
+. ${IROOT}/mono.installed
+
+sed -i 's|localhost|'"${DBHOST}"'|g' src/Web.config
+
+rm -rf src/bin src/obj
+xbuild src/NancyBenchmark.csproj /t:Clean
+xbuild src/NancyBenchmark.csproj /p:Configuration=Release
+
+rm -rf ${LIBEVENTHOST_HOME}/bin ${LIBEVENTHOST_HOME}/obj
+xbuild ${LIBEVENTHOST_HOME}/LibeventHost.csproj /p:Configuration=Release
+
+# nginx
+port_start=9001
+port_end=$((${port_start}+${MAX_THREADS}))
+conf="upstream mono {\n"
+for port in $(seq ${port_start} ${port_end} ); do
+  conf+="\tserver 127.0.0.1:${port};\n"
+done
+conf+="}"
+
+echo -e $conf > ${TROOT}/nginx.upstream.conf
+${NGINX_HOME}/sbin/nginx -c ${TROOT}/nginx.conf.libevent -g "worker_processes '"${MAX_THREADS}"';"
+
+# Start fastcgi for each thread
+# To debug, use --printlog --verbose --loglevels=All
+for port in $(seq ${port_start} ${port_end} ); do
+  mono-sgen -O=all ${LIBEVENTHOST_HOME}/bin/Release/LibeventHost.exe 127.0.0.1 ${port} ${DBHOST} &
+done

+ 15 - 20
frameworks/CSharp/nancy/setup_nginx.sh

@@ -1,36 +1,31 @@
 #!/bin/bash
 
-sed -i 's|localhost|'"$DBHOST"'|g' src/Web.config
-sed -i 's|include /usr/local/nginx/conf/fastcgi_params;|include '"${NGINX_HOME}"'/conf/fastcgi_params;|g' nginx.conf
+export NGINX_HOME=${IROOT}/nginx
 
-export PATH="$MONO_ROOT/bin:$PATH"
+. ${IROOT}/mono.installed
 
-# Needed to find Mono's shared libraries
-export LD_LIBRARY_PATH="$MONO_ROOT/lib"
+sed -i 's|localhost|'"${DBHOST}"'|g' src/Web.config
+sed -i 's|include /usr/local/nginx/conf/fastcgi_params;|include '"${NGINX_HOME}"'/conf/fastcgi_params;|g' nginx.conf
 
 # build
-cd src
-rm -rf bin obj
-$MONO_ROOT/bin/xbuild /p:Configuration=Release
+rm -rf src/bin src/obj
+xbuild src/NancyBenchmark.csproj /t:Clean
+xbuild src/NancyBenchmark.csproj /p:Configuration=Release
 
 # nginx
+port_start=9001
+port_end=$((${port_start}+${MAX_THREADS}))
 conf="upstream mono {\n"
-current=9001
-end=$(($current+$MAX_THREADS))
-while [ $current -lt $end ]; do
-  conf+="\tserver 127.0.0.1:${current};\n"
-  let current=current+1
+for port in $(seq ${port_start} $port_end); do
+  conf+="\tserver 127.0.0.1:${port};\n"
 done
 conf+="}"
-echo -e $conf > $TROOT/nginx.upstream.conf
 
-$NGINX_HOME/sbin/nginx -c $TROOT/nginx.conf -g "worker_processes '"${MAX_THREADS}"';"
+echo -e $conf > ${TROOT}/nginx.upstream.conf
+${NGINX_HOME}/sbin/nginx -c ${TROOT}/nginx.conf -g "worker_processes '"${MAX_THREADS}"';"
 
 # Start fastcgi for each thread
 # To debug, use --printlog --verbose --loglevels=All
-current=9001
-end=$(($current+$MAX_THREADS))
-while [ $current -lt $end ]; do
-  MONO_OPTIONS=--gc=sgen fastcgi-mono-server4 --applications=/:${TROOT}/src --socket=tcp:127.0.0.1:$current &
-  let current=current+1
+for port in $(seq ${port_start} $port_end); do
+  MONO_OPTIONS=--gc=sgen fastcgi-mono-server4 --applications=/:${TROOT}/src --socket=tcp:127.0.0.1:$port &
 done

+ 1 - 0
frameworks/CSharp/nancy/src/Global.asax.cs

@@ -11,6 +11,7 @@ namespace NancyBenchmark
     {
         protected void Application_Start()
         {
+            StaticConfiguration.DisableErrorTraces = false;
             var threads = 40 * Environment.ProcessorCount;
             ThreadPool.SetMaxThreads(threads, threads);
             ThreadPool.SetMinThreads(threads, threads);

+ 1 - 1
frameworks/CSharp/nancy/src/LibeventHost/LibeventHost.csproj

@@ -33,7 +33,7 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Nancy">
-      <HintPath>..\..\lib\Nancy.0.17.1\lib\net40\Nancy.dll</HintPath>
+      <HintPath>..\..\lib\Nancy.0.23.0\lib\net40\Nancy.dll</HintPath>
     </Reference>
     <Reference Include="Nancy.Hosting.Event2">
       <HintPath>..\..\lib\Nancy.Hosting.Event2.dll</HintPath>