Linux下 Apache,MySQL性能优化 (高并发优化)

apache优化

查看apache 工作模式: prefork

httpd -V

在这里插入图片描述

1: 新增 /etc/httpd/conf.d/httpd-mpm.conf

<IfModule mpm_prefork_module>
    ServerLimit       1000
    StartServers       30
    MinSpareServers   30
    MaxSpareServers   45
    MaxClients       1000
    MaxRequestsPerChild  4000
</IfModule>

解释说明: (最好不要再后面加#号写注释, 经常会导致apache启动不起来)
	   ServerLimit          2500   #用于修改apache编程参数(据说要放在第一行,未测)
       StartServers         5      #预先启动
       MinSpareServers      5   #最小空闲进程
       MaxSpareServers      10  #最大空闲进程
       MaxClients           2000   #最大并发数
       MaxRequestsPerChild  500  #一个独立的子进程将能处理的请求数量

2: 重启apache

/bin/systemctl stop httpd.service
/bin/systemctl start httpd.service

接一下使用ab压力测试, 出现了 mysql 提示too many connections问题解决办法

ab -n 1000 -c 300 -r http://test.com/
其中-n表示请求数,-c表示并发数

mysql性能优化
编辑 /etc/my.cnf

slow_query_log = ON
slow_query_log_file = /var/lib/mysql/slow_query.log
long_query_time = 1

query_cache_size = 268435456
query_cache_type = 1
query_cache_limit = 268435456

wait_timeout=300
max_connections=1000
interactive_timeout = 500

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open_files_limit=25001

主要为开启慢查询日志, 查询缓存, 最大连接数, 超时等, 最大打开文件数等
在这里插入图片描述

重启mysql
/bin/systemctl stop mysqld.service
/bin/systemctl start mysqld.service

在用压力测试, 好像比刚开始有那么一点点提升, 据说关键解决还是要多服务器吧,
负载均衡 + mysql 主从复制, 读写分离

实际场景观察

Linux Centos7.5 , 4核, 8G, 6M带宽 高峰器临时升级到40M带宽 实测cpu 95%, 内存占用率 80%,
高峰带宽6M, 临时升级40M未知有何帮助(或许增加了响应速度吧), 直播实时在线访客620人.一台服务器跑多个项目.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值