小编Cha*_* E.的帖子

通过mysql.sock在重负载下的PHP/MYSQL连接失败

在问这个之前我已经做了很多阅读,所以让我先说我没有用完连接,内存或cpu,而且据我所知,我也没有用完文件描述符.

当MySQL负载很重时,这就是PHP抛出的东西:

无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(11"资源暂时不可用")

这种情况在负载下随机发生 - 但我推的越多,php就越频繁地向我抛出.在发生这种情况时,我总是可以通过控制台本地连接,从PHP到127.0.0.1,而不是使用更快的unix套接字的"localhost".

这里有一些系统变量来清除常见的问题:

cat /proc/sys/fs/file-max = 4895952
lsof | wc -l = 215778 (during "outages")
Run Code Online (Sandbox Code Playgroud)

可用连接的最高使用率:26%(261/1000)

InnoDB缓冲池/数据大小:10.0G/3.7G(足够的房间)

  • soft nofile 999999
  • hard nofile 999999

我实际上在运行MariaDB(服务器版本:10.0.17-MariaDB MariaDB Server)

这些结果是在正常负载下生成的,并且通过在非工作时间运行mysqlslap来生成,因此,慢查询不是问题 - 只是高连接.

有什么建议?如有必要,我可以报告其他设置/数据 - mysqltuner.pl说一切都很好

而且,这里显而易见的事情是通过IP连接工作得很好并且在这些中断期间很快 - 我只是无法弄清楚原因.

编辑:这是我的my.ini(从我最近的故障排除更改中看,有些值似乎有点高,请记住,MySQL日志,系统日志或dmesg中没有错误)

socket=/var/lib/mysql/mysql.sock
skip-external-locking
skip-name-resolve
table_open_cache=8092
thread_cache_size=16
back_log=3000
max_connect_errors=10000
interactive_timeout=3600
wait_timeout=600                                                                                            
max_connections=1000
max_allowed_packet=16M
tmp_table_size=64M
max_heap_table_size=64M
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=8M
join_buffer_size=1M
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_buffer_pool_size=10G

[mysql.server]
user=mysql

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open-files-limit=65535
Run Code Online (Sandbox Code Playgroud)

php mysql file-descriptor mariadb

15
推荐指数
1
解决办法
1698
查看次数

Nginx:读取上游时 readv() 失败(104:连接被对等方重置)

我已经阅读了有关此错误的所有其他线程,但没有运气。

我在 RHEL 6 上运行 Nginx 1.12.2 和 PHP-FPM 5.6

我在我网站的任何/所有页面上都收到这些错误。它与缓慢的请求无关。我亲眼目睹了这一点,我立即得到了 500 错误页面,无需任何等待。

它会影响 POST 和 GET 请求。

我没有运行任何操作码缓存(据我所知),我检查了所有配置文件、phpinfo() 以及 php -v,但没有看到任何提及操作缓存或操作码的信息。)

我已经在 PHP-FPM 中打开了 catch_workers_output 。我没有收到任何 PHP 错误

我有足够的可用内存,并且系统日志中没有关于内存、文件描述符或套接字的错误。

尝试了 pm_max_requests 的高值和低值

未运行 xdebug 插件

似乎是随机发生的,即使是在我们根本不忙的半夜。

我迫切希望解决这个已经持续了几个月的问题。

以下是以下评论中要求提供的一些信息:

Nginx fastcgi.conf(与stock文件的差异):

fastcgi_intercept_errors on;
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_buffer_size   32k;
fastcgi_buffers 8 16k;
fastcgi_max_temp_file_size 0;
fastcgi_keep_conn on;
Run Code Online (Sandbox Code Playgroud)

Nginx 配置细节:

sendfile        on;
tcp_nopush      on;
tcp_nodelay     on;
server_tokens   off;
gzip            off;
gzip_static     on;
gzip_comp_level 5;
gzip_min_length 1024;
types_hash_max_size 2048;
client_body_timeout   900;
client_header_timeout 900;
keepalive_timeout …
Run Code Online (Sandbox Code Playgroud)

php nginx

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

标签 统计

php ×2

file-descriptor ×1

mariadb ×1

mysql ×1

nginx ×1