• Jim Jagielski's avatar
    Merge r1696105, r1700418 from trunk: · b7f7b509
    Jim Jagielski authored
    With the current implementation, it is likely to connect/close a socket with the memcache server for each command sent.
    The root cause is a too small idle timeout (600 microseconds).
    
    Add a new directive, 'MemcacheConnTTL',  to control this idle connection timeout with the memcache server(s).
    Change the default value from 600 usec (!) to 15 sec as per Yann suggestion.
    
    I've limited accepted values from 1 to 1800 seconds (half an hour) because internaly, the value passed to 'apr_memcache_server_create' is still in mirco-seconds.
    
    PR 58091
    ~~~~~~~~~~~~~~~~~~~_
    Homemade measurement (on a slighly modified version of httpd) shows a +30% in number of processed requests using memcache to cache /index.html.
    Comparison made between the 600 usec and 15 sec TTL.
    
    Memcache config:
        default
    httpd Config:
        CacheEnable socache /
        CacheSocache memcache:127.0.0.1
        LoadModule mpm_event_module modules/mod_mpm_event.so
    httpd compiled with:
        ./configure --enable-mpms-shared=all --with-included-apr --with-mysql --with-libxml2 --enable-modules=reallyall --enable-ssl-ct=no --enable-maintainer-mode --prefix=$HOME/httpd-2.5
    httpd and memcache running on the same VM running under Ubuntu 15.04
    Load tested using:
        ab -n 20000 http://127.0.0.1/index.html
    
    Creation/closing of connections beetween httpd and memcache confirmed using the telnet connection to memcache and the stats command
    
    
    
    Allow 0 as a valid value (never close idle connections)
    Increased maximum allowed value to 3600 s (1 hour)
    Use 'ap_timeout_parameter_parse' to allow more flexible configuration (i.e. h, min, s, ms suffixes)
    Use 'apr_time_from_sec' when applicable.
    Submitted by: jailletc36
    Reviewed/backported by: jim
    
    
    git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1701771 13f79535-47bb-0310-9956-ffa450edef68
    b7f7b509
To find the state of this project's repository at the time of any of these versions, check out the tags.