当前位置: 首页 > news >正文

什么叫定制网站网站建设工程师是做什么的

什么叫定制网站,网站建设工程师是做什么的,庄河网站建设公司,网站兼容手机浏览器Linux OOM Killer详解 一、概述二、OOM Killer的技术原理1. 内存区域划分2. 内存耗尽与OOM Killer触发3. 选择被杀进程的策略4. 内存回收机制5. 内存分配策略 三、OOM Killer的工作机制1. 内存压力监测2. 触发条件3. 选择被杀进程4. 终止进程 四、实际场景举例场景一#xff1… Linux OOM Killer详解 一、概述二、OOM Killer的技术原理1. 内存区域划分2. 内存耗尽与OOM Killer触发3. 选择被杀进程的策略4. 内存回收机制5. 内存分配策略 三、OOM Killer的工作机制1. 内存压力监测2. 触发条件3. 选择被杀进程4. 终止进程 四、实际场景举例场景一系统内存耗尽时的OOM Killer触发场景二LowMem耗尽导致OOM Killer触发场景三特定进程优先被杀场景四保护关键进程 五、优化和解决方案1. 升级到64位系统2. 使用hugemem内核3. 调整内核参数4. 关闭OOM Killer风险较高5. 配置内核参数以自动重启系统 六、总结 一、概述 在Linux操作系统中内存管理至关重要。当系统内存耗尽时如果不采取措施会导致系统崩溃。为了解决这个问题Linux内核引入了一种保护机制——OOM KillerOut-Of-Memory Killer。当系统内存耗尽时OOM Killer会选择并终止一些进程以释放内存确保系统继续运行。本博客将详细介绍OOM Killer的技术原理、工作机制并通过实际场景举例说明其应用。 二、OOM Killer的技术原理 1. 内存区域划分 在32位CPU架构下Linux内核将物理内存划分为三个区域 DMA区域0x00000000 - 0x009999990 - 16 MBLowMem区域0x01000000 - 0x03799999916 - 896 MBHighMem区域0x038000000 - 硬件特定 LowMem区域也叫Normal Zone一共880 MB是内核直接映射的物理地址范围。这意味着内核需要直接使用的内存必须分配在LowMem区域内。HighMem区域用于用户空间进程的数据存储但内核访问这部分内存需要进行额外的地址映射。 在64位系统中所有物理内存都可以被直接映射因此LowMem和HighMem的划分问题不再存在。然而在32位系统中由于LowMem区域有限内存密集型应用很容易导致LowMem耗尽触发OOM Killer。 2. 内存耗尽与OOM Killer触发 当系统内存耗尽时内核会尝试回收可用内存。如果内存仍然不足内核将触发OOM Killer来选择并终止进程以释放内存。OOM Killer的主要目的是确保系统不至于完全崩溃而是通过释放内存来维持运行。 3. 选择被杀进程的策略 OOM Killer选择被杀进程的策略涉及多个因素包括 进程的OOM得分每个进程都有一个OOM得分oom_score表示该进程被杀的优先级。OOM得分越高进程越有可能被杀。进程的内存使用量使用内存越多的进程更有可能被选中。进程的优先级调整可以通过调整进程的oom_adj或oom_score_adj值来改变其OOM得分从而影响被杀优先级。 4. 内存回收机制 Linux内核通过多种机制进行内存回收包括 页面回收回收不常用的页面将其写回磁盘或释放。文件缓存回收回收文件系统缓存释放更多内存给应用程序使用。交换空间将内存页交换到磁盘上的交换空间swap以释放物理内存。 5. 内存分配策略 Linux内核使用多种内存分配策略包括伙伴系统、slab分配器等以提高内存分配和回收的效率。当内存不足时内核会使用这些策略来尽可能满足内存分配请求。 三、OOM Killer的工作机制 1. 内存压力监测 内核会持续监测系统的内存使用情况特别是LowMem区域。当LowMem区域的可用内存达到一个临界点时内核会认为系统处于内存压力状态并开始采取措施。 2. 触发条件 OOM Killer的触发条件主要有两个 LowMem耗尽当LowMem区域的可用内存不足无法满足内核的内存分配请求时OOM Killer会被触发。系统内存耗尽当系统整体内存耗尽无法通过正常的内存回收机制释放足够的内存时OOM Killer会被触发。 3. 选择被杀进程 当OOM Killer被触发时内核会计算每个进程的OOM得分并选择得分最高的进程进行终止。计算OOM得分的因素包括 内存使用量使用内存越多的进程得分越高。进程优先级通过oom_adj或oom_score_adj调整的优先级。进程类型系统关键进程如init进程通常不会被选择。 4. 终止进程 内核会向选择的进程发送SIGKILL信号强制终止该进程并释放其占用的内存。被终止的进程及其内存释放信息会记录在系统日志中。 四、实际场景举例 场景一系统内存耗尽时的OOM Killer触发 假设有一个高负载的服务器运行多个内存密集型应用。当所有应用同时消耗大量内存时系统内存耗尽。此时OOM Killer触发并在/var/log/messages日志文件中记录如下信息 Out of Memory: Killed process 1234 (myapp) total-vm:512000kB, anon-rss:256000kB, file-rss:128000kB, shmem-rss:64000kB此信息表明进程myappPID为1234被OOM Killer终止以释放512 MB的虚拟内存。 场景二LowMem耗尽导致OOM Killer触发 在32位系统中LowMem区域是内核直接访问的内存。如果LowMem耗尽即使HighMem还有可用内存OOM Killer也会触发。例如运行以下命令查看LowMem和HighMem的状态 egrep High|Low /proc/meminfo输出结果 HighTotal: 5111780 kB HighFree: 1172 kB LowTotal: 795688 kB LowFree: 16788 kB此时LowMem只有16 MB可用内存而HighMem还有1.1 GB。若内核需要分配更多LowMem而没有足够空间OOM Killer将会触发终止一些进程以释放LowMem。 场景三特定进程优先被杀 某些应用程序的内存使用非常高但不是系统关键进程。在内存紧张时可以通过调整oom_score_adj值提高这些进程的OOM得分使其优先被杀。例如将一个非关键进程的oom_score_adj值设置为10 echo 10 /proc/[pid]/oom_score_adj当系统内存耗尽时这个进程将优先被OOM Killer终止。 场景四保护关键进程 对于一些关键进程可以通过设置oom_score_adj值为-17使其在内存紧张时不会被OOM Killer杀死。例如 echo -17 /proc/[pid]/oom_score_adj这样即使系统内存耗尽该进程也不会被终止。 五、优化和解决方案 1. 升级到64位系统 最有效的解决方案是升级到64位系统。在64位系统中所有内存都属于LowMem可以避免32位系统中LowMem耗尽的问题。如果升级64位系统不可行可以尝试以下方法 2. 使用hugemem内核 hugemem内核通过不同的方式划分LowMem和HighMem并提供更多LowMem到HighMem的映射。安装hugemem内核后系统会有更多的LowMem可用。 安装hugemem内核 yum install kernel-hugemem reboot3. 调整内核参数 通过调整/proc/sys/vm/lower_zone_protection的值增加LowMem的保护级别。该参数从2.6.x内核开始可用可以通过以下方式设置 echo 250 /proc/sys/vm/lower_zone_protection在/etc/sysctl.conf中添加设置以便启动时生效 vm.lower_zone_protection 2504. 关闭OOM Killer风险较高 关闭OOM Killer可以避免进程被自动终止但可能导致系统挂起因此需谨慎使用 echo 0 /proc/sys/vm/oom-kill查看当前OOM Killer状态 cat /proc/sys/vm/oom-kill5. 配置内核参数以自动重启系统 在/etc/sysctl.conf中添加以下配置使系统在Out of Memory后自动重启 vm.panic_on_oom 1 kernel.panic 10执行以下命令应用配置 sysctl -p调整进程的oom_score_adj值 可以通过调整进程的oom_score_adj值来保护关键进程或优先终止非关键进程。例如 保护关键进程 echo -17 /proc/[pid]/oom_score_adj优先终止非关键进程 echo 10 /proc/[pid]/oom_score_adj六、总结 Linux OOM Killer是一种重要的内存保护机制在系统内存耗尽时通过终止进程来释放内存确保系统继续运行。理解OOM Killer的技术原理、工作机制和配置方法有助于优化系统内存管理避免内存不足导致的系统崩溃。在实际应用中可以通过升级64位系统、使用hugemem内核、调整内核参数等方法优化内存使用提升系统稳定性。通过合理配置OOM Killer保护关键进程优先终止非关键进程可以有效地管理系统内存提高系统的可靠性和可用性。 在日常运维和开发过程中熟悉并掌握OOM Killer的配置和优化技巧可以帮助我们更好地应对内存紧张的情况保证系统和应用的稳定运行。
http://www.dnsts.com.cn/news/196970.html

相关文章:

  • 网站转备案长春制作网站定制
  • 请写出网站建设的整个过程做公益活动的网站
  • 网站二维码悬浮台州自助建站公司
  • 文化传播公司网站模板wordpress 判断是否为首页
  • 淘宝客网站如何做网站设计公司营销crm系统
  • 网站一般字体成都网站建设开
  • 官方网站建设维护合作协议五里坨网站建设
  • 外贸网站建设软件有哪些wordpress 注册用户 邮件
  • 格朗图手表网站临沂做网站首选
  • 做网站需要哪些条件谷歌三件套下载
  • 网站搭建多少钱徐州百都网络非常好做一个交易平台网站的成本
  • 网站以个人名义备案万网续费登录网站
  • 建设银行面试经验网站弘泽建设集团网站
  • 有了域名怎么建网站联系方式全国装修公司排名
  • 太原网站建设制作报价wordpress首页加图片
  • 资金盘网站开发公司哪里好网站备案信息查询
  • 免费建站自助建站网站建设教程网站建设教程百度公司招聘岗位
  • 做物流的网站都有什么如何在淘宝上接单网站建设
  • 天津武清做网站的公司建设工程施工合同无效
  • 站长工具ip地址查询凡科网页版登陆入口
  • 网站seo 教程wordpress设置先登录再进入
  • php 网站下载器wordpress 自定义目录结构
  • 做国外进口衣服的网站好代理公司注册协议书
  • 全包网站有哪些调查网站可以做兼职
  • 子网站建设的好处wordpress 正在建设插件
  • 西宁网站建设公司做网站 图片显示不出来
  • 株洲做网站公司如何给网站做app
  • 高端网站开发哪家专业宁乡小程序开发
  • WordPress建站 用插件宁波网站推广制作公司
  • 网站设计机构建设银行 访问的网站出错