MySQLOOM系列三摆脱被杀的厄运,MySQL

MySQLOOM系列三摆脱被杀的厄运,MySQL
在第二章中,我们分析了Linux内存分配策略和Linux解决超售机构使用oom_killer造成风险,MySQL和其他应用程序,但也可以出售的超级操作系统允许的范围内,一般的理解,innodb_buffer_pool必须小于实际的物理内存,否则MySQL将无法启动的。事实上,这是一种误解。这不受MySQL级别的控制。它由操作系统(OS)级别控制。这是 /程序/系统/ overcommit_memory控制之前,是否允许超售操作系统。如果超售是允许的,这innodb_buffer_pool可以远远超过实际内存空间,但这部分空间是没有用的。我们可以做一个小实验,看看下面的:
MySQL的innodb_buffer_pool开启5G,但实际内存只有3G网络

讲了这么多,现在回到我们最早提到的RDS OS杀死审出了问题,我们也提到,一旦有足够的内存数据库通常是oom_killer.there首选的目标涉及到两个问题:

1。为什么内存不足

2。如何让MySQL摆脱杀人的厄运

首先,让我们看看第一个问题一看。有内存不足的原因很多,但主要有两个方面,第一个是MySQL自身记忆的规划是有问题的。二是MySQL服务器的总体部署,将部署大量的监控或定时任务脚本,这些脚本通常缺乏必要的内存限制,在高峰时间占用大量内存,Linux oom_killer触发机制,MySQL是无辜的牺牲。

那么MySQL怎么能摆脱杀人的厄运呢MySQL是杀的内存分配机制,这是植根于Linux超售。如前所述,只要有这种机制的超售,也不可能完全避免应用程序被杀死的危险。这使得MySQL不能被杀死,只能禁止操作系统内存分配超出实际存储空间。但我们也提到,对于MySQL服务器的部署,我们不推荐,因为很多记忆MySQL仅仅是应用的开始,而不是立即使用,操作系统一旦被禁止销售,这不仅提出了更严格的要求,对MySQL的存储规划,也不能充分利用内存的问题,同时,MySQL中每个连接的私有内存动态分配。如果没有分配,它将直接导致服务器崩溃,这也会增加MySQL崩溃的风险。

由于它仅限于操作系统,不能完全避免被杀死,它只能最小化MySQL被杀死的概率。我认为我们至少可以做以下3件事:
1)MySQL内存使用的合理规划。

2)调整oom_adj参数降低MySQL优先被oom_killer锁定。

3)加强对内存的监控和报警,一旦报警,DBA应迅速介入,杀掉占用较多内存的多个链接。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部