MySQL的内存和相干题目排查
swappiness参数节制内核将历程移出物理内存并将其放入互换磁盘分区的趋势。我们之前也说过了磁盘IO操纵要比RAM慢许多许多,因此假如历程过于频仍地从内存中置换出,这会导致体系和应用措施的相应时刻变慢。高swappiness值意味着内核更轻易打消内存页面。低swappiness相反,内核将不太轻易打消内存页面。swappiness值越高,体系内存置换的越多。 linux下体系(CentOS、Red Hat、ubuntu)默认的swappiness值为60。假如内存较小则应恰当调高这个值。对付内存足够的MySQL处事器,这个默认配置就有点太高了,应该镌汰。一样平常环境下,业界提议这个值可以配置到5.可能更小。配置swappiness要领是行使sysctl呼吁直接改变内核参数。
NUMA配置 尚有一个方面就是NUMA配置。对付具有多个NUMA焦点的处事器,提议将NUMA模式配置为交织,以均衡全部节点的内存分派。 在最新的MySQL 8.0中支持为InnoDB配置NUMA。可以在设置通过启动:innodb_numa_interleave = 1 要搜查是否有多个NUMA节点,可以行使numactl -H 这是两种差异的输出: 我们可以看到,当有多个NUMA节点(下)时,默认环境下,内存不会在全部节点之间均匀分派。这可以导致更多内存置换。 文件体系缓存 默认环境下,Linux将行使文件体系会对全部的I/O操纵举办缓存(这是不提议行使MyISAM的缘故起因之一,MyISAM存储引擎依靠于FS缓存,而且也许导致丢失数据)。Mysql InnoDB引擎中行使O_DIRECT作为innodb_flush_method,MySQL将绕过文件体系缓存,不会将任何FS Cache Memory用于数据文件(* .ibd)。 虽然在MySQL中行使的其他非数据文件仍会行使FS Cache。我们来看个例子:
开始搜查文件体系缓存中存在几多二进制日记(行使dbsake fincore),我们可以看到473M中有42%行使RAM作为FS缓存。然后我逼迫打消在缓存中行使这些页面(行使fincore uncache),功效,我们开释了+/- 195MB的RAM。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |