设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 298|回复: 0

kangle网站服务器高并发访问却只用了670MB内存,vps从1G升级后性能过剩2G大内存mysql数据库MyISAM索引缓存key优化

[复制链接]
 成长值: 576

签到天数: 5178 天

[LV.Master]伴坛终老

发表于 2026/2/19 02:42 | 显示全部楼层 |阅读模式 |Google Chrome 145.0.0.0|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
kangle网站服务器高并发访问却只用了670MB内存,vps从1G升级后性能过剩2G大内存mysql数据库MyISAM索引缓存key优化

默认设置只开8个php工作者的情况下,网站高并发访问时每个php工作者进程占用22MB内存,其他保持默认设置时vps整机占用670MB内存,1G内存的vps可以轻轻松松流畅运行大型网站
1.jpg

8个php工作者加上每日7z后台自动备份时候也才用了1024MB不到,每日7z后台自动备份大概使用350MB内存
2.jpg

分配更多的空闲内存给mysql数据库,原有配置文件/etc/my.cnf
http://github.itzmx.com/1265578519/kangle/master/mysql/5.6/my.cnf

增加参数
常驻MyISAM索引缓存,默认值8MB大概6K个分块,256MB可以有214K个左右缓存分块,大概能用100K左右,分配256MB搓搓有余,也可以判断Key_blocks_used 的使用量来计算要分配合理的缓存进行回收,避免启动mysql进程后直接浪费的固定内存。
  1. key_buffer_size = 256M
复制代码


回收无用的InnoDB引擎内存消耗,服务器上运行的主流程序都使用MyISAM引擎,没有任何InnoDB数据库的业务,避免浪费内存直接设置为最小值,当前配置文件已有innodb_buffer_pool_size = 8M
  1. innodb_log_buffer_size = 2M
复制代码


修改参数
打开的数据表个数,比如说2048,值越大时内存使用量越高,比如发生Table_open_cache_overflows 时就是出现了瓶颈需要提升table_open_cache
  1. table_open_cache=2048
复制代码


修改后重启
  1. service mysqld restart
复制代码


优化前mysql占用内存119MB,优化后mysql进程内存占用355MB,提高了数据库大约3倍内存占用,用更多的内存换取低CPU使用
优化后默认8个php工作者整机内存使用为900MB,每日7z后台自动备份大概使用350MB内存,总计900+350=1250MB,2G内存还是有大概700MB空闲可用的
可以根据内存情况设置更多的php工作者进程用于网站高并发,在设置16个php工作者的时候,此时整机内存占用从900MB提升到1080MB
空闲的700MB内存也可以用作系统冗余,在被CC攻击的时候连接数暴增,Linux内核会申请更多的内存空间用于tcp开销

评分

参与人数 1樱币 +2 收起 理由
寻宝人2339 + 2 很给力!

查看全部评分

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2026/3/9 18:38 , Processed in 0.107245 second(s), 20 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表