Benchmark ran on my 2021 Dell Precision Laptop w/ 8 cores + HT (so 16vCPU) and Ubuntu 22.04 inside WSL2. Never topped 50% avg CPU, and almost all of the CPU was in userland (not system calls).
On Sat, Aug 27, 2022 at 11:42 AM <j...@sunstarsys.com> wrote: > See https://sunstarsys.com/essays/perl7-sealed-lexicals. For the full > effect, you will need to build B::Generate with this patched version > instead: https://github.com/SunStarSys/cms/blob/master/Generate.xs > > > > Sample mod_perl config + benchmarks: > > > > <IfModule mpm_event_module> > > StartServers 2 > > MinSpareThreads 100 > > MaxSpareThreads 500 > > ThreadLimit 1000 > > ThreadsPerChild 100 > > MaxRequestWorkers 1000000 > > MaxConnectionsPerChild 0 > > </IfModule> > > > > <IfModule mod_perl.c> > > PerlSwitches -T -I/home/joesuf4/src/cms/lib > > PerlInterpStart 2 > > PerlInterpMax 4 > > PerlInterpMinSpare 1 > > PerlInterpMaxSpare 4 > > PerlInterpMaxRequests 1000000 > > PerlOptions +GlobalRequest > > > > <Directory /home/joesuf4/src/cms> > > Require all granted > > AddHandler perl-script .pl > > PerlResponseHandler ModPerl::Registry > > Options +ExecCGI > > </Directory> > > > > <Directory /home/joesuf4/src/trunk/content> > > Require all granted > > </Directory> > > > > <VirtualHost *:80> > > ServerName localhost > > DocumentRoot /home/joesuf4/src/trunk/content > > Alias /perl-script /home/joesuf4/src/cms > > </VirtualHost> > > > > </IfModule> > > > > > > ab -n 10000 -c 1000 http://localhost/perl-script/enquiry.pl > > This is ApacheBench, Version 2.3 <$Revision: 1879490 $> > > Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ > > Licensed to The Apache Software Foundation, http://www.apache.org/ > > > > Benchmarking localhost (be patient) > > Completed 1000 requests > > Completed 2000 requests > > Completed 3000 requests > > Completed 4000 requests > > Completed 5000 requests > > Completed 6000 requests > > Completed 7000 requests > > Completed 8000 requests > > Completed 9000 requests > > Completed 10000 requests > > Finished 10000 requests > > > > > > Server Software: Apache/2.4.52 > > Server Hostname: localhost > > Server Port: 80 > > > > Document Path: /perl-script/enquiry.pl > > Document Length: 1329 bytes > > > > Concurrency Level: 1000 > > Time taken for tests: 1.218 seconds > > Complete requests: 10000 > > Failed requests: 0 > > Total transferred: 15010000 bytes > > HTML transferred: 13290000 bytes > > Requests per second: 8207.94 [#/sec] (mean) > > Time per request: 121.833 [ms] (mean) > > Time per request: 0.122 [ms] (mean, across all concurrent requests) > > Transfer rate: 12031.37 [Kbytes/sec] received > > > > Connection Times (ms) > > min mean[+/-sd] median max > > Connect: 0 2 6.2 0 24 > > Processing: 4 93 49.6 82 458 > > Waiting: 1 80 44.5 71 455 > > Total: 17 95 49.5 84 458 > > > > Percentage of the requests served within a certain time (ms) > > 50% 84 > > 66% 100 > > 75% 112 > > 80% 120 > > 90% 147 > > 95% 173 > > 98% 233 > > 99% 318 > > 100% 458 (longest request) > > > > % pgrep -f apache2 | xargs -n1 ps -uwww > > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > > root 442827 0.0 0.1 18180 14244 ? Ss 11:27 0:00 > /usr/sbin/apache2 -k start > > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > > www-data 446387 1.7 1.5 7549352 129692 ? Sl 11:28 0:12 > /usr/sbin/apache2 -k start > > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > > www-data 451006 15.2 1.5 7483708 128468 ? Sl 11:39 0:10 > /usr/sbin/apache2 -k start > > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > > www-data 451317 11.7 1.4 7483772 119836 ? Sl 11:39 0:07 > /usr/sbin/apache2 -k start > > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > > www-data 451629 6.4 1.3 7483804 113012 ? Sl 11:39 0:03 > /usr/sbin/apache2 -k start > > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > > www-data 451929 1.1 1.4 7483816 116668 ? Sl 11:39 0:00 > /usr/sbin/apache2 -k start > -- Joe Schaefer, Ph.D. We only build what you need built. <j...@sunstarsys.com> 954.253.3732 <//954.253.3732>