偶尔访问出现连接已重置
问题:1. 偶尔访问会出现 连接已重置。[ nginx错误日志没有异常] [网络没问题]
(1) . 这个情况会在不同并发的情况下发送,有时候Active connections 只有 80 左右就会出现,有时候爬行到600+也没出现。
(2).情况出现后会变得频繁,打开后的页面统计显示的执行时间很低,只有0.3 - 0.6秒[无缓存情况下的php需查询数据库的页面]。所以应该不是因为卡导致的。
(3) . 程序每个访客,在进入的时候,都占用一个mysql连接数,php pdo模式。[平时连接只有25左右,统计的最大连接数200左右,来源蜘蛛爬行]
(4) . 在出现这个情况的时候,即使访问一个txt静态文件,比如robots.txt,也可能出现连接已重置。
(5) . 查看nginx的访客日志发现,出现 连接已重置 的链接,在记录中不存在,而前后几秒访问正常的都可以记录。
以上是基本情况,麻烦军哥分析下什么情况。
2. 服务器内存32G,使用一直保持在10G,另外20多G一直处于空闲。
下面贴上my.cnf、php-fpm.conf配置,麻烦军哥帮忙分析优化下:
pm = dynamic
pm.max_children = 1200
pm.start_servers = 350
pm.min_spare_servers = 300
pm.max_spare_servers = 1200
request_terminate_timeout = 100
request_slowlog_timeout = 0
my.cnf:
#password = your_password
port = 3306
socket = /tmp/mysql.sock
port = 3306
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 1M
table_open_cache = 2048
sort_buffer_size = 8M
net_buffer_length = 8K
read_buffer_size = 8M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 128M
thread_cache_size = 256
query_cache_size = 128M
tmp_table_size = 256M
explicit_defaults_for_timestamp = true
#skip-networking
max_connections = 4096
max_connect_errors = 30
open_files_limit = 10240
#log-bin=mysql-bin
#binlog_format=mixed
server-id = 1
expire_logs_days = 10
early-plugin-load = ""
#loose-innodb-trx=0
#loose-innodb-locks=0
#loose-innodb-lock-waits=0
#loose-innodb-cmp=0
#loose-innodb-cmp-per-index=0
#loose-innodb-cmp-per-index-reset=0
#loose-innodb-cmp-reset=0
#loose-innodb-cmpmem=0
#loose-innodb-cmpmem-reset=0
#loose-innodb-buffer-page=0
#loose-innodb-buffer-page-lru=0
#loose-innodb-buffer-pool-stats=0
#loose-innodb-metrics=0
#loose-innodb-ft-default-stopword=0
#loose-innodb-ft-inserted=0
#loose-innodb-ft-deleted=0
#loose-innodb-ft-being-deleted=0
#loose-innodb-ft-config=0
#loose-innodb-ft-index-cache=0
#loose-innodb-ft-index-table=0
#loose-innodb-sys-tables=0
#loose-innodb-sys-tablestats=0
#loose-innodb-sys-indexes=0
#loose-innodb-sys-columns=0
#loose-innodb-sys-fields=0
#loose-innodb-sys-foreign=0
#loose-innodb-sys-foreign-cols=0
default_storage_engine = InnoDB
innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var
innodb_buffer_pool_size = 4096M
innodb_log_file_size = 512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
quick
max_allowed_packet = 16M
no-auto-rehash
key_buffer_size = 1024M
sort_buffer_size = 2M
read_buffer = 2M
write_buffer = 2M
interactive-timeout
phpmyadmin统计:
[ 本帖最后由 zxcust 于 2016-7-18 11:27 编辑 ] 没遇到过不好说 回来反馈原因,供后来者参考。
测试一下午发现是G-F-W搞的。
即使是出现可能为敏感词的拼音、或拼音缩写,也会偶尔被拦,估计是拦截后分析为非恶意页面,又不拦截了,所以出现偶尔1-2分钟内经常出现 连接被重置。
页面上出现了一个随机的字符串恰巧有f...l...g[无 ...]三个字母 组合就变成了敏感词,只要一访问有这个字符串的页面,就会出现持续几分钟的连接被重置。
另外麻烦军哥帮忙调优一下my.cnf配置,让内存使用率上去
页:
[1]