kangle网站服务器高并发访问却只用了670MB内存,vps从1G升级后性能过剩2G大内存mysql数据库MyISAM索引缓存key优化
kangle网站服务器高并发访问却只用了670MB内存,vps从1G升级后性能过剩2G大内存mysql数据库MyISAM索引缓存key优化默认设置只开8个php工作者的情况下,网站高并发访问时每个php工作者进程占用22MB内存,其他保持默认设置时vps整机占用670MB内存,1G内存的vps可以轻轻松松流畅运行大型网站
8个php工作者加上每日7z后台自动备份时候也才用了1024MB不到,每日7z后台自动备份大概使用350MB内存
分配更多的空闲内存给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进程后直接浪费的固定内存。
key_buffer_size = 256M
回收无用的InnoDB引擎内存消耗,服务器上运行的主流程序都使用MyISAM引擎,没有任何InnoDB数据库的业务,避免浪费内存直接设置为最小值,当前配置文件已有innodb_buffer_pool_size = 8M
innodb_log_buffer_size = 2M
修改参数
打开的数据表个数,比如说2048,值越大时内存使用量越高,比如发生Table_open_cache_overflows 时就是出现了瓶颈需要提升table_open_cache
table_open_cache=2048
修改后重启
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]