APC (PHP Cache) Время безотказной работы 0 минут, без кэширования - PullRequest
4 голосов
/ 26 июля 2011

Моя цель - внедрить APC для кэширования кода операции для рабочего сайта drupal 6.До сих пор я тестировал APC с несколькими файлами php с включением и без включения других файлов php с помощью include_once.

Также пытался настроить значения apc.ini для shm_size, apc.include_once_override и apc.stat.Каждый раз перезапускал apache.

В результате apc.php не показывает никаких изменений в любых значениях.(за исключением, конечно, измененные значения apc.ini отображаются так, как они должны)

Каждый раз, когда я обновляю тестовую страницу apc.php, время запуска сбрасывается как текущее время, показывающее время безотказной работы 0 минут.

apc.php -testpage показывает:

General Cache InformationAPC Version    3.1.9
PHP Version 5.2.10
APC Host    xxxx.xx.xx
Server Software Apache/2.2.3 (CentOS)
Shared Memory   1 Segment(s) with 128.0 MBytes
(mmap memory, pthread mutex Locks locking)
Start Time  2011/07/26 11:53:56
Uptime  0 minutes
File Upload Support 1


Cached Files    0 ( 0.0 Bytes)
Hits    1
Misses  1
Request Rate (hits, misses) 2.00 cache requests/second
Hit Rate    1.00 cache requests/second
Miss Rate   1.00 cache requests/second
Insert Rate 0.00 cache requests/second
Cache full count    0

Cached Variables    0 ( 0.0 Bytes)
Hits    0
Misses  0
Request Rate (hits, misses) 0.00 cache requests/second
Hit Rate    0.00 cache requests/second
Miss Rate   0.00 cache requests/second
Insert Rate 0.00 cache requests/second
Cache full count    0


apc.cache_by_default    1
apc.canonicalize    1
apc.coredump_unmap  0
apc.enable_cli  0
apc.enabled 1
apc.file_md5    0
apc.file_update_protection  2
apc.filters 
apc.gc_ttl  3600
apc.include_once_override   0
apc.lazy_classes    0
apc.lazy_functions  0
apc.max_file_size   16
apc.mmap_file_mask  /tmp/apcphp5.095eRm
apc.num_files_hint  1024
apc.preload_path    
apc.report_autofilter   0
apc.rfc1867 0
apc.rfc1867_freq    0
apc.rfc1867_name    APC_UPLOAD_PROGRESS
apc.rfc1867_prefix  upload_
apc.rfc1867_ttl 3600
apc.serializer  default
apc.shm_segments    1
apc.shm_size    128M
apc.slam_defense    0
apc.stat    0
apc.stat_ctime  0
apc.ttl 7200
apc.use_request_time    1
apc.user_entries_hint   4096
apc.user_ttl    7200
apc.write_lock  1

Host Status Diagrams:
 Free: 128.0 MBytes (100.0%)     Hits: 1 (50.0%)
 Used: 20.3 KBytes (0.0%)    Misses: 1 (50.0%)

Detailed Memory Usage and Fragmentation:
Fragmentation: 0%

phpinfo показывает:

Server API  CGI/FastCGI

APC:
Version     3.1.9
APC Debugging   Enabled
MMAP Support    Enabled
MMAP File Mask  /tmp/apcphp5.JkKDk7
Locking type    pthread mutex Locks
Serialization Support   php
Revision    $Revision: 308812 $
Build Date  Jul 21 2011 14:31:12

Я выполнил следующие действия, чтобы выяснить, могут ли настройки suexec предотвратить кэширование: http://www.litespeedtech.com/support/forum/showthread.php?t=4189

[root@host /]# ps -ef|grep lsphp
root     20402 17833  0 11:21 pts/0    00:00:00 grep lsphp

[root@host /]# ps -waux
root     17833  0.0  0.1   5004  1484 pts/0    S    10:39   0:00 bash

.. указывает на то, что на хосте не работает lsphp

, также я прочитал следующую статью и комментарии, и пришел к выводу, что в моем случае проблема не в suexec, а в пользовательском apacheявляется владельцем процесса httpd http://www.brandonturner.net/blog/2009/07/fastcgi_with_php_opcode_cache/

также команда suexec не распознается при входе в систему и запускается как root @ host

, и я почти уверен, что cPanel не работает нахост, чтобы проверить, будет ли установка там сбрасывать запущенный процесс кэширования через некоторый интервал

Это оставляет мне несколько подсказок, куда идти дальше.Я попытался установить (с помощью chown и chgrp) apache в качестве владельца файла apc.php и некоторых тестовых файлов php, что привело к ошибке сервера 500.

Есть ли способ проверить, позволяют ли права доступа к файлам предотвращать работу apc?Я чрезвычайно благодарен за любые предложения или помощь.

1 Ответ

0 голосов
/ 19 сентября 2012

Можете ли вы дать свои настройки php.ini для APC?

Вы должны перезапустить httpd, чтобы учесть изменение настроек.

Попробуйте изменить максимальный размер файла

apc.max_file_size = 20M

Вы набираете 128 МБ ОЗУ, это достаточно мало для больших php-приложений, как у нас сегодня (один WordPress использует 32M)

apc.shm_size    128M

увеличить его также

...