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人.一台服务器跑多个项目.