CDH运维 swap处理

CDH运维swap处理

博主在使用CDH 6.2大数据平台时发现,CDH长时间运行,Cloudera Manager管理页面在运行Spark任务时候经常会出现组件大量内存交换警告,前期博主直接忽略,毕竟不是什么大问题,后期发现如果长时间黄色警告不处理,会误导页面查看集群状态,并且交换空间所占用磁盘空间越来越大,并且警告越来越多,后续还会有从黄色变为红色异常等情况,后进入管理界面发现,CDH在安装时,Linux操作系统,有选择交换空间地址交给CDH内存不足情况下使用,测试发现手动释放会解决,管理界面警告问题(黄色警告,看着也不舒服)。

目录

  1. swap的作用
  2. CDH告警
  3. 解决方案
  4. 开启关闭swap

swap在Linux中的作用

我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多(硬盘磁道寻址),因此,我们希望所有数据的读取和写入都在内存完成,而内存大小是有限的,并且内存价格高于硬盘价格,这样就引出了物理内存与虚拟内存的概念。

物理内存 就是系统硬件提供的内存大小,是真正的内存,相对于物理内存(free -h)可查看。
虚拟内存 在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出 的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间,称Swap Space,(swapon -s)可查看。

CDH告警

CDH集群告警
在这里插入图片描述
CDH集群单台机器警告
在这里插入图片描述

在这里插入图片描述
交换空间
在这里插入图片描述

解决方案

一次性解决方案

  • 设置swappiness值为0,表示尽可能不使用交换内存

    临时设置方案,重启后设置不生效

    (控制台输入)sysctl vm.swappiness=0

    查看修改后的值

    # 控制台输入如下语句
    cat /proc/sys/vm/swappiness
    

    永久设置方案,重启后设置依然生效

    # 在/etc/sysctl.conf 文件里添加如下参数
    sudo vi /etc/sysctl.conf
    vm.swappiness=0
    # 或者追加模式, 直接在控制台执行如下语句
    echo 'vm.swappiness=0' >> /etc/sysctl.conf
    
    
  • 彻底关闭swap

    首先要保证内存剩余要大于等于swap使用量,否则会宕机!根据内存机制,swap分区一旦释放,所有存放在swap分区的文件都会转存到物理内存上。通常通过重新挂载swap分区完成释放swap。

    使用free -h查看剩余内存情况

    free -h
    

    查看交换空间挂载情况

    swapon -s
    

    关闭挂载分区的交换空间

    # 关闭挂载分区
    swapoff /dev/dm-1  
    #  开启挂载分区
    # swapon /dev/dm-1
    

    如下图命令所示在这里插入图片描述
    在执行swapoff 命令以后,swap会逐渐减少
    在这里插入图片描述

定期清理方案

编辑脚本 /root/cron/cron_clear_swap.sh

#!/bin/bash
#关闭所有交换空间
swapoff -a
#开启所有交换空间
swapon -a
#输出
echo "释放完毕"

编辑定时任务

# 执行
crontab -e
# 编辑调度,并保存
00 23 * * *  /root/cron/cron_clear_swap.sh

参考blog

CDH交换内存警告解决方法
https://blog.csdn.net/lingbo229/article/details/81912248
CDH大数据平台内存交换,警告问题
https://blog.csdn.net/weixin_38822045/article/details/107695935

猜你喜欢

转载自blog.csdn.net/dbc_zt/article/details/109737064