希望你们能提供一些关于我看到的问题的信息。
我正在运行带有 mod_fcgi 和 APC 缓存的 Centos 服务器。APC 缓存正在运行,但是在刷新 apc.php 时,我看到了不同的缓存。它们的正常运行时间和缓存大小不同。它们都显示出不错的命中率(超过 90%)和低碎片化。
这种行为正常吗?我应该担心吗?
希望你们能提供一些关于我看到的问题的信息。
我正在运行带有 mod_fcgi 和 APC 缓存的 Centos 服务器。APC 缓存正在运行,但是在刷新 apc.php 时,我看到了不同的缓存。它们的正常运行时间和缓存大小不同。它们都显示出不错的命中率(超过 90%)和低碎片化。
这种行为正常吗?我应该担心吗?
APC.PHP 告诉我:
Uptime 2 days, 15 hours and 13 minutes
File Upload Support 1
File Cache Information
Cached Files 375 ( 53.5 MBytes)
Hits 377684
Misses 376
Request Rate (hits, misses) 1.66 cache requests/second
Hit Rate 1.66 cache requests/second
Miss Rate 0.00 cache requests/second
Insert Rate 0.00 cache requests/second
Cache full count 0
User Cache Information
Cached Variables 573 ( 2.3 MBytes)
Hits 77569
Misses 889
Request Rate (hits, misses) 0.34 cache requests/second
Hit Rate 0.34 cache requests/second
Miss Rate 0.00 cache requests/second
Insert Rate 0.06 cache requests/second
Cache full count 0
"Fragmentation: 100.00% ( 8.0 MBytes out of 8.0 MBytes in 95 fragments)"
变量:
apc.shm_segments 1
apc.shm_size 64M
apc.slam_defense 0
apc.stat 1
apc.stat_ctime 0
apc.ttl 3600
apc.user_ttl 3600
apc.max_file_size 1M
apc.gc_ttl 3600
环境:
Amazon EC2 微型实例,运行一个非常小的 wordpress 站点,访问者很少,大约有 8 个插件。
问题:
1) 碎片化为 100% 是否重要?它会以任何方式影响性能吗?
2)为什么碎片化不下去?
我认为当您将 ttl 设置为 > 0 时应该会自动释放空间
3) 为什么尽管 24 小时内处于 100% 碎片状态,但缓存完整计数却没有增加?
4) 我正在使用 APC 3.1.7 版是否值得升级到最新版本?(由于依赖关系,使用最新版本似乎更复杂,所以我宁愿尽可能避免)
apc 缓存是否计入 php 内存使用量?我正在使用 php-fpm 但我不确定这是否相关。如果 apc 内存设置为 256MB,而单个 worker 的 php 内存限制也是 256MB,这是否意味着 apc 可以占用 php 进程的所有内存?
我正在运行一个带有 WordPress CMS 的网站。我试图安装 W3 Total Cache 来加速站点文件,但我不知道该选择哪个操作码(我在 VPS 上),所以我在我的主机上放了一张支持票。主人回来告诉我以下内容:
APC 在您的 VPS 上不可用。您的 VPS 正在运行带有 SuPHP 的 PHP,因此 APC 无法使用它。
> ====================================================
> -bash-3.1# hostname server.xxxxx.com
> -bash-3.1# /usr/local/cpanel/bin/rebuild_phpconf --current Available handlers: suphp dso cgi none DEFAULT PHP: 5 PHP4 SAPI: none PHP5 SAPI:
> suphp SUEXEC: enabled RUID2: not installed
> bash-3.1#
> ====================================================
suPHP 是必须的,因为它在服务器上提供了额外的保护层。它会导致 php 脚本在帐户用户名下运行,而不是用户 'nobody',这是 apache/php 在未运行 suPHP 的服务器上运行的用户。此功能使我们能够更轻松地跟踪通过用户运行的不安全 php 脚本进入的任何潜在安全漏洞。
如果您仍然需要 APC,那么我们将需要在您的 VPS 上重新编译没有 suphp 的 PHP。请注意,某些网站脚本可能无法在没有 suphp 的情况下使用 PHP。
我还在使用 vBulletin 处理的站点上运行一个论坛。我需要 suPHP 吗?速度与缓存的权衡是否值得删除它?我不是系统管理员,但我读到在共享服务器上最推荐使用 suphp。
我有很多这样的:
[NOTICE] child 19214 stopped for tracing
[NOTICE] about to trace 19214
[ERROR] ptrace(PEEKDATA) failed: Input/output error (5)
[NOTICE] finished trace of 19214
[WARNING] [pool www] child 19208, script 'blahblah.php' executing too slow (30.041419 sec), logging
[NOTICE] child 19208 stopped for tracing
[NOTICE] about to trace 19208
[ERROR] ptrace(PEEKDATA) failed: Input/output error (5)
[NOTICE] finished trace of 19208
[WARNING] [pool www] child 19218, script 'blahblah.php' executing too slow (30.035029 sec), logging
当 php 达到 max children 时(至少我认为是这种情况)它停止“工作”......现在我知道我可以增加 max_children (当前设置为 9)但是有一种方法可以阻止 php “死亡”?
我使用的是具有 1 个内核和 512 MB 内存的 VPS (PHP5-FPM 5.4.4 + APC 3.1.10)。
禁用慢速日志后,我现在得到:
WARNING: [pool www] child 1684 exited on signal 15 (SIGTERM) after 77.802376 seconds from start
NOTICE: [pool www] child 1694 started
WARNING: [pool www] child 1377, script 'blahblah.php' (request: "GET /blahblah.php") execution timed out (38.291440 sec), terminating
WARNING: [pool www] child 1377 exited on signal 15 (SIGTERM) after 2750.295279 seconds from start
NOTICE: [pool www] child 1696 started
WARNING: [pool www] child 1722, script 'blahblah.php' (request: "POST /blahblah.php") execution timed out (39.653910 sec), terminating
WARNING: [pool www] child 1722 exited on signal 15 (SIGTERM) after 793.953090 seconds from start
我认为这些脚本这么慢是不正常的。你建议玩max_execution_time?
我在apc.ini中临时设置了apc.enable_cli=1,然后运行php -r "apc_clear_cache();" 在终端中清除 APC 缓存,但这就是我得到的:
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/php5/lib/php/extensions/no-debug-non-zts-20100525/mcrypt.so' - /opt/php5/lib/php/extensions/no-debug-non-zts-20100525/mcrypt.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/php5/lib/php/extensions/no-debug-non-zts-20100525/mysql.so' - /opt/php5/lib/php/extensions/no-debug-non-zts-20100525/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/php5/lib/php/extensions/no-debug-non-zts-20100525/mysqli.so' - /opt/php5/lib/php/extensions/no-debug-non-zts-20100525/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/php5/lib/php/extensions/no-debug-non-zts-20100525/pdo.so' - /opt/php5/lib/php/extensions/no-debug-non-zts-20100525/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/php5/lib/php/extensions/no-debug-non-zts-20100525/pdo_mysql.so' - /opt/php5/lib/php/extensions/no-debug-non-zts-20100525/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
我在 Ubuntu Server 12.04 (VPS) 上运行 PHP-FPM 5.4.3、Nginx 1.3.1 和 APC 3.1.10。你知道这些错误是什么意思吗?
当我关闭apc.stat
它时,它会导致 500 内部服务器错误。我检查了 apache error_log
,它是关于:
[Tue Jun 26 10:02:59 2012] [error] [client 127.0.0.1] PHP Warning: require(): Filename cannot be empty in /var/www/site1/public/index.php on line 17
[Tue Jun 26 10:02:59 2012] [error] [client 127.0.0.1] PHP Fatal error: require(): Failed opening required '' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/site1/public/index.php on line 17
我检查了那一行,这是它包含的内容:
require('./wp-blog-header.php');
我看不出有什么问题。这是我当前的 APC 配置:
APC 版本:3.1.10 PHP 版本:5.4.4
禁用时如何解决此错误apc.stat
?
我在我的 Slicehost Web 服务器上运行了 Ubuntu 11.04,我正在尝试安装 php-apc?
但是,当尝试安装时
apt-get install php-apc
我得到:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package php-apc
知道我如何安装它吗?
我正在运行 10.10 版本。
我将 APC 安装为
sudo apt-get install php-apc
它安装了 APC (3.1.3p1)。现在最新的是 3.1.10。
我怎样才能更新到最新的?
谢谢。
我正在尝试使用 PHP 5.2.17 在 CentOS 5.8 上安装 APC。我运行了不需要的依赖项,然后
pecl install apc
经过一大堆东西,得到:
Build process completed successfully
Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/apc.so'
Installing '/usr/local/include/php/ext/apc/apc_serializer.h'
install ok: channel://pecl.php.net/APC-3.1.9
Extension apc enabled in php.ini
但是,我重新启动了 apache,但是 APC 没有出现在 phpinfo 中
并且没有向 php.ini 添加 apc 扩展名
我可以简单地添加 extension=apc.so
到 php.ini 吗?如果是这样,文件本身在哪里?