Skip to content

Instantly share code, notes, and snippets.

@adsr
Created May 12, 2022 17:46
Show Gist options
  • Save adsr/33f11668ed4d3e23e1be052d413fd37c to your computer and use it in GitHub Desktop.
Save adsr/33f11668ed4d3e23e1be052d413fd37c to your computer and use it in GitHub Desktop.
Apache 2.4.x:
adam@asx1c9:~/httpd$ bin/httpd -V
Server version: Apache/2.4.52 (Unix)
Server built: May 12 2022 13:13:11
Server's Module Magic Number: 20120211:121
Server loaded: APR 2.0.0-dev
Compiled using: APR 2.0.0-dev
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/home/adam/httpd"
-D SUEXEC_BIN="/home/adam/httpd/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Big htaccess files:
adam@asx1c9:~/httpd$ find htdocs/
htdocs/
htdocs/.htaccess
htdocs/index.html
htdocs/adir
htdocs/adir/.htaccess
htdocs/adir/index.html
htdocs/adir/bdir
htdocs/adir/bdir/.htaccess
htdocs/adir/bdir/index.html
adam@asx1c9:~/httpd$ ls -lh htdocs/.htaccess htdocs/adir/.htaccess htdocs/adir/bdir/.htaccess
-rw-r--r-- 1 adam adam 1.6M May 12 11:16 htdocs/adir/bdir/.htaccess
-rw-r--r-- 1 adam adam 1.6M May 12 11:16 htdocs/adir/.htaccess
-rw-r--r-- 1 adam adam 1.6M May 12 10:59 htdocs/.htaccess
Without patch (~27ms per request):
adam@asx1c9:~/httpd-src$ for i in $(seq 1 20); do curl -s -o /dev/null -w "http_code=%{http_code} time=%{time_total}\n" 'localhost:8080/'; done
http_code=200 time=0.032084
http_code=200 time=0.028571
http_code=200 time=0.027607
http_code=200 time=0.027333
http_code=200 time=0.027490
http_code=200 time=0.027264
http_code=200 time=0.027355
http_code=200 time=0.027604
http_code=200 time=0.027594
http_code=200 time=0.027375
http_code=200 time=0.027238
http_code=200 time=0.027488
http_code=200 time=0.027396
http_code=200 time=0.027336
http_code=200 time=0.027208
http_code=200 time=0.027160
http_code=200 time=0.027438
http_code=200 time=0.027596
http_code=200 time=0.027466
http_code=200 time=0.027297
adam@asx1c9:~/httpd-src$ for i in $(seq 1 20); do curl -s -o /dev/null -w "http_code=%{http_code} time=%{time_total}\n" 'localhost:8080/adir/'; done
http_code=200 time=0.061376
http_code=200 time=0.053312
http_code=200 time=0.053584
http_code=200 time=0.054619
http_code=200 time=0.053780
http_code=200 time=0.052644
http_code=200 time=0.053162
http_code=200 time=0.053059
http_code=200 time=0.053317
http_code=200 time=0.053483
http_code=200 time=0.054518
http_code=200 time=0.052918
http_code=200 time=0.053224
http_code=200 time=0.053339
http_code=200 time=0.052890
http_code=200 time=0.054868
http_code=200 time=0.052877
http_code=200 time=0.053068
http_code=200 time=0.053273
http_code=200 time=0.053382
adam@asx1c9:~/httpd-src$ for i in $(seq 1 20); do curl -s -o /dev/null -w "http_code=%{http_code} time=%{time_total}\n" 'localhost:8080/adir/bdir/'; done
http_code=200 time=0.083477
http_code=200 time=0.079014
http_code=200 time=0.079285
http_code=200 time=0.081629
http_code=200 time=0.078508
http_code=200 time=0.079952
http_code=200 time=0.078930
http_code=200 time=0.079318
http_code=200 time=0.078841
http_code=200 time=0.079242
http_code=200 time=0.079179
http_code=200 time=0.079474
http_code=200 time=0.078814
http_code=200 time=0.079143
http_code=200 time=0.079570
http_code=200 time=0.079418
http_code=200 time=0.079209
http_code=200 time=0.080174
http_code=200 time=0.079040
http_code=200 time=0.079774
With patch (~2ms per request after initial cache set):
https://gist.github.com/adsr/086537d66469bf0f289521a01534abbe
adam@asx1c9:~/httpd-src$ for i in $(seq 1 20); do curl -s -o /dev/null -w "http_code=%{http_code} time=%{time_total}\n" 'localhost:8080/'; done
http_code=200 time=0.034770
http_code=200 time=0.001135
http_code=200 time=0.001404
http_code=200 time=0.001367
http_code=200 time=0.001425
http_code=200 time=0.001483
http_code=200 time=0.001888
http_code=200 time=0.001448
http_code=200 time=0.001960
http_code=200 time=0.001453
http_code=200 time=0.001823
http_code=200 time=0.001544
http_code=200 time=0.002033
http_code=200 time=0.001831
http_code=200 time=0.002150
http_code=200 time=0.002067
http_code=200 time=0.003036
http_code=200 time=0.002380
http_code=200 time=0.002750
http_code=200 time=0.002397
adam@asx1c9:~/httpd-src$ for i in $(seq 1 20); do curl -s -o /dev/null -w "http_code=%{http_code} time=%{time_total}\n" 'localhost:8080/adir/'; done
http_code=200 time=0.033723
http_code=200 time=0.001351
http_code=200 time=0.001192
http_code=200 time=0.001438
http_code=200 time=0.001296
http_code=200 time=0.001403
http_code=200 time=0.001149
http_code=200 time=0.001455
http_code=200 time=0.001518
http_code=200 time=0.001430
http_code=200 time=0.001641
http_code=200 time=0.001523
http_code=200 time=0.001710
http_code=200 time=0.001692
http_code=200 time=0.001839
http_code=200 time=0.001678
http_code=200 time=0.001967
http_code=200 time=0.002043
http_code=200 time=0.001195
http_code=200 time=0.001922
adam@asx1c9:~/httpd-src$ for i in $(seq 1 20); do curl -s -o /dev/null -w "http_code=%{http_code} time=%{time_total}\n" 'localhost:8080/adir/bdir/'; done
http_code=200 time=0.032834
http_code=200 time=0.001221
http_code=200 time=0.001428
http_code=200 time=0.001304
http_code=200 time=0.001384
http_code=200 time=0.001357
http_code=200 time=0.001451
http_code=200 time=0.001369
http_code=200 time=0.001492
http_code=200 time=0.001506
http_code=200 time=0.001580
http_code=200 time=0.001669
http_code=200 time=0.001631
http_code=200 time=0.001752
http_code=200 time=0.001655
http_code=200 time=0.001874
http_code=200 time=0.001754
http_code=200 time=0.001929
http_code=200 time=0.001672
http_code=200 time=0.002166
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment