小项目使用单台机器,2核4G,使用CentOS+Nginx+MySQL+PHP环境搭建的抢购活动。前台Vue+Laravel框架提供API及后管,使用Redis防止超售问题。

优化前使用默认的lnmp配置,活动开始后基本卡死,php-fpm日志记录到线程数量不够、CPU占用90%以上。慢日志中发现laravel include过多文件导致磁盘IO过高,网站请求变慢,进而导致nginx日志中过多的499状态码(客户端主动关闭),用户体验效果很差。

我使用的几条优化方法:

  1. 首先尽量减少抢购过程中的mysql查询,转移到Redis储存,开启Redis持久化,防止宕机后的数据丢失。
  2. 优化PHP-FPM,启动多个php-fpm master进程来分担过多的php请求,比如我启动了四个php-fpm。Nginx中使用upstream进行负载均衡。
  3. 手动指定Nginx的worker_processes和worker_cpu_affinity,我设置为双倍,即worker_processes 4、worker_cpu_affinity 0001 0010 0100 1000。
  4. 启用opcache解决php磁盘占用过高的问题,opcache缓存php编译后的字节码,直接跳过前期的文件相互引用和编译解释过程,效果明显。

测试优化富贵论坛后,并发能稳定在140左右,基本无错误,响应很快,体验提高很多。

LNMP单机高并发的简单优化相关推荐

  1. 大数据量高并发的数据库优化(转载)

    对其进行处理是一项艰巨而复杂的任务.原因有以下几个方面: 一.数据量过大,数据中什么情况都可能存在.如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千 ...

  2. 数据量高并发的数据库优化

    数据量高并发的数据库优化一.数据库结构的设计如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据 ...

  3. PostgreSQL数据库 OLTP高并发请求性能优化

    PostgreSQL数据库 OLTP高并发请求性能优化   2015-10-14 11:00:00|  作者:德哥:分类: PgSQL PerfTuning| 2015年度PG大象会报名地址: htt ...

  4. 微软大佬带你深入解析websocket丨tcp自定义协议的设计丨服务器高并发场景的优化

    各个方面都离不开的websocket,只是你没有注意到 1. websocket的应用场景 2. tcp自定义协议的设计 3. 服务器高并发场景的优化 [Linux服务器开发系列]微软大佬带你深入解析 ...

  5. 高并发系列:存储优化之也许可能是史上最详尽的分库分表文章之一

    趣味性不强,但知识性很强,建议耐心看或者先收藏 本文内容预览: 库表会在哪天到达瓶颈? 1.1 苏宁拼购百万级库表拆分之前 1.2 京东配运平台库表拆分之前 1.3 大众点评订单库拆分之前 1.4 小 ...

  6. 高并发系列:架构优化之从BAT实际案例看消息中间件的妙用

    包含原理+BAT案例实践,看完需要5分钟 本文内容预览: 是什么?为什么? 1.1 什么是消息队列 1.2 为什么要使用消息队列 1.3 引入消息队列的带来了哪些问题 怎么样? 2.1 支撑七年双11 ...

  7. nginx应用总结(2)--突破高并发的性能优化

    在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题.今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一.这里 ...

  8. Linux系统高并发kernel参数优化

    众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参数方面和IO事件分配机制等.下面就从几方面来调整使Linux系统能够支持高并发环境. iptabl ...

  9. 大数据量高并发的数据库优化(转)

    参考:http://www.cnblogs.com/chuncn/archive/2009/04/21/1440233.html 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户 ...

最新文章

  1. CAS (10) —— JBoss EAP 6.4下部署CAS时出现错误exception.message=Error decoding flow execution的解决办法...
  2. OJ在线编程----常见输入输出练习场
  3. 上班族英语用语:今天你加班吗?
  4. QTP简单框架(6)之脚本编写实例
  5. 计算机网络硬件的作用是什么,网络技术在计算机软硬件的作用
  6. pygame小游戏代码_Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏...
  7. LeetCode--41.缺失的第一个正数(C)
  8. 面试题46. 把数字翻译成字符串
  9. Linux必会原理之软连接文件和硬链接文件的区别
  10. Python并行实现XML文件转换为XLSX文件
  11. Unity 边缘发光HighlightingSystem的使用
  12. 十进制度分秒lisp函数_十进制经纬度与度分秒格式相互转换 Excel
  13. 嵌入式开发:优化嵌入式软件的7个技巧
  14. 十进制转换成二进制java
  15. 输入账号 密码 实现登录功能
  16. 华为Mate50发布,4999元起,全球首款支持北斗卫星消息的智能手机
  17. kali字体设置-各种字体图标大小调整总结
  18. c++ 一维向量,和二维向量的基本使用
  19. ERP、MRP、MRPII、MTL、SCM、CRM、EDI、SFA、CAD、PDM、等相关定义的区分
  20. React HOC高阶组件

热门文章

  1. PyTorch基础-使用LSTM神经网络实现手写数据集识别-08
  2. html 选中tag标签,HTML Tag Selector标签选择器PFC020071801
  3. fastcgi pass php-fpm,Nginx中fastcgi_pass的配置问题
  4. vue----第一个工程项目
  5. 27-----BBS论坛
  6. 微信公众号--消息回复
  7. 关于table边框,设置了border-collapse:collapse之后,设置border-radius没效果
  8. [Debug]IOS微信浏览器不支持form表单的target=_blank
  9. 【原创】Quartz代码详解
  10. PHP 接口开发注意事项