登录
首页 >  数据库 >  MySQL

lnmp高并发优化简介

来源:SegmentFault

时间:2023-02-24 21:39:57 152浏览 收藏

对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《lnmp高并发优化简介》,主要介绍了MySQL、nginx、PHP,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

一、优化思路

优化思路

二、nginx优化配置

//nginx层面
//nginx.conf中配置
worker_rlimit_nofile 10000;   //子进程允许打开的文件数
keepalive_timeout 0;          //结束响应后立即断开tcp连接。
//keeplive_timeout表示tcp完成响应后,继续保持连接多久。如果这个值过大,会造成资源无效占用。
events{
    worker_connections 10240;
}
//系统层面
echo 500000 > /proc/sys/net/core/somaxconn  //设置最大连接数
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle  //加快tcp回收
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse    //空的tcp允许回收利用
echo 0 > /proc/sys/net/ipv4/tcp_syncookies  //关闭洪水抵御

ulimit -n 30000

三、nginx&php-fpm优化配置

nginx将请求转发给php-fpm处理,当nginx转发很多请求时,php-fpm进程不够用,就会生成子进程。然而生成子进程需要内核来调度,比较耗时。如果网站并发比较大,可以用静态方式一次性生成多个子进程,保持的内存中。

//修改phjp-fpm.conf
pm=static   //让php-fpm进程始终保持,不需要动态生成
pm.max_children=32 始终保持的子进程数量

四、php&mysql优化

思路
  1. 内核层面:加大连接数,加快tcp回收

  2. mysql层面:增大连接数

  3. php层面:用长连接,节省连接数

  4. 用内存缓存(memcached),减轻mysql压力

注意

内存缓存适用于缓存复杂的sql查询。因为php与memcached也要建立tcp连接,所以简单的sql查询不需要用缓存。

理论要掌握,实操不能落!以上关于《lnmp高并发优化简介》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表