From c5910cde4b47255b9665a1c1d99fe0abc43465b8 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Wed, 3 Dec 2014 09:04:12 -0800 Subject: [PATCH] autoconfig workers, one per core --- rainbows_config.rb | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/rainbows_config.rb b/rainbows_config.rb index ff01a2e9..971753ef 100644 --- a/rainbows_config.rb +++ b/rainbows_config.rb @@ -1,9 +1,27 @@ +def processor_count + case RbConfig::CONFIG['host_os'] + when /darwin9/ + `hwprefs cpu_count`.to_i + when /darwin/ + ((`which hwprefs` != '') ? `hwprefs thread_count` : `sysctl -n hw.ncpu`).to_i + when /linux/ + `cat /proc/cpuinfo | grep processor | wc -l`.to_i + when /freebsd/ + `sysctl -n hw.ncpu`.to_i + when /mswin|mingw/ + require 'win32ole' + wmi = WIN32OLE.connect("winmgmts://") + cpu = wmi.ExecQuery("select NumberOfCores from Win32_Processor") # TODO count hyper-threaded in this + cpu.to_enum.first.NumberOfCores + end +end + Rainbows! do use :ThreadPool client_max_body_size 100*1024*1024 # 100 Megabytes - worker_processes 8 + worker_processes processor_count worker_connections 32 timeout 10