LNMP单机高并发的简单优化
小项目使用单台机器,2核4G,使用CentOS+Nginx+MySQL+PHP环境搭建的抢购活动。前台Vue+Laravel框架提供API及后管,使用Redis防止超售问题。
优化前使用默认的lnmp配置,活动开始后基本卡死,php-fpm日志记录到线程数量不够、CPU占用90%以上。慢日志中发现laravel include过多文件导致磁盘IO过高,网站请求变慢,进而导致nginx日志中过多的499状态码(客户端主动关闭),用户体验效果很差。
我使用的几条优化方法:
- 首先尽量减少抢购过程中的mysql查询,转移到Redis储存,开启Redis持久化,防止宕机后的数据丢失。
- 优化PHP-FPM,启动多个php-fpm master进程来分担过多的php请求,比如我启动了四个php-fpm。Nginx中使用upstream进行负载均衡。
- 手动指定Nginx的worker_processes和worker_cpu_affinity,我设置为双倍,即worker_processes 4、worker_cpu_affinity 0001 0010 0100 1000。
- 启用opcache解决php磁盘占用过高的问题,opcache缓存php编译后的字节码,直接跳过前期的文件相互引用和编译解释过程,效果明显。
测试优化富贵论坛后,并发能稳定在140左右,基本无错误,响应很快,体验提高很多。
LNMP单机高并发的简单优化相关推荐
- 大数据量高并发的数据库优化(转载)
对其进行处理是一项艰巨而复杂的任务.原因有以下几个方面: 一.数据量过大,数据中什么情况都可能存在.如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千 ...
- 数据量高并发的数据库优化
数据量高并发的数据库优化一.数据库结构的设计如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据 ...
- PostgreSQL数据库 OLTP高并发请求性能优化
PostgreSQL数据库 OLTP高并发请求性能优化 2015-10-14 11:00:00| 作者:德哥:分类: PgSQL PerfTuning| 2015年度PG大象会报名地址: htt ...
- 微软大佬带你深入解析websocket丨tcp自定义协议的设计丨服务器高并发场景的优化
各个方面都离不开的websocket,只是你没有注意到 1. websocket的应用场景 2. tcp自定义协议的设计 3. 服务器高并发场景的优化 [Linux服务器开发系列]微软大佬带你深入解析 ...
- 高并发系列:存储优化之也许可能是史上最详尽的分库分表文章之一
趣味性不强,但知识性很强,建议耐心看或者先收藏 本文内容预览: 库表会在哪天到达瓶颈? 1.1 苏宁拼购百万级库表拆分之前 1.2 京东配运平台库表拆分之前 1.3 大众点评订单库拆分之前 1.4 小 ...
- 高并发系列:架构优化之从BAT实际案例看消息中间件的妙用
包含原理+BAT案例实践,看完需要5分钟 本文内容预览: 是什么?为什么? 1.1 什么是消息队列 1.2 为什么要使用消息队列 1.3 引入消息队列的带来了哪些问题 怎么样? 2.1 支撑七年双11 ...
- nginx应用总结(2)--突破高并发的性能优化
在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题.今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一.这里 ...
- Linux系统高并发kernel参数优化
众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参数方面和IO事件分配机制等.下面就从几方面来调整使Linux系统能够支持高并发环境. iptabl ...
- 大数据量高并发的数据库优化(转)
参考:http://www.cnblogs.com/chuncn/archive/2009/04/21/1440233.html 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户 ...
最新文章
- CAS (10) —— JBoss EAP 6.4下部署CAS时出现错误exception.message=Error decoding flow execution的解决办法...
- OJ在线编程----常见输入输出练习场
- 上班族英语用语:今天你加班吗?
- QTP简单框架(6)之脚本编写实例
- 计算机网络硬件的作用是什么,网络技术在计算机软硬件的作用
- pygame小游戏代码_Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏...
- LeetCode--41.缺失的第一个正数(C)
- 面试题46. 把数字翻译成字符串
- Linux必会原理之软连接文件和硬链接文件的区别
- Python并行实现XML文件转换为XLSX文件
- Unity 边缘发光HighlightingSystem的使用
- 十进制度分秒lisp函数_十进制经纬度与度分秒格式相互转换 Excel
- 嵌入式开发:优化嵌入式软件的7个技巧
- 十进制转换成二进制java
- 输入账号 密码 实现登录功能
- 华为Mate50发布,4999元起,全球首款支持北斗卫星消息的智能手机
- kali字体设置-各种字体图标大小调整总结
- c++ 一维向量,和二维向量的基本使用
- ERP、MRP、MRPII、MTL、SCM、CRM、EDI、SFA、CAD、PDM、等相关定义的区分
- React HOC高阶组件
热门文章
- PyTorch基础-使用LSTM神经网络实现手写数据集识别-08
- html 选中tag标签,HTML Tag Selector标签选择器PFC020071801
- fastcgi pass php-fpm,Nginx中fastcgi_pass的配置问题
- vue----第一个工程项目
- 27-----BBS论坛
- 微信公众号--消息回复
- 关于table边框,设置了border-collapse:collapse之后,设置border-radius没效果
- [Debug]IOS微信浏览器不支持form表单的target=_blank
- 【原创】Quartz代码详解
- PHP 接口开发注意事项