IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Redhat 5.8 Huge Pages参数设置错误导致的内存不足(Out of memory)故障记录 -> 正文阅读

[系统运维]Redhat 5.8 Huge Pages参数设置错误导致的内存不足(Out of memory)故障记录

客户的一台联想RD830异常关机,在手工起来运行一天后又再次宕机,报以下错误:
CRITICAL Event: Internal error during firmware execution. Image shall be updated to other version or hardware board repair is needed (if error is persistent). - Asserted

初步判断机器的主板存在故障,于是使用备件进行了主板的更换。更换后对机器加电,系统在启动过程中停在图形登录界面,无法操作。
在这里插入图片描述
初步怀疑是图形界面启动的问题,由于Redhat 5.8启动菜单中没有救援选项,因此使用操作系统光盘进入救援模式。在救援模式下,将文件/etc/inittab的启动级别由5更改为3,然后再重启系统。

启动过程中还是报错误“Out of memory and no killable processes…”。
在这里插入图片描述
于是,尝试进入单用户模式(在GRUB菜单中使用e编辑kernel行在最后加上single来启动系统进入单用户模式,或在救援模式下将文件/etc/inittab的启动级别更改为1),结果还是报相同的错误:
在这里插入图片描述

再次进入救援模式,注销掉/etc/fstab文件中的swap行,让系统在启动时不添加swap空间。

重启后可以进入单用户模式,于是手工添加swap空间,可是在添加过程中又报错误“Out of memory and no killable processes…”。

在这里插入图片描述
重启再次进入单用户模式后,检查内存的使用情况,发现系统中配置了64G内存,但是只剩下316M的空闲内存。
在这里插入图片描述
然而top或ps auxw的输出中都找不到任何使用很多内存的进程,而且这是在单用户模式下,没有启动任何用户进程。
在这里插入图片描述
查看/proc/meminfo的输出,发现系统Huge Pages保留了64G(32006*2048*1024)的内存,导致系统无可用的内存。
在这里插入图片描述
查看/etc/sysctl.conf文件,里面有关于huge pages的设置:
vm.nr_hugepages=34568

将该参数设置成SGA/2048k(huge page大小)的值后,重启系统,系统的空闲内存恢复正常。

初步怀疑是客户在主板故障前执行了Oracle的脚本hugepages_settings.sh来设置huge page的值,由于系统没有重启参数没有生效,硬件故障导致系统重启后参数开始生效,导致系统由于可用内存不足无法正常启动。

脚本hugepages_settings.sh在Redhat 6/7中可以正常使用,但是在Redhat 5中由于“ipcs -m”第5列的输出值累加起来为内存的实际容量,导致参数vm.nr_hugepages的值设置为物理内存容量/2048k,将所有系统内存保留为大页面内存,从而出现了内存不足的问题。

Huge Pages是Linux内核版本2.6以后的特性,这个特性让系统可以提供比普通的4K页大小更大的页面选择,在数据库服务器中配置可以提高内存性能。

关于Huge Pages的说明,可以参考文章:Linux使用HugePages 提高数据库的 x86 内存性能

关于Huge Pages在Oracle数据库中的应用,请参考多米尼哥的文章:使用HugePages优化内存性能

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:36:33  更:2022-03-11 22:37:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:48:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码