zoukankan      html  css  js  c++  java
  • db2服务器linux的cache过高原因

    在线上db2数据库服务器,使用的linux操作系统(RHEL,centos),当db2数据库运行一段时间之后,操作系统的物理内存就趋近于0,同时系统的cache暴增,但是use却不高,下面是正常使用
    
    free -g
                 total       used       free     shared    buffers     cached
    Mem:           125         68         57         66          0         66
    -/+ buffers/cache:          2        123 
    Swap:           15          0         15
    下面是异常情况
    
    free -g
                 total       used       free     shared    buffers     cached
    Mem:           125         68         0         66          0         123
    -/+ buffers/cache:          2        123 []()
    Swap:           15          0         15
    此时可用物理内存过少,db2数据库整体性能下降,影响业务使用,为解决线上,采用临时解决办法,手动去释放cache,方法如下
    
    sync
    echo 1 >/proc/sys/vm/drop_caches
    在没定位到cache过高原因之前,只能把手动清理cache的方法写成脚本,放到crontab中定时去清理
    
    经过多次排查,终于发现操作系统cache过高的原因,是因为db2数据库备份导致,db2数据库备份时,备份的数据写入文件系统时,先经过文件系统的cache,再从cache写入磁盘中,如果使用direct io,备份数据就不经过cache,会直接写入磁盘,下面要解决

    的是怎么让备份去使用direct io。

    经过查阅db2官方帮助文档,发现有一个参数DB2_BACKUP_USE_DIO,设置成on之后,可以达到此效果,经过测试,db2备份时,系统cache不再增长,在db2 9.5版本设置此参数需要重启数据库实例,db2 9.5以后版本设置之后,再下一次备份时生效。

    转:https://www.tuicool.com/wx/juANree

    作者:tigergao
    功不唐捐 玉汝于成
  • 相关阅读:
    [汇编] 基础知识
    最长回文子串(1)
    整数分解为2的幂
    位数阶乘
    change log
    SEO简介
    http请求过程
    ES6新增特性——Promise
    rem在移动端的应用
    js截取字符串操作slice、substring 、substr
  • 原文地址:https://www.cnblogs.com/tigergaonotes/p/15734168.html
Copyright © 2011-2022 走看看