- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
经过数天的调试和设置调整,我已经精疲力尽,无法找到解决方案。请指导。
我在DigitalOcean上具有以下服务器:
64GB Memory
8 Core processor
200GB SSD drive
mysql
或
php5-fpm
被杀死而导致站点关闭。如果我调整
php-fpm
和
nginx
,则会收到
502
和
503
错误。或者我收到
upstream timed out (110: Connection timed out)'
或
FastCGI sent in stderr: PHP message: PHP Fatal error: Maximum execution time of 30 seconds exceeded
错误。
/etc/php5/fpm/pool.d/www.conf
设置:
pm = dynamic
pm.max_children = 150
pm.start_servers = 40
pm.min_spare_servers = 30
pm.max_spare_servers = 50
pm.max_requests = 1000
/etc/nginx/conf.d/default.conf
location ~ \.php$ {
try_files $uri =404;
# proxy buffers - no 502 errors!
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
fastcgi_buffers 256 16k;
fastcgi_buffer_size 128k;
fastcgi_max_temp_file_size 0;
fastcgi_intercept_errors on;
fastcgi_keep_conn off;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/dev/shm/php-fpm-www.sock;
}
/etc/php5/fpm/php.ini
[apc]
apc.write_lock = 1
apc.slam_defense = 0
apc.shm_size = "1024M"
php5-fpm
进程占用大量内存。
ps --no-headers -o "rss,cmd" -C php5-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
为我提供了1100并发流量的
238M
。
/etc/nginx/nginx.conf
worker_processes 24;
worker_rlimit_nofile 20000;
events {
worker_connections 40000;
use epoll;
multi_accept on;
}
ulimit -n
仅显示
1024
。这和我的问题有关吗?
# This is a basic VCL configuration file for varnish. See the vcl(7)
# man page for details on VCL syntax and semantics.
#
# Default backend definition. Set this to point to your content
# server.
#
backend default {
.host = "127.0.0.1";
.port = "8080";
.connect_timeout = 600s;
.first_byte_timeout = 600s;
.between_bytes_timeout = 600s;
.max_connections = 800;
}
acl purge {
"localhost";
}
sub vcl_recv {
set req.grace = 6h;
# Set X-Forwarded-For header for logging in nginx
remove req.http.X-Forwarded-For;
set req.http.X-Forwarded-For = client.ip;
# Remove has_js and CloudFlare/Google Analytics __* cookies.
set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", "");
# Remove a ";" prefix, if present.
set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");
# Either the admin pages or the login
if (req.url ~ "/wp-(login|admin|cron)") {
# Don't cache, pass to backend
return (pass);
}
# Remove the wp-settings-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", "");
# Remove the wp-settings-time-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", "");
# Remove the wp test cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", "");
# Static content unique to the theme can be cached (so no user uploaded images)
# The reason I don't take the wp-content/uploads is because of cache size on bigger blogs
# that would fill up with all those files getting pushed into cache
if (req.url ~ "wp-content/themes/" && req.url ~ "\.(css|js|png|gif|jp(e)?g)") {
unset req.http.cookie;
}
# Even if no cookies are present, I don't want my "uploads" to be cached due to their potential size
if (req.url ~ "/wp-content/uploads/") {
return (pass);
}
# Check the cookies for wordpress-specific items
if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") {
# A wordpress specific cookie has been set
return (pass);
}
# allow PURGE from localhost
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return (lookup);
}
# Force lookup if the request is a no-cache request from the client
if (req.http.Cache-Control ~ "no-cache") {
return (pass);
}
# Try a cache-lookup
return (lookup);
}
sub vcl_fetch {
#set obj.grace = 5m;
set beresp.grace = 6h;
}
sub vcl_hit {
if (req.request == "PURGE") {
purge;
error 200 "Purged.";
}
}
sub vcl_miss {
if (req.request == "PURGE") {
purge;
error 200 "Purged.";
}
}
最佳答案
有了这种流量和这种配置,您就失去了很多机会(和收入):)。您真的应该动手使用Nginx微缓存和Varnish!
关于php - Nginx+php5-fpm+varnish+APC 上的 Wordpress 高 CPU 和内存使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476976/
我是 php 新手,使用的是 APC 框架。我正在尝试为使用 APC 的类编写一些单元测试,但在尝试删除然后在 APC 中再次设置一些键值时遇到了一些问题。我的问题可以归结为一小部分代码没有按我预期的
我发现 APC 上存在大量碎片 (>80%),但实际上性能似乎相当不错。我有 read another post这建议在 wordpress/w3tc 中禁用对象缓存,但我想知道减少碎片是否比首先缓存
我发现 APC 上存在大量碎片 (>80%),但实际上性能似乎相当不错。我有 read another post这建议在 wordpress/w3tc 中禁用对象缓存,但我想知道减少碎片是否比首先缓存
我刚刚安装了 APC 以在我的 Ubuntu VPS 服务器上缓存我的 PHP 代码。使用 sudo apt-get install php-apc sudo /etc/init.d/apache2
我正在尝试在 APC 中使用 apc.filter 等功能。但是我所做的一切都不起作用 我应该完成 2 项任务。 1)需要包含1个目录用于缓存。我的代码在apc.ini apc.cache by de
这两个例子之间有什么区别吗: 1 个共享内存段 @ 256MB 4 个共享内存段 @ 64MB 多个分段是否使 APC 更容易清理陈旧的条目? 最佳答案 默认情况下,一些系统(包括大多数 BSD 变体
只是好奇。手册中未记录 here . 也许熟悉APC源代码的人可以解释一下? 最佳答案 它指定一个目录,APC 在启动时从该目录加载缓存数据。在大型设置(想想 100 多台服务器)中,这将允许您放弃编
当您尝试将变量添加到 APC 而 APC 缓存已满时会发生什么?它会自动从缓存中删除最少使用的变量吗? 最佳答案 根据 APC: Runtime Configuration , "在缓存用完可用内存的
互联网上有很多讨论认为在 CLI 中调用 apc_cache_clear() 不会从“web”PHP 进程中清除操作码缓存,无论它们是在 Apache 中运行还是由 FPM 运行(参见 How to
由于我使用 PECL 安装了 APC for PHP,因此有时会出现以下错误:Cannot redeclare class xxx xxx 不时更改。我可以禁用 APC,但 APC 可以极大地提高性能
我正在使用 PHP 的 APC 来存储大量信息(使用 apc_fetch() 等)。这些信息有时需要分析并转储到别处。 据说,我每秒获得数百次点击。这些命中增加了各种计数器(使用 apc_inc()
我最近在我的生产服务器上安装了 APC,但它没有按预期工作。 我所有的项目都是用 SVN 处理的,在生产版本中,我有一个提交后 Hook ,可以将 svn 导出到正确的目录。 问题是使用 APC,除非
关于 APC 操作码缓存,什么是“命中与未命中”?我已经安装了 APC 并且它运行良好,但我有“一些”失误,我想知道这是否“不好”。此外,我正在运行 Openx,因此,我很快就会填满“缓存完整计数”。
在共享 GoDaddy 主机中,未安装 PHP APC。如果 APC 未安装在服务器中,是否有替代方案。那里是否有任何手动过程,例如编译 php 等。请建议 APC 的任何替代方案以提高性能。 仅供引
这是我的 PHP.ini 中的内容: extension=php_apc.dll ... [APC] apc.enabled = 1 我在 Windows Server 2003 上运行 Apa
我已经在Nginx,PHP-FPM,Varnish和APC设置上运行了Magento。 APC的碎片和吹扫率都很高。 碎裂在2小时内增加> 50%,然后缓慢上升到100%。 更令人不安的事实是,穆宁(
我的 VPS 开始出现问题,无法为所有网站上的页面提供服务。它只是显示一个空白页面,或者提供下载 php 文件(幸运的是代码不在下载文件中 :))。服务器仍在运行,但这似乎是 PHP 的问题,因为我可
我想使用 apc_store() 来缓存一些结果。 但我需要知道数据将存储在哪里,限制是多少。 它总是存储在内存中吗?或者也写入磁盘?我更希望将不经常访问的数据存储在磁盘上。我应该为此使用不同的缓存系
我最近将我的 Web 服务器切换到了 Centos 6.3,以及 apache 2.2.15、PHP 5.4.11 和 APC 3.1.14。 我开始不时收到客户的投诉,说某个页面无法正常工作,或者出
每次运行这段代码时,我都会看到 5 个输出: "; echo $after; $later = apc_fetch('vwxyz'); //OK this should definitely be f
我是一名优秀的程序员,十分优秀!