可以做推广的门户网站,网站流量用完,做网站技术要求怎么写,十大购物app排行榜OOM 问题 linux内核有个机制叫OOM killer(Out-Of-Memory killer)#xff0c;当系统需要申请内存却申请不到时#xff0c;OOM killer会检查当前进程中占用内存最大者#xff0c;将其杀掉#xff0c;腾出内存保障系统正常运行。 一般而言#xff0c;一个应用的内存逐渐增加当系统需要申请内存却申请不到时OOM killer会检查当前进程中占用内存最大者将其杀掉腾出内存保障系统正常运行。 一般而言一个应用的内存逐渐增加肯定是不正常的这个时候可认为该应用存在内存泄漏当系统内存被占用到一定的时候将会触发OOM此时系统将会找一个最合适的进程杀掉以释放内存。 原因 大query带来内存上涨大量连表查询加载数据到内存中进行数据筛选导致内存上涨触发linux oom 机制 杀掉mysql 同时表数量较多导致innodb数据字典内存占用多 内部解决思路 1.先进行数据库配置升级海豚库升级到16c128G配置略知库升级到8c32g。 2.持续监测内存发现内存占用基本60%左右。 3.进行慢sql连表查询sql优化。 4.计划迁移mysql 到polardb。 5.排查linux日志定位触发oom的时候mysql 占用内存大小。以及附近sql。 6.设置mysql 禁用oom机制将mysql评分降为最低oom时候 只会杀掉评分最高的进程。 7.降低mysql Buffer Pool值因为阿里云rds 默认此值占用过高最高65%内存降低缓存区大小可以预留一部分内存作为抵抗不可控风险使用。 8.彻底关闭linux oom机制。 sysctl -w vm.panic_on_oom1 实际执行中遇到的问题
由于阿里云RDS只支持对数据库的使用不支持对系统层面的一些配置。所以上述第6条、上述第8条不可用由于阿里云RDS配置Buffer Pool 需要重启mysql项目量级较大重启耗时半小时以上所以上述第7条不可用有动态调整缓存区大小方案但是性能抖动很激烈花费时间更久不推荐。由于阿里云RDS不支持查询linux日志oom日志暂未获得阿里方给了一部分oom附近sql。进行参考优化。由于迁移polardb对现在数据库性能影响较大迁移时间不可控迁移过程中增量数据迁移方案未确定目前正在调研中。