标签: alternative-php-cache

每天写入 5.5GB 到 1.2GB 根卷 - 是以前水平的 4 倍

问题: 我最近改造了我的一台服务器,它在使用前进行了测试,并且运行良好,但是,几天前,我注意到对根卷的写入量大约是通常的 4 倍。这不是性能问题 - 服务器运行良好。

我的改造相当广泛(完全重建),所以就原因而言,我没有太多事情要做。简而言之,我的变化包括:

  • 升级 Amazon 的 Linux(从 2011.02 到 2011.09) - 这也导致根卷从 ext3 更改为 ext4
  • 从 php-fcgi 迁移到 php-fpm(目前使用 tcp)
  • 从反向代理(nginx -> apache)设置移动到仅 nginx
  • 用纯 ftpd 替换 vsftpd
  • 用 opendkim 替换 dkim-proxy
  • 用 ispconfig 替换 webmin
  • 添加清漆作为动态文件的缓存层(对于这些网站获得的点击量来说太过分了,但这是一个实验)
  • 添加交换分区

基本设置:

  • 我的交换空间安装自己的EBS卷上-在写入到交换卷忽略不计-我已经基本上打折以此为原因(有充足的可用内存-无一不freeiostat显示最小的交换使用)。
  • 我的数据(mysql 数据库、用户文件(网站)、所有日志(来自 /var/log)、邮件和清漆文件在他们自己的 EBS 卷上(使用mount --bind)。底层 EBS 卷安装在/mnt/data
  • 我剩下的文件——操作系统和核心服务器应用程序(例如 nginx、postfix、dovecot 等)——是根卷上唯一的东西——总共 1.2GB。

新设置比旧系统运行“更流畅”(更快、更少内存等),并且已经稳定了 20 天(10 月中旬)——据我所知,提升的写入一直存在.

与我的预期相反,我的读取量很低(我的读取量约占写入量的 1.5%,无论是在我的根卷上的块还是字节数)。在过去的几天里,我没有对根卷(例如新安装等)进行任何更改,但写入量仍然比预期高得多。

目标:确定对根卷的写入增加的原因(本质上,确定它是一个进程(以及哪个进程)、不同的(ext4)文件系统或其他问题(例如内存))。

系统信息:

  • 平台:亚马逊的EC2(t1.micro)
  • O/S:Amazon's Linux 2011.09(CentOS/RHEL衍生)
  • Linux 内核:2.6.35.14-97.44.amzn1.i686
  • 架构:32位/i686
  • 磁盘:3 …

ext4 io amazon-ebs alternative-php-cache

9
推荐指数
1
解决办法
1391
查看次数

Apc、xcache 还是 eAccelerator?我应该为 Wordpress 使用什么?

我正在尝试为 Wordpress 站点配置服务器。我应该使用什么来缓存操作码?APC、xcache 还是 eAccelerator?

php xcache alternative-php-cache

8
推荐指数
1
解决办法
6430
查看次数

我可以进一步优化这些 APC 设置吗?

我想进一步优化 APC,但我不确定在哪里可以做些什么。首先是使用当前配置运行一周后的屏幕截图: APC仪表盘

我现在有以下几点我不确定:

  1. 我是否正确地看到碎片发生是因为缓存也用作用户缓存?
  2. 当我总共分配了 192MB 时,为什么碎片栏告诉我只有 5.8MB 的 100%?
  3. 这只是“内存使用”下的圆圈没有完全关闭的渲染问题吗?因为下面的 MB 值确实加起来了。(也就是说,这个圆圈在重启后看起来不错,当缓存越来越碎片化时它会变成这样。)
  4. 由于命中率非常好,我不确定碎片是否是一个大问题。你觉得我还能优化吗?

我最感兴趣的是回答这些问题。只有这样我才能更好地理解APC并自己做出调整。

一些详细信息:在此服务器上运行 Drupal 和 Magento。Drupal 也将其用作用户缓存。

我现在的问题是如何优化它。我可以分配更多的内存,但我不确定这是否真的有很大帮助。

更新:这是配置:

; The size of each shared memory segment in MB.
apc.shm_size = 192M

; Prevent files larger than this value from getting cached. Defaults to 1M. 
apc.max_file_size = 2M

; The number of seconds a cache entry is allowed to idle in a slot in case
; this cache entry slot is needed by another entry.
apc.ttl = …
Run Code Online (Sandbox Code Playgroud)

php optimization alternative-php-cache

6
推荐指数
1
解决办法
4647
查看次数

PHP/APC 致命错误,apc_mmap: mmap failed

我看到一些间歇性 CPU 使用率飙升至 100%,这与这些日志条目有关:

[27-Feb-2012 13:29:29] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
[27-Feb-2012 13:29:30] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
[27-Feb-2012 13:29:31] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
[27-Feb-2012 13:29:31] PHP Fatal error:  PHP Startup: apc_mmap: mmap failed: in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

phpinfo() 表示 APC 已设置,据我所知,此错误不会在实时站点上导致可见的 500 个错误,这是一个 WordPress 安装,每月观看次数约为 60 万次。到目前为止,谷歌一直没有帮助,我希望这里有人对导致这种情况的原因以及如何解决它有一些见解。奇怪的是,这个错误只显示在 /usr/local/apache2/logs/error_log 而不是 cpanel 配置站点的 error_log。

php apache-2.2 alternative-php-cache

6
推荐指数
1
解决办法
1万
查看次数

使用 php-5.5.1 在 apache2 VPS 中安装 APC 时出错

当我安装 APC 时:

pecl install apc
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 apache2-prefork-dev : Depends: apache2.2-common (= 2.2.22-1ubuntu1.4) but it …
Run Code Online (Sandbox Code Playgroud)

php5 apache-2.2 alternative-php-cache

6
推荐指数
1
解决办法
1万
查看次数

PHP APC Accelerator 在 Windows 上完全打破了 Apache2?

我的本地开发配置:

  • Apache Lounge下载的Apache 2.2.21 VC9 (如PHP For Windows网站所建议。手动安装即服务。
  • PHP 5.3.8 VC9 x86线程安全,从 zip 文件手动安装。
  • PHP APC 20110109-5.3-vc9-x86这里下载,然后我添加extension=php_apc.dll到我的php.in.
  • Xdebug PHP 5.3 VC9 TS(32 位),如果相关

结果:有时页面挂起,我必须从服务面板手动重新启动 Apache。任何人都经历过这个吗?我的配置有问题吗?即使使用简单的phpinfo页面也会发生这种情况:

<?php phpinfo() ?>
Run Code Online (Sandbox Code Playgroud)

windows php apache-2.2 alternative-php-cache

5
推荐指数
1
解决办法
1555
查看次数

为什么这个 APC 安装失败如此严重?

我的服务器上运行了多个具有相似配置的 APC 实例(尽管具有不同的缓存大小。但是,其中一个实例的性能非常差,我不知道为什么(100% 缓存碎片,高未命中率)。

在此处输入图片说明

我使用的运行时设置如下(几乎是开箱即用的):

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           1M
apc.mmap_file_mask  
apc.num_files_hint          1000
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.shm_segments            1
apc.shm_size                10M
apc.slam_defense            1
apc.stat                    1
apc.stat_ctime              0
apc.ttl                     0
apc.use_request_time        1
apc.user_entries_hint       4096
apc.user_ttl                0
apc.write_lock              1
Run Code Online (Sandbox Code Playgroud)

APC是3.1.6版本,PHP是5.3.3-1ubuntu9.5。我试过多次重启 Apache,所以这不是一个怪异的例子。

有问题的实例只是在安装了一些插件的情况下运行 Wordpress。服务器上的所有其他实例 (~4) 都运行得非常好,命中率几乎为 100%,碎片率为 0%;例如,这个实例持有一个使用 …

alternative-php-cache

5
推荐指数
1
解决办法
259
查看次数

从 php53u 到 php54 的优雅升级

我们正在使用 iuscommunity repo 运行 CentOS 6 节点,并且想要将之前安装的 php53u 升级到 php54。

但是,这会在 php53u 和 php54 之间引入依赖冲突。有没有人对这个问题有想法?

--> Running transaction check
---> Package php54-fpm.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php-common = 5.4.5-1.ius.el6 for package: php54-fpm-5.4.5-1.ius.el6.i686
---> Package php54-gd.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-mbstring.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-pecl-apc.i686 0:3.1.11-2.ius.el6 will be installed
--> Processing Dependency: php54 >= 5.3.5-1 for package: php54-pecl-apc-3.1.11-2.ius.el6.i686
--> Running transaction check
---> Package php54.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php54-cli …
Run Code Online (Sandbox Code Playgroud)

php centos php-fpm alternative-php-cache

5
推荐指数
1
解决办法
3459
查看次数

Apache + Php-FPM + APC:mode_deflate 不压缩 HTML 输出

我准备了一个服务器来运行一个 Magento 实例:Apache + Php-FPM + APC

我遇到的问题是 Apache 没有压缩 Magento PHP 脚本的 HTML 输出。

在我的 .htaccess 我有:

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml
AddOutputFilterByType DEFLATE application/javascript application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下方法压缩所有内容:

SetOutputFilter DEFLATE
Run Code Online (Sandbox Code Playgroud)

但我没有运气。

Zlib 压缩被禁用:

php_flag zlib.output_compression on
Run Code Online (Sandbox Code Playgroud)

我的猜测是这与 Php-FPM 或 APC 有关系,但我不确定问题是什么。

为未压缩页面返回的 MIME 类型是:

Content-Type: text/html; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新:问题似乎与 PHP 处理的任何内容有关,如果我将 html 输出复制到 .html 文件然后获取它,它将被压缩,如果我将同一文件重命名为 .php 并将其获取输出不会被压缩。以下是标题:

[[响应标题 HTML 文件]]

Date Fri, 29 Aug 2014 20:03:13 GMT
Content-Encoding gzip …
Run Code Online (Sandbox Code Playgroud)

php-fpm mod-deflate apache-2.2 alternative-php-cache

5
推荐指数
0
解决办法
1416
查看次数

缓存 PHP 页面、Varnish、nginx、其他?

我有一个运行在低端机器(1GB RAM)上的 Web 应用程序,提供静态和动态 (php) 页面的混合。这些 PHP 页面正在查询一个根本不经常更改的 MYSQL 数据库 - 每周一次?

我希望进行大量缓存以保持一切正常和快速。我的页面虽然是 php,但信息很少更改(获取可能每隔几个月更改一次的项目列表?)。几页可能会列出多达 400 条记录。

我安装了 Varnish、nginx、PHP-FPM、APC、MYSQL。我“认为”我已经正确设置了一切。正在提供页面,并且我在 Varnish 中显示了点击数... Brill!但是,由于网站的性质,我不确定它是否已尽可能优化。

最近的搜索提出了一些可能对我的 php 页面有所帮助的内容:

  • nginx FastCGI缓存
  • 内存缓存
  • MYSQL 查询缓存

一个例子:一个新的 PHP 页面,它列出了相当多(200+)条记录:2 秒刷新后,1.5(ish)秒。编辑:我期望这个页面被缓存在某处并且在访问后更快地提供是不切实际的吗?

我最好的选择是什么?以上一项或全部?

mysql nginx varnish php-fpm alternative-php-cache

3
推荐指数
1
解决办法
1728
查看次数