Forum OpenACS Q&A: Re: OpenACS clustering setup and how it relates to xotcl-core.
We appreciate your expertise in helping us tune our system. It has helped a lot!
I was successful in setting up the "slow" pool. I was wondering if there is a setting to only map a request to the slow pool if it is only over 30 or 40 seconds. I found that it started to put our effort reporting page on the slow pool when the system was a little stressed. So I removed the slow pool for the following tests for now.
I have been playing around with the configuration and we have decided to go up to 48 cores on our staging system with the 200 Gig of RAM.
Here is what I found to be somewhat optimal for the 48 cores.
We are not running out of Available connections anymore and the queued request are a lot lower as well as the avg queue times. The K6 tests show that all http request are status 200 as well.
I was wondering if you see any problems with the configuration and if you had suggestions for changes.
Again, thanks for your help
Marty
ns_section ns/server/${server}
ns_param maxconnections 2000 ;# 100; number of allocated connection structures
ns_param maxthreads 200 ;# 10; maximal number of connection threads
ns_param minthreads 200 ;# 1; minimal number of connection threads
ns_param connsperthread 10000 ;# 10000; number of connections (requests) handled per thread
;# Setting connsperthread to > 0 will cause the thread to
;# graciously exit, after processing that many
;# requests, thus initiating kind-of Tcl-level
;# garbage collection.
# ns_param threadtimeout 120 ;# 120; timeout for idle threads.
;# In case, minthreads < maxthreads, threads
;# are shutdown after this idle time until
;# minthreads are reached.
# ns_param lowwatermark 10 ;# 10; create additional threads above this queue-full percentage
ns_param highwatermark 100 ;# 80; allow concurrent creates above this queue-is percentage
;# 100 means to disable concurrent creates
ns_param rejectoverrun true ;# If set to true; NaviServer sends on queue overruns an error "503 service unavailable".
;# The request is not added to the waiting list.
# Compress response character data: ns_return, ADP etc.
#
ns_param compressenable off ;# false, use "ns_conn compress" to override
ns_section ns/server/${server}/pools
ns_param monitor "Monitoring actions to check the health of the system"
ns_param image "Image file requests"
#ns_param slow "Slow requests"
ns_param fast "Fast requests"
ns_section ns/server/${server}/pool/monitor
ns_param minthreads 3
ns_param maxthreads 5
ns_param map "GET /admin/nsstats"
ns_param map "GET /SYSTEM"
ns_param map "GET /ds"
ns_param map "POST /ds"
ns_section ns/server/${server}/pool/image
ns_param minthreads 3
ns_param maxthreads 5
ns_param map "GET /*.png"
ns_param map "GET /*.jpg"
ns_param map "GET /*.PNG"
ns_param map "GET /*.JPG"
ns_param map "GET /*.JPEG"
ns_param map "GET /*.jpeg"
ns_param map "GET /*.mp4"
ns_param map "GET /*.MP4"
ns_param map "GET /*.pdf"
ns_param map "GET /*.PDF"
ns_param map "GET /*.gif"
ns_param map "GET /*.GIF"
#ns_section ns/server/${server}/pool/slow
#ns_param minthreads 15
#ns_param maxthreads 15
ns_section ns/server/${server}/pool/fast
ns_param minthreads 6
ns_param maxthreads 6
# Test w 48 CPU's 200 Gig RAM
# maxconnections 2000
# maxthreads 200
# minthreads 200
# connsperthread 10000
# highwatermark 100
# compressenable off
# rejectoverrun true
150 VUs
Connection Threads: min 200 max 200 current 200 idle 151 stopping 0 waiting 0
Request Handling: requests 1.8K, queued 0 (0.00%), spooled 1K (63.55%)
Request Timing: avg queue time 161.33µs, avg filter time 78.53ms, avg run time 212.77ms avg trace time 972.63µs
300 VUs
Connection Threads: min 200 max 200 current 200 idle 157 stopping 0 waiting 0
Request Handling: requests 5.4K, queued 508 (9.46%), spooled 4K (66.81%)
Request Timing: avg queue time 295.87ms, avg filter time 1.74s, avg run time 251.96ms avg trace time 1.1ms
150 VUs
Connection Threads: min 200 max 200 current 200 idle 189 stopping 0 waiting 0
Request Handling: requests 7.1K, queued 627 (8.80%), spooled 5K (65.20%)
Request Timing: avg queue time 260.7ms, avg filter time 2s, avg run time 255.49ms avg trace time 1.13ms
70 VUs
Connection Threads: min 200 max 200 current 200 idle 141 stopping 0 waiting 0
Request Handling: requests 7.9K, queued 627 (7.98%), spooled 5K (65.70%)
Request Timing: avg queue time 236.39ms, avg filter time 1.94s, avg run time 264.67ms avg trace time 1.12ms
10 VUs
Connection Threads: min 200 max 200 current 200 idle 199 stopping 0 waiting 0
Request Handling: requests 8.4K, queued 627 (7.48%), spooled 6K (66.52%)
Request Timing: avg queue time 221.7ms, avg filter time 1.85s, avg run time 275.66ms avg trace time 1.13ms
K6 Summary
running (4m09.3s), 000/300 VUs, 1359 complete and 38 interrupted iterations
default ✓ [======================================] 000/300 VUs 4m0s
✓ status is 200
✗ page succeeded
↳ 99% — ✓ 5542 / ✗ 8
█ setup
█ teardown
checks.........................: 99.92% ✓ 11092 ✗ 8
data_received..................: 1.3 GB 5.2 MB/s
data_sent......................: 7.0 MB 28 kB/s
http_req_blocked...............: avg=1.46ms min=1.27µs med=6.61µs max=51.42ms p(90)=4.1ms p(95)=4.87ms
http_req_connecting............: avg=147.33µs min=0s med=0s max=48.09ms p(90)=376.22µs p(95)=442.16µs
✗ http_req_duration..............: avg=2.32s min=4.86ms med=224.41ms max=24.15s p(90)=8.5s p(95)=13.05s
{ expected_response:true }...: avg=2.32s min=4.86ms med=224.41ms max=24.15s p(90)=8.5s p(95)=13.05s
http_req_failed................: 0.00% ✓ 0 ✗ 8355
http_req_receiving.............: avg=689.98µs min=39.82µs med=179.82µs max=70.57ms p(90)=1.71ms p(95)=1.89ms
http_req_sending...............: avg=39.42µs min=8.56µs med=35.11µs max=15.19ms p(90)=66.52µs p(95)=76.12µs
http_req_tls_handshaking.......: avg=1.28ms min=0s med=0s max=42.24ms p(90)=3.62ms p(95)=4.51ms
http_req_waiting...............: avg=2.32s min=4.66ms med=223.99ms max=24.15s p(90)=8.5s p(95)=13.05s
http_reqs......................: 8355 33.512465/s
iteration_duration.............: avg=23.56s min=1.64µs med=22.73s max=51.14s p(90)=36.62s p(95)=38.12s
iterations.....................: 1359 5.45104/s
vus............................: 1 min=1 max=300
vus_max........................: 300 min=300 max=300