经过多次压力测试,发现sphinx在高并发时出现负载突然提升,并且响应速度明显下降。经过多方面的排查,发现是由于PHP与sphinx自带的 searchd进行socket的连接之后,系统内存有大量的Time_Wait连接,所以我们猜测为searchd的socket连接未及时关闭,造成 大量请求堆积,使得PHP客户端与sphinx的请求效率低下。由于searchd是编译好的,无法进行OPT设置,故我做了内核调整,来优化 socket连接释放时间,具体参数如下

vi /etc/sysctl.conf

net.ipv4.tcp_timestamps=1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

说明:

net.ipv4.tcp_timestamps = 1

表示开启对于TCP时间戳的支持,若该项设置为0,则下面net.ipv4.tcp_tw_recycle的设置将不起作用;

net.ipv4.tcp_syncookies = 1 表示开启SYN

Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT

sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT

sockets的快速回收,默认为0,表示关闭。

再执行以下命令,让修改结果立即生效:

/sbin/sysctl -p

用以下语句看了一下服务器的TCP状态:

netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a,

S[a]}’

虽然这样修改之后还是会有很多的TIME_WAIT连接,但性能已经比之前的提升很多。

以下为修改之前的请求:

#webbench -c 300 -t 30

http://192.168.1.29/sphinx/sphinx_nocache.php

Webbench – Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET

http://192.168.1.29/sphinx/sphinx_nocache.php

300 clients, running 30 sec.

Speed=66986 pages/min, 290593 bytes/sec.

Requests: 33493 susceed, 0 failed.

以下为修改之后的测试结果:

#webbench -c 300 -t 30

http://192.168.1.29/sphinx/sphinx_nocache.php

Webbench – Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET

http://192.168.1.29/sphinx/sphinx_nocache.php

300 clients, running 30 sec.

Speed=91326 pages/min, 398190 bytes/sec.

Requests: 45663 susceed, 0 failed.

可以明显的看到效率的明显提升

来源:http://blog.itphp.org/archives/107

[转]你如何面对—LNMP高并发时502

From : http://www.topthink.com/topic/5683.html 之前php-fpm配置: 单个php-fpm实例,使用socket方式,内存8G 静态方式,启动php-f ...

爬虫爬数据时,post数据乱码解决办法

最近在写一个爬虫,目标网站是:http://zx.bjmemc.com.cn/,可能是为了防止被爬取数据,它给自身数据加了密.用谷歌自带的抓包工具也不能捕获到数据.于是下了Fiddler.     F ...

Bootstrap中关闭第二个模态框时出现的问题和解决办法

Bootstrap中关闭第二个模态框时出现的问题和解决办法 1.关闭第二个模态框时,第一个模态框跟着消失. 解决办法: 第二个模态框的代码不要写在第一个模态框里面,确保两个模态框相对独立; 2.关闭第 ...

oracle执行update语句时卡住问题分析及解决办法

转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值, ...

返回xml过长时被nginx截断的解决办法

返回xml过长时被nginx截断的解决办法 问题描述:通过网页获取数据,数据格式为xml.当xml比较短时,可以正常获取数据.但是xml长度过长时不能正常获取数据,通过观察返回数据的源代码,发现xml ...

IDEA使用maven构建时控制台中文乱码的解决办法

使用maven clean install 项目时控制台中文乱码,解决办法如下: Setting->maven->runner VMoptions: -Dfile.encoding=UTF ...

mongodb 更新数据时int32变为double的解决办法 & 教程

https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html mongodb 更新数据时int32变为double的解决办法   ...

java下载文件时文件名出现乱码的解决办法

转: java下载文件时文件名出现乱码的解决办法 2018年01月12日 15:43:32 橙子橙 阅读数:6249   java下载文件时文件名出现乱码的解决办法: String userAgent ...

随机推荐

安装mongodb后服务启动不了的问题

安装mongodb后,在命令行进入mongoDB安装目录执行如下: mongod --dbpath [数据存放的本地路径] 提示如下错误: ERROR: dbpath (数据存放的本地路径) does ...

windows10版本1709 在桌面和文件中点击右键,会引起卡顿

windows自动升级到1709版本后出现的问题,而之前是没有这种问题的. 最终解决办法:(需要设置注册表) 运行:快捷键Win+R regedit 路径:可直接复制后粘贴+回车 HKEY_CLASS ...

[转] 使用gc && objgraph 优化python内存

转自https://www.cnblogs.com/xybaby/p/7491656.html 使用gc.objgraph干掉python内存泄露与循环引用!   目录 一分钟版本 python内存管 ...

React的Element的创建和render

React的Element是React应用程序的最小构建块,它是用来描述我们在屏幕上看到的浏览器页面上的内容. 在React中构建 Element 有两种方式: 1.JSX的方式,JSX不是React ...

剑指offer(9)变态跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目分析 根据上一个题目可以知道,青蛙只跳1或2可以得出是一个斐波那契问题,即 ...

Eclipse Android 模拟器启动过慢

打开AVD Manager窗口,在模拟器配置页面,选择Intel Atom (x86)选项.笔记本的CPU处理器是Intel 酷睿. 可以发现模拟器的启动速度明显变快.

Bash 和 Zsh 开启 vi-mode

Bash 和 Zsh 开启 vi-mode bash 有两种操作模式,分别是 emacs 和 vi . 在 bash 中 set -o vi # 临时开启 vi 模式 vi ~/.bashrc # 在 ...

UVM phase的用法研究【zz】

php高并发接口性能急剧下降,关于sphinx+PHP在高并发时响应性能低下的解决办法...相关推荐

  1. 生产故障|Kafka ISR频繁伸缩缩引发性能急剧下降原因分析

    本文是笔者双十一系列第二弹,源于一个双十一期间一个让笔者猝不及防的生产故障,本文将详细剖析Kafka的副本机制,以及ISR频繁变更(扩张与伸缩)为什么会导致集群不可用. 1.Kafka副本机制 Kaf ...

  2. MySQL磁盘io瓶颈原因_为什么当磁盘IO成瓶颈之后数据库的性能急剧下降

    展开全部 为什么当磁盘IO成瓶颈之后, 数据库的性能不是达到饱和e68a84e8a2ad3231313335323631343130323136353331333433643733的平衡状态,而是急剧 ...

  3. mysql io瓶颈,(续)为什么当磁盘IO成瓶颈之后数据库的性能急剧下降—性能更悲剧篇...

    我们来梳理一下数据页访问的流程: 1. 先看缓存池中有没有,如果没有,则需要访问磁盘. 2. 访问磁盘之前,是不是需要先提前准备好一个空闲的内存块来接收(存放)磁盘上的数据页的内容? 很显然,这个空闲 ...

  4. 关于高并发的一些解决办法(转载)

    本文转载于博客园     魔流剑的博客    网址:  https://www.cnblogs.com/lr393993507/p/5909804.html   想看原版的自行点击传送门. 对于我们开 ...

  5. 数据库性能优化—MySQL单表最大记录数超过多少时性能会严重下降

    以前没有想过MySQL数据库的单表最大行数,直到最近interview时被问到c语言中int类型的最大值是多少时才想到Mysql单表最大行数的问题. 一开始被问到C语言中int类型的最大值有点懵逼,一 ...

  6. php占用服务器内存,php-fpm占用cpu和内存过高100% 解决办法

    今天一位朋友它的服务器php-fpm突然占用cpu和内存过高,它的服务器配置是4核8G内存.可以说还是相当不错的,由于php-fpm占用cpu过高从而导致经常出现"502 Bad gatew ...

  7. 高并发内存占用持续下降_高并发性能调试经验分享

    引文 4月份的时候看到一道面试题,据说是腾讯校招面试官提的:在多线程和高并发环境下,如果有一个平均运行一百万次才出现一次的bug,你如何调试这个bug?知乎原贴地址如下:腾讯实习生面试,这两道题目该怎 ...

  8. java接口并发衡量_java 后端设计高并发接口总结

    如何设置高并发接口 一.并发队列的选择 二.请求接口的合理设计 三.高并发下的数据安全 3.1 超发的原因 3.2 悲观锁思路 3.3 FIFO队列思路 3.4 乐观锁思路 一.并发队列的选择 Jav ...

  9. 电商项目的并发量一般是多少_掌握这些,高并发秒杀系统就不用担心了!

    很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景! 图片来自 Pexels 甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并 ...

  10. mysql 分区 性能更差_用案例分析MySQL 5.7分区表性能下降的根本原因

    前言:希望通过本文,使MySQL5.7.18的使用者知晓分区表使用中存在的陷阱,避免在该版本上继续踩坑.同时通过对源码的分享,升级MySQL5.7.18时分区表性能下降的根本原因,向MySQL源码爱好 ...

最新文章

  1. 做 AI 大咖在顶级单位之间随兴漂移,好开心!
  2. Ubuntu 搜狗输入法不能输入中文解决
  3. 数据挖掘基础知识-矩阵(分解)
  4. 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译
  5. 通过分析一个C程序的汇编指令执行过程,理解计算机的工作。
  6. 奢侈品级别的广告位,到底要不要继续砸钱?
  7. 【solr基础教程之二】索引
  8. Java代码简化之朗母达表达式(Lambda Express)
  9. 不是说好一起长大的吗?
  10. linux误删表空间文件,UNDO表空间下的数据文件被误删除后的处理方法
  11. Service rootservice does not have a SELinux domain defined
  12. c#之多线程之为所欲为
  13. 【codevs2440】【BZOJ1066】蜥蜴,最大流
  14. 右手螺旋判断磁感应强度方向_弹簧左旋or右旋在功能和应用上有什么区别,如何判断左旋还是右旋...
  15. 【ACL 2019】预训练语言模型的最新探索
  16. 软件测试经典问题——NextDate函数
  17. eclipse 查看jar包源代码两种方式
  18. 8.Nginx 例子
  19. ModelSim ALTERA 6.5b 下载安装以及使用
  20. 百度排名批量查询_企业网站建设,核心关键词排名丢失,怎么办?

热门文章

  1. 快点来学吧!Github标星25K+超火的Android实战项目,使用指南
  2. 2018年暑假训练总结
  3. GitLab拉去远程分支到本地
  4. 正则化惩罚(超详细)
  5. 突发!MIUI 时代落幕,雷军官宣:全新「小米澎湃OS」来了!
  6. Snap估值300亿美元:它重塑了社交媒体形象
  7. 重写-linux内存管理-伙伴分配器(二)内存碎片整理
  8. Redis4.0新特性-主动内存碎片整理
  9. TF-IDF Term frequency - inverse document frequency
  10. Washing clothes(李超树)