当前位置: 首页> 文旅> 旅游 > 手机助手_android开发基础_信息流广告投放工作内容_seo技术助理

手机助手_android开发基础_信息流广告投放工作内容_seo技术助理

时间:2025/8/27 4:49:36来源:https://blog.csdn.net/PANSS__/article/details/145997619 浏览次数:0次
手机助手_android开发基础_信息流广告投放工作内容_seo技术助理

目录

一、引言

二、解决

第一步:查看日志,确认问题

第二步:解决方法

第一种:增加交换空间

第二种:调整内存分配策略


一、引言

  • 简要描述问题:在跑代码时,程序突然被终止,命令行提示 "Killed"。

  • 这个问题通常是由于系统内存不足,触发了 Linux 的 OOM Killer 机制。

  • 本文将分享如何通过查看日志、增加交换空间、调整内存分配策略等方法解决这个问题。

二、解决

第一步:查看日志,确认问题

使用dmesg查看系统日志

sudo dmesg | grep -i "killed"

如果有看到 Out of memory  可以确定是内存不足的问题

第二步:解决方法

第一种:增加交换空间

什么是交换空间?

  • 交换空间是磁盘上的一块区域,当物理内存不足时,系统会将部分内存数据转移到交换空间,以腾出物理内存。

  • 虽然交换空间的速度比物理内存慢,但可以避免程序因内存不足而被终止。

如何增加交换空间?

1.创建交换文件 (大小为20G)

sudo fallocate -l 20G /swapfile_new

2.设置权限

sudo chmod 600 /swapfile_new

3.格式化为交换空间

sudo mkswap /swapfile_new

4.启用交换文件

sudo swapon /swapfile_new

5.验证交换空间

sudo swapon --show
free -h

6.永久生效

编辑/etc/fstab文件,添加以下内容

/swapfile_new none swap sw 0 0

【扩展】详细步骤

在编辑之前,最好先备份/etc/fstab文件,以防操作失误导致系统无法启动

sudo cp /etc/fstab /etc/fstab.backup

使用nano文本编辑器打开/etc/fstab文件

sudo nano /etc/fstab

添加文件交换配置(在文末添加)

/swapfile_new none swap sw 0 0

其中

  • /swapfile_new:你创建的交换文件的路径。

  • none:表示没有挂载点。

  • swap:表示文件类型为交换空间。

  • sw:表示挂载选项为 swap

  • 0 0:表示不进行文件系统检查和备份。

验证/etc/fstab文件(检查是否有语法错误)

sudo mount -a

如果没有错误提示,则说明文件编辑成功

第二种:调整内存分配策略

当系统内存不足时,Linux 内核会通过 OOM Killer 终止占用内存最多的进程。为了避免这种情况,可以通过调整内存分配策略来优化系统的内存管理。

具体来说,可以通过修改以下两个内核参数来实现:

  1. vm.overcommit_memory:控制系统的内存分配策略。

  2. vm.overcommit_ratio:定义允许分配的内存总量。

参数说明

vm.overcommit_memory

  • 0(默认值):启发式超额分配。

    • 系统会尝试估算可用内存,并根据一定的策略决定是否允许内存分配。

    • 如果系统认为内存不足,可能会拒绝某些内存分配请求。

  • 1:总是允许超额分配。

    • 系统总是允许内存分配,即使当前内存不足。

    • 这可能会导致系统在内存耗尽时触发 OOM Killer 来终止进程。

  • 2:禁止超额分配。

    • 系统会拒绝超过一定比例的内存分配请求,比例由 overcommit_ratio 决定。

    • 允许分配的内存总量为:物理内存 × overcommit_ratio% + 交换空间

vm.overcommit_ratio

  • 当 vm.overcommit_memory=2 时,定义系统允许分配的内存总量。

  • 默认值通常是 50(即 50%)。

如何调整参数?

临时调整(重启后失效)【建议】

sudo sysctl vm.overcommit_memory=2

sudo sysctl vm.overcommit_ratio=98

注:参数值根据情况进行设定

永久调整(重启后依旧生效)

如果你希望调整后的参数在系统重启后依然生效,可以编辑 /etc/sysctl.conf 文件

打开 /etc/sysctl.conf 文件:

sudo nano /etc/sysctl.conf

在文件末尾添加以下内容:

vm.overcommit_memory=2
vm.overcommit_ratio=98

保存并退出编辑器

运行以下命令使配置生效:

sudo sysctl -p

验证参数是否生效

cat /proc/sys/vm/overcommit_memory
cat /proc/sys/vm/overcommit_ratio

关键字:手机助手_android开发基础_信息流广告投放工作内容_seo技术助理

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: