gpt4 book ai didi

linux - 这个shell脚本有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:23 25 4
gpt4 key购买 nike

#! /bin/bash
#
# clear_ram.sh - Clear as much user-space ram as possible
# (until the OOM_killer gets us)
#

swapoff -a
mem=$(free -b | grep Mem | awk '{print $2}')
mount none -t tmpfs -o size=$mem /tmp
dd if=/dev/zero of=/tmp/zero.dat bs=1M &
echo "17" > /proc/$(pidof dd)/oomadj
while (pidof dd); do kill -USR1 $(pidof dd); done

这是一个 shell 脚本。这段代码的作用是什么?

不是家庭作业

最佳答案

这个脚本

  • 停用交换
  • 获取 RAM 量(以字节为单位)
  • 安装与可用 RAM 相等的 ramdisk
  • 通过 dd 将零写入 ramdisk
  • 尝试将 dd 进程设置为内存不足 killer 的首选进程
  • 打印 dd 的进程 ID 及其当前状态(只要它保持运行)

我说“尝试”是因为它应该写入 oom_adj 而不是 oomadj,至少对于最近的内核来说是这样,而且最大值是 15 而不是 17。

这里还有一个错误,因为它会打印所有执行dd的PID和状态,而不仅仅是脚本中的。

正如评论所说,最终内核内存不足 killer 将杀死该进程。

我很确定这是一件愚蠢的事情。我不知道为什么您实际上需要以这种方式将内存归零。

关于linux - 这个shell脚本有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com