我正在使用一些代码使用curl异步发送超过160个GET请求\n到我的API,该API在Ubuntu服务器16.04上运行带有Php-fpm的Nginx。每个请求都会从数据库中获取不同的数据选择,然后将其作为 JSON 响应返回。\n这个请求数量足够小,我相信它不应达到任何各种默认限制\n(套接字连接数、文件描述符数) ETC)。然而,它们都是同时发送/接收的事实似乎引起了问题。
\n\n绝大多数请求都会成功,但有几个请求(在连续测试中数量始终相同,但根据配置而变化)将得到“502 Bad Gateway”响应。
\n\n如果我查看 nginx 错误日志 ( /var/log/nginx/error.log
),我会看到以下错误消息:
2017/11/21 09:46:43 [error] 29#29: *144 connect() to unix:/run/php/php7.0-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 192.168.3.7, server: , request: "GET /1.0/xxx HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "my.domain.org"\n
Run Code Online (Sandbox Code Playgroud)\n\n日志中“502 Bad Gateway”错误消息的数量始终与我从 API 收到的消息数量完全相同。
\n\n同时,在执行测试期间查看 fpm 日志文件(使用tail -100f /var/log/php7.0-fpm.log
)时,没有任何反应。它只有以下内容:
[21-Nov-2017 11:54:29] NOTICE: fpm is running, pid …
Run Code Online (Sandbox Code Playgroud) 在query_cache_size
一个通常会希望能像那种环境看起来这使我迷惑不解,因为它默认为0
。然后我从 MySQL 文档中阅读了有关query_cache_wlock_invalidate
设置的以下内容
通常,当一个客户端在 MyISAM 表上获取 WRITE 锁时,如果查询缓存中存在查询结果,则不会阻止其他客户端发出从表中读取的语句。将此变量设置为 1 会导致获取表的 WRITE 锁,从而使查询缓存中引用该表的任何查询无效。这会强制尝试访问该表的其他客户端在锁定生效时等待。
它没有提及 InnoDB 引擎。当 Innodb 对行/表有写锁时,此设置是否也阻止从缓存读取?
我一直在寻找在 KVM 来宾之间划分 CPU 的方法,而不仅仅是设置 vCPU 访问限制。我理解 cpu_shares 的概念,它可以用 设置/显示virsh schedinfo
,但我也发现vcpu_period
并vcpu_quota
列出了这个命令,如下所示:
查看手册页,我知道可接受的输入值是什么,但是有人可以简单解释一下这两个参数的实际作用吗?
我被创建LVM RAID 10分布在4个物理卷(各3TB)当我得到了以下错误消息:
WARNING: New raid10 won't be synchronised. Don't read what you didn't write!
我的谷歌搜索没有想出这意味着什么。这是否意味着raid的镜像将不起作用,如果单个驱动器发生故障,所有数据都会丢失?