在新的开发完成之前,我正在试探性地提供一个流量很大的垃圾网站。
该服务器是一个 4GB 的云服务器,具有 2 个 CPU 内核,运行 NGINX、PHP-FPM、APC、Memcached 和一个云数据库服务器(Rackspace)。
该网站让您知道它有多糟糕,它给了我一个 1.2 的未缓存负载,只是在它上面快速漫游。糟糕的。每页 170 个查询,有些有 2000 条或更多记录。糟糕的。
所以,在 Joomla 上,我启用了 APC。在我们开发的过程中,迅速抢购了该网站,使其不仅适合居住。
根据 GA,现在该网站已经上线,并且始终有 30 - 60 名现场访问者。
这是奇怪的部分。无论我使用 APC 还是 Memcached,因为网站在重置 php-fpm 后一开始运行很快.. 然后运行一段时间并逐渐加载,CPU 在 1.x、2.x 和逐渐向上。即使在访问有所减弱之后也永远不会回来。
为什么会这样?我已经在互联网上搜索了 php-fpm 设置、APC 设置等的任何一致方向。它是如此的错误,所以我希望在计算和确定随着需求变化需要什么设置方面提供一些合理的建议.
以下是我的设置——此时我唯一能想到的就是每 30 分钟左右执行一次 CRON“service php-fpm restart”。
[APC]
apc.stat = 1
apc.max_file_size = 2M
apc.localcache = 1
apc.localcache.size = 128M
apc.shm_segments = 1
apc.ttl = 3600
apc.user_ttl = 600
apc.gc_ttl = 3600
apc.cache_by_default = 1
apc.filters =
apc.write_lock = 1
apc.num_files_hint = 7000
apc.user_entries_hint = 5000
apc.shm_size = 64M
apc.mmap_file_mask = /tmp/apc.XXXXXX
apc.include_once_override = 0
apc.file_update_protection = 2
apc.canonicalize = 1
apc.report_autofilter = 0
apc.stat_ctime = 0
apc.stat = 0
(这也最终导致碎片化 - 如果有人需要更多信息,我可以使用 apc.php)
pm = dynamic
pm.max_children = 80
pm.start_servers = 32
pm.min_spare_servers = 16
pm.max_spare_servers = 56
pm.max_requests = 1000
(我玩过这些......似乎从来没有太大的区别,但我认为我也没有找到任何合理的建议)
任何帮助或指示将不胜感激:-/