API接口当遇到并发量大的时候,性能明显降低是什么原因导致的?

API接口当遇到并发量大的时候,性能明显降低是什么原因导致的?

4台服务器走负载均衡

LNMP架构 采用的是YAF高性能框架

nginx + PHP5.3 +MySQL5.6

并发量到 3000以上明显就性能下降,具体原因有那些?

如何优化?

阅读 9.1k
6 个回答

首先,定位问题
1.通过慢请求日志定位问题,是否是数据库操作还是其他的问题-数据库操作优化,索引,sql语句优化等
2.确认nginx和php-fpm的参数是否是最优配置。
3.增加redis做热点数据缓存。
4.开启opcache做缓存。
5.升级php版本到7,性能优化。

性能下降有各种原因,可以从一些点入手:

  1. 写的程序是否合理,比如查多于写的地方,是否用的是set或者map,不能是list

  2. 代码的有些地方的写入操作是否可以使用异步执行

  3. 是否使用了很多db事物

  4. 有些不常改变的数据,是否可以加缓存

  5. sql语句是否有索引问题

4台服务器 cpu 的使用率都是多少呢?会不会服务器的cpu 不够用呢?还有 mysql 的执行效率也是要注意的

建议排查sql语句是否有链表操作,是否存在事物,在3K的并发下面LNMP架构基本上没有什么压力的.同时可以排查一下查询和写入的数据量.

查看php-fpm.conf配置,服务器上开大php-fpm的进程量。

  1. CPU的使用率
  2. 确定一下MySQL使用的时候占的内存,有必要优化一下
  3. 缓存
  4. 是否有埋点,确定一下哪个接口调用的多
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题