专注江苏网站建设电子商务网站建设需要什么

张小明 2026/1/10 15:24:25
专注江苏网站建设,电子商务网站建设需要什么,直播网站开发源码,杭州百度优化背景#xff1a; 日常的业务应用中#xff0c;可能因为应用本身的可靠性问题导致内存泄漏#xff0c;把机器搞挂#xff0c;影响服务器中其他业务运行。这篇文档主要是简单介绍下 Linux 内核OOM killer功能#xff0c;以及我们可以通过sytemd来限制服务的资源使用#x…背景日常的业务应用中可能因为应用本身的可靠性问题导致内存泄漏把机器搞挂影响服务器中其他业务运行。这篇文档主要是简单介绍下 Linux 内核OOM killer功能以及我们可以通过sytemd来限制服务的资源使用避免服务一直去占用内存导致服务器内存被耗尽。关于OOM killerOOM Killer 是 linux 内核在系统内存严重不足时使用的进程。出现这种情况是因为 linux 内核为其进程分配了过多的内存。当一个进程启动时它会向内核请求一块内存。这个初始请求通常是一个很大的请求进程不会立即或实际上永远不会使用所有请求。内核意识到进程请求冗余内存的这种趋势会过度分配系统内存。这意味着当系统具有例如 2GB 的 RAM 时内核可能会为进程分配 2.5GB。通常这种情况不会导致问题。但是如果有足够多的进程开始使用它们请求的所有内存块那么将没有足够的物理内存来支持它们。这意味着正在运行的进程需要比物理可用更多的内存。这种情况很严重必须立即解决。linux内核采用的解决方案是调用OOM Killer来检查所有正在运行的进程并杀死其中一个或多个以释放系统内存并保持系统运行内核选择要杀死的进程的原则 找到在短时间内占用大量内存的 进程这些进程一般都是导致内存泄漏的罪魁祸首。badness_for_task total_vm_for_task / (sqrt(cpu_time_in_seconds) * sqrt(sqrt(cpu_time_in_minutes)))可以通过 cat /proc/$PID/oom_score 来查看进程的 scoreOut of memory: Kill process 1245 (test4) score 930 or sacrifice child系统上关于OOM相关的一些sysctl配置vm.panic_on_oomoom时重启系统0 为不重启1 为重启。部分情况下机器上只跑了一个关键服务希望oom后重启机器来恢复业务可以设置为重启。 默认为0vm.panic_on_oom1vm.oom_dump_tasks允许内核在oom的时候转储进程信息pid,vm大小score分数,进程名称等默认是允许的。 如果系统上有非常多的进程这里打开可能会有系统性能损耗。默认为1 。 https://sysctl-explorer.net/vm/oom_dump_tasks/vm.oom_dump_tasks1vm.oom_kill_allocating_task如果将其设置为零OOM killer 将扫描整个任务列表并根据打分选择要杀死的任务。这通常会选择一个流氓内存占用任务该任务在被杀死时会释放大量内存。如果将其设置为非零OOM 杀手只会杀死触发内存不足情况的任务。 默认是0 。 https://sysctl-explorer.net/vm/oom_kill_allocating_task/vm.oom_kill_allocating_task0vm.overcommit_memoryhttps://sysctl-explorer.net/vm/overcommit_memory/vm.overcommit_memory 0当此标志为 0 时内核尝试估计用户空间请求更多内存时剩余的空闲内存量。当这个标志为 1 时内核假装总是有足够的内存直到它实际用完。当此标志为 2 时内核使用“从不过度使用”策略来尝试防止任何内存过度使用默认是0资源监控vmstatsarsystemd/cgroup 资源监控管理systemd-cgls 指令根据 cgroup 将运行的进程分组来同时实现两者。 要显示您系统中的全部 cgroup 层级systemd-cgls查看 memory 资源管控器的 cgroup 树systemd-cgls memorysystemd-cgls cpusystemd-cgls devices要查看按资源使用量CPU、内存和 IO排序的、正在运行的 cgroup 动态描述请使用 systemd-cgtopslice: 控制组单元配置以 .slice 为后缀的单元文件用于封装管理一组进程资源占用的控制组的 slice 单元。slice 单元用于包含其他管理进程的单元(一般是 scope 与 service 单元)。 对 slice 单元施加的资源限制将会作用于此 slice 单元所包含的全部进程的集合。 全部的 slice 单元按照树形层次结构组成一棵资源控制树。 slice 单元的名称由一系列-连接的字符串组成对应着该单元在资源控制树层次结构中的位置。 根 slice 单元的名称固定为 -.slice 。例如 foo-bar.slice 是位于 foo.slice 之下的单元 而 foo.slice 则位于根 -.slice 之下。默认情况下所有 service 与 scope 单元都位于 system.slice 之中所有由 systemd-logind.service处理的用户会话都位于 user.slice 之中。使用systemd-run临时创建cgroupsystemd-run可用于创建和启动瞬态的service/timer/scope。并在其中运行指定的命令。systemd-run --unittest --scope --slicejkksl sleep 20systemd-run --unittest --slicejkksl --remain-after-exit sleep 20systemd-run --unittest --remain-after-exit sleep 20 [常用]systemd-run sleep 20--unit 指定unit 名称不加的话会自动生成一个[rootTEST system-generators]# systemd-run sleep 789 Running as unit run-9864.service. [rootJKK-ASSIST-TEST system-generators]# systemctl status run-9864 ● run-9864.service - /usr/bin/sleep 789 Loaded: loaded (/run/systemd/system/run-9864.service; static; vendor preset: disabled) Drop-In: /run/systemd/system/run-9864.service.d └─50-Description.conf, 50-ExecStart.conf Active: active (running) since 日 2022-02-27 17:03:34 CST; 9s ago Main PID: 9865 (sleep) CGroup: /system.slice/run-9864.service └─9865 /usr/bin/sleep 789 2月 27 17:03:34 TEST systemd[1]: Started /usr/bin/sleep 789.--scope 创造一个过渡期。范围单位而不是默认的瞬态。服务单位 不指定的默认是在system.slice 下。--slice 创建一个新的.service或者.scope unit来替代system.slice临时 cgroup 所包含的进程一旦结束临时 cgroup 就会被自动释放。通过将 --remain-after-exit 选项传递给 systemd-run您可以在其进程结束后让单位继续运行来收集运行时的信息永久的创建cgroup 创建修改.servicesystemd-cgls 命令默认显示整体cgroup层级cgroup 树的最高层由 slice 构成systemd-cgls 后面可以加上参数显示cgroup层级特定部分systemd-cgls cpu systemd-cgls memory systemd-cgls devices查看特定进程的cgroup信息cat proc/PID/cgroup监控资源消耗量systemd-cgtop#include stdio.h #include stdlib.h #include string.h #include unistd.h #define KB (1024) #define MB (1024 * KB) #define GB (1024 * MB) int main() { while(1) { void *m malloc(KB); memset(m,0,KB); sleep(0.1); } return 0; }[Unit] Descriptioncgroup demo test Beforeshutdown.target Conflictsshutdown.target [Service] ExecStart/root/test RemainAfterExityes MemoryLimit800M TimeoutSec0应用内存达到限制后会被systemd killsystemd[1]: cgtest.service: Main process exited, codekilled, status9/KILL资料链接《ook-killer》https://www.kernel.org/doc/gorman/html/understand/understand016.htmlhttps://www.oracle.com/technical-resources/articles/it-infrastructure/dev-oom-killer.html《redhat 7资源管理指南》https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/resource_management_guide/index
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

企业网站合同卫浴洁具网站模板

第一章:Open-AutoGLM 快捷键配置的核心价值在现代开发环境中,效率直接决定生产力。Open-AutoGLM 作为一款智能化代码生成工具,其快捷键配置不仅提升了操作速度,更深度整合了开发者的工作流,实现从命令触发到语义补全的…

张小明 2025/12/31 4:02:00 网站建设

网站怎么做桌面快速链接长春网站建设公司十佳

外卖订单自动化采集系统:美团饿了么数据抓取完整解决方案 【免费下载链接】waimai-crawler 外卖爬虫,定时自动抓取三大外卖平台上商家订单,平台目前包括:美团,饿了么,百度外卖 项目地址: https://gitcode…

张小明 2025/12/31 4:01:15 网站建设

新网站 百度推广wordpress安装流程图

一、方法一:暴力。1.思路:先枚举下标i,再枚举下标j,然后判断nums[i] nums[j] target。2.复杂度分析:(1)时间复杂度:O(n^2),两层for循环,其中n为nums的长度。…

张小明 2025/12/31 4:01:17 网站建设

网页模板好的网站好环保网站主题

3步搞定智能图像分割:从文字描述到像素级精度的蜕变之旅 【免费下载链接】GroundingDINO 论文 Grounding DINO: 将DINO与基于地面的预训练结合用于开放式目标检测 的官方实现。 项目地址: https://gitcode.com/GitHub_Trending/gr/GroundingDINO 你是否曾因无…

张小明 2025/12/31 4:01:18 网站建设

dede手机网站更新网站seo在线优化

黄河科技学院毕业设计课题申报表课题名称基于大数据分析的餐饮食材库优化与成本管理系统的设计课题来源根据下面注释填汉字,如“教师拟订”课题类型根据注释填字母,如BX指导教师技术职务工作单位工学部XX科教中心(如果是外单位,写自己的单位名…

张小明 2025/12/31 4:01:19 网站建设

大气集团网站模板关于网站设计的书籍

导语 【免费下载链接】instinct 项目地址: https://ai.gitcode.com/hf_mirrors/continuedev/instinct Instinct作为Continue公司基于Qwen2.5-Coder-7B开发的开源代码编辑模型,凭借其高效本地部署能力和智能代码补全功能,正在改变开发者的编程方式…

张小明 2025/12/31 4:01:18 网站建设