On 06/09/17 10:23 PM, Tony DiLoreto wrote:
A quick update here, I'm starting to believe there is a memory leak in either the way I've configured or compiled httpd on AWS EC2. I'm running a t2.small with 4GB memory with LAMP installed and 4 very small (< 5 hits a day) sites running on it. In my opinion, even with mod_php, Apache should require no more than 100MB IN TOTAL. That's not, however, the case: [ec2-user@ip-172-31-21-23 ~]$ free -m total used free shared buffers cached Mem: 3954 *3809* 145 19 214 643 -/+ buffers/cache: 2952 1002 Swap: 0 0 0 [ec2-user@ip-172-31-21-23 ~]$ ps aux | grep 'httpd' | awk '{print $6/1024;}' 2.07812 45.9297 9.48438 2648.25 [ec2-user@ip-172-31-21-23 ~]$ ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print "Num Processes: " NR " Average: " avg " MB";}' Num Processes: 4 Average: 676.416 MB There you have it. A *4GB, $50/mo EC2 server* with the default installation of LAMP <http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html>, at *96% utilized memory* and *71%* of the used memory going to 4 Apache processes (average of 676.4MB per process). If you're wondering how it is installed: [ec2-user@ip-172-31-21-23 ~]$ httpd -V Server version: Apache/2.4.27 (Amazon) Server built: Aug 2 2017 18:02:45 Server's Module Magic Number: 20120211:68 Server loaded: APR 1.5.1, APR-UTIL 1.4.1 Compiled using: APR 1.5.1, APR-UTIL 1.4.1 Architecture: 64-bit Server MPM: worker threaded: yes (fixed thread count) 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_SYSVSEM_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="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="/var/run/httpd/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" and the loaded modules: [ec2-user@ip-172-31-21-23 ~]$ httpd -M Loaded Modules: core_module (static) so_module (static) http_module (static) access_compat_module (shared) actions_module (shared) alias_module (shared) auth_basic_module (shared) auth_digest_module (shared) authz_core_module (shared) authz_dbd_module (shared) authz_dbm_module (shared) authz_groupfile_module (shared) authz_host_module (shared) authz_owner_module (shared) authz_user_module (shared) autoindex_module (shared) data_module (shared) deflate_module (shared) dir_module (shared) env_module (shared) expires_module (shared) ext_filter_module (shared) filter_module (shared) headers_module (shared) include_module (shared) info_module (shared) log_config_module (shared) mime_module (shared) negotiation_module (shared) reqtimeout_module (shared) request_module (shared) rewrite_module (shared) setenvif_module (shared) slotmem_plain_module (shared) slotmem_shm_module (shared) socache_dbm_module (shared) socache_memcache_module (shared) socache_shmcb_module (shared) status_module (shared) unixd_module (shared) userdir_module (shared) version_module (shared) vhost_alias_module (shared) watchdog_module (shared) dav_module (shared) dav_fs_module (shared) dav_lock_module (shared) mpm_worker_module (shared) ssl_module (shared) cgid_module (shared) php5_module (shared) pagespeed_module (shared) Thoughts on optimization/memory repair? Thank you! On Wed, Sep 6, 2017 at 2:25 PM, Tony DiLoreto <tony@xxxxxxxxxxxxxxxxxxxxxxxx <mailto:tony@xxxxxxxxxxxxxxxxxxxxxxxx>> wrote: Thanks Luca, I'll give that a shot. What surprises me is how much each process was consuming; at times 250mb each. Are you saying the majority of that is for php? At the end of the day, I'm looking for the optimal configuation for a standard Wordpress site server. Given the ubiquity of the platform you'd expect more people to have blogged about the required mods and MPM settings for this, but I've come back with little. Do we have a "barebones Wordpress" list of mods that are required? On Wed, Sep 6, 2017 at 1:30 AM Luca Toscano <toscano.luca@xxxxxxxxx <mailto:toscano.luca@xxxxxxxxx>> wrote: Hi Tony, usually httpd consumes a very little amount of memory, if it is behaving in that way it is probably due to some module like mod_php. Can you give us a bit more info about your mpm used and the list of modules loaded? For example, the most common use case that we see is mpm-prefork and mod_php causing a ton of RAM consumed (each httpd process allocates memory for a PHP interpreter), meanwhile a solution like mpm-worker|event + mod_proxy_fcgi + php-fpm works way better. My suggestion would be to narrow down what module is really causing your memory to saturate before tuning the mpm. Luca 2017-09-06 1:33 GMT+02:00 Tony DiLoreto <tony@xxxxxxxxxxxxxxxxxxxxxxxx <mailto:tony@xxxxxxxxxxxxxxxxxxxxxxxx>>: Hi Luca, Basically my server runs out of free memory and freezes. On AWS I have to stop/start it again to be able to SSH in. What I'd really like is a MAX_PERCENTAGE_AVAILABLE_MEMORY directive that limits Apache to <= some % of free memory. That way it can never halt my system. Hope this helps. On Tue, Sep 5, 2017 at 1:16 PM Luca Toscano <toscano.luca@xxxxxxxxx <mailto:toscano.luca@xxxxxxxxx>> wrote: Hi Tony, 2017-08-31 23:43 GMT+02:00 Tony DiLoreto <tony@xxxxxxxxxxxxxxxxxxxxxxxx <mailto:tony@xxxxxxxxxxxxxxxxxxxxxxxx>>: Hi All, I've been scouring the internet for best practices or heuristics for specifying parameter values of the MPM directives. My server seems to lock up regardless of the values I enter. Are there "rules of thumb" for each MPM type (prefork, worker, event)? Can you tell us what do you mean with "lock up"? Luca -- Tony DiLoreto President & CEO Migliore Technologies Inc 716.997.2396 tony@xxxxxxxxxxxxxxxxxxxxxxxx <mailto:tony@xxxxxxxxxxxxxxxxxxxxxxxx> miglioretechnologies.com <http://miglioretechnologies.com/> /*The best in the business...period!*/ -- Tony DiLoreto President & CEO Migliore Technologies Inc 716.997.2396 tony@xxxxxxxxxxxxxxxxxxxxxxxx <mailto:tony@xxxxxxxxxxxxxxxxxxxxxxxx> miglioretechnologies.com <http://miglioretechnologies.com/> /*The best in the business...period!*/ -- Tony DiLoreto President & CEO Migliore Technologies Inc 716.997.2396 tony@xxxxxxxxxxxxxxxxxxxxxxxx <mailto:tony@xxxxxxxxxxxxxxxxxxxxxxxx> miglioretechnologies.com <http://miglioretechnologies.com/> /*The best in the business...period!*/
Tony,Using worker and mod_php is a bad idea, unless you recompiled php to be thread-safe.
Using mod_php without that would result in segfaults with threaded mpm modules like event and worker.
Either way, I would strongly advise you to avoid using mod_php, unless you know exactly what you're doing.
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx