Edit report at https://bugs.php.net/bug.php?id=58982&edit=1
ID: 58982
Comment by: xantek dot imc at gmail dot com
Reported by: hanno at hboeck dot de
Summary: apc produces tons of warnings "Unable to allocate
memory for pool."
Status: Feedback
Type: Bug
Package: APC
Operating System: Linux
PHP Version: 5.2.11
Block user comment: N
Private report: N
New Comment:
Had this issue with:
APC Version 3.1.9
PHP Version 5.2.17
I found viewing apc.php helpful to visualize config and cache information. It
seems this issue is related to configuration and not a software bug. I tweaked
the following setting based on details found in this thread,
http://www.php.net/manual/en/apc.configuration.php, and usage details in
apc.php.
apc.mmap_file_mask=/dev/zero
apc.shm_size=64M
apc.ttl=0
Previous Comments:
------------------------------------------------------------------------
[2011-08-06 20:05:44] [email protected]
Another reason for that error is if apc_bin_* functions are used in apache.
Ideally, they're only good for command line apps - because the apc_bin_load()
allocations qualify as memory leaks in shared memory, because the entire cache
entry set is tied to a single allocation - so even an apc cache clear won't
free up memory.
That's the only scenario where we probably would spam the log with such
warnings consistently - any other scenario will only log it till the cache
clears.
------------------------------------------------------------------------
[2011-08-05 16:59:29] [email protected]
@ondrej Why are you running both eAccelerator and APC? That's
not going to work.
------------------------------------------------------------------------
[2011-08-05 10:30:49] ondrej dot hlavacek at keboola dot com
PHP 5.3.6 (cli) (built: Mar 19 2011 07:44:03)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend
Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010
eAccelerator, by eAccelerator
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick
Rethans
APC 3.1.9
apc.enabled=1
apc.shm_segments=1
apc.shm_size=64M
apc.num_files_hint=1024
apc.user_entries_hint=4096
apc.ttl=7200
apc.use_request_time=1
apc.user_ttl=7200
apc.gc_ttl=3600
apc.cache_by_default=1
apc.filters
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.file_update_protection=2
apc.enable_cli=0
apc.max_file_size=1M
apc.stat=1
apc.stat_ctime=0
apc.canonicalize=0
apc.write_lock=1
apc.report_autofilter=0
apc.rfc1867=1
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600
apc.include_once_override=0
apc.lazy_classes=00
apc.lazy_functions=0
apc.coredump_unmap=0
apc.file_md5=0
apc.preload_path
Kernel 2.6.21.7-2.fc8xen
Server with 5 virtualhosts and max 2 users per virtualhost
at once, happens around half an hour after apache reload.
------------------------------------------------------------------------
[2011-07-26 06:59:25] pear dot neufeind at speedpartner dot de
We seem to have run into the same problem on one server. Running php 5.3.4 with
apc 3.1.9. Unfortunately it only seems to occur after quite some time running
with a cache (maybe a day or more) so I don't have an easy testcase to
reproduce it directly after apache-restarts.
------------------------------------------------------------------------
[2011-07-19 18:07:44] ceo at l-i-e dot com
Might as well add another data point:
PHP 5.3.6 (cli) (built: Mar 18 2011 14:54:34)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
[richard.lynch@lmsdev01 ~]$ php -i | grep -i apc
Additional .ini files parsed => /etc/php.d/apc.ini,
apc
APC Support => enabled
APC Debugging => Disabled
MMAP File Mask => /tmp/apc.S1YF0a
apc.cache_by_default => On => On
apc.canonicalize => On => On
apc.coredump_unmap => Off => Off
apc.enable_cli => On => On
apc.enabled => On => On
apc.file_md5 => Off => Off
apc.file_update_protection => 2 => 2
apc.filters => no value => no value
apc.gc_ttl => 3600 => 3600
apc.include_once_override => Off => Off
apc.lazy_classes => Off => Off
apc.lazy_functions => Off => Off
apc.max_file_size => 1M => 1M
apc.mmap_file_mask => /tmp/apc.S1YF0a => /tmp/apc.S1YF0a
apc.num_files_hint => 1024 => 1024
apc.preload_path => no value => no value
apc.report_autofilter => Off => Off
apc.rfc1867 => Off => Off
apc.rfc1867_freq => 0 => 0
apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS
apc.rfc1867_prefix => upload_ => upload_
apc.rfc1867_ttl => 3600 => 3600
apc.shm_segments => 1 => 1
apc.shm_size => 32M => 32M
apc.slam_defense => On => On
apc.stat => On => On
apc.stat_ctime => Off => Off
apc.ttl => 7200 => 7200
apc.use_request_time => On => On
apc.user_entries_hint => 4096 => 4096
apc.user_ttl => 7200 => 7200
apc.write_lock => On => On
I can't install debug versions on this box, as it's puppet controlled by Ops.
I'll try to repo on a Desktop if they ever give me a RHEL entitlement I've been
awaiting for a month...
Also, my app is Moodle, just in case that's relevant somehow.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=58982
--
Edit this bug report at https://bugs.php.net/bug.php?id=58982&edit=1