首页 > 系统相关 >内存压力及IO压力调整方法

内存压力及IO压力调整方法

时间:2024-10-24 10:50:43浏览次数:6  
标签:shell system devices echo sys adb 内存 IO 压力

adb shell stop thermald
adb shell stop thermal-engine
adb shell "echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus"
adb shell "echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus"
adb shell "echo 1 > /sys/devices/system/cpu/cpu1/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu2/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu3/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu4/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu5/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu6/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu7/online"
adb shell "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor"
adb shell "echo 1 > /sys/module/lpm_levels/parameters/sleep_disabled"

性能拉满。

EMMC

echo 0 > /sys/class/mmc_host/mmcX/clk_scaling/enable

UFS

echo 0 > /sys/class/scsi_host/host0/../../../clkscale_enable

如何避免page cache过多及memfree过少的方法

在 Linux 系统中,避免出现内存不足 (memfree 过小) 和缓存 (cache) 过多从而引发的 I/O 压力,可以采取以下几种措施:

1. 调整 vm.swappiness

swappiness 决定了系统将内存页交换到磁盘的频率。值越高,系统越倾向于使用交换空间,而不是清理缓存。降低 swappiness 可以减少系统使用交换空间的频率,使更多的内存用于缓存,但需要在 I/O 压力较小时谨慎调整。

通过 sysctl 设置:

sysctl -w vm.swappiness=10

或通过修改 /etc/sysctl.conf 持久化:

echo "vm.swappiness = 10" >> /etc/sysctl.conf

2. 调整 vm.vfs_cache_pressure

vfs_cache_pressure 参数控制系统回收 inode 和 dentry 缓存的力度。较大的值会导致系统更频繁地回收缓存,减小该值可以保留更多的缓存,降低 I/O 压力。

调整方式:

sysctl -w vm.vfs_cache_pressure=50

3. 设定 vm.min_free_kbytes

min_free_kbytes 决定系统为避免内存过度分配而保留的最小可用内存量。将此值设定为一个合适的值,可以保证系统在发生内存短缺前采取措施。

例如:

sysctl -w vm.min_free_kbytes=65536

4. 使用 cgroup 限制 I/O 和内存

通过 cgroup,可以为特定的进程组设置内存和 I/O 限制,防止某些进程占用过多的缓存或内存资源,进而影响系统的整体性能。

限制内存使用

echo "<memory_limit_in_bytes>" > /sys/fs/cgroup/memory/<group_name>/memory.limit_in_bytes

限制块设备 I/O

echo "<read/write limit>" > /sys/fs/cgroup/blkio/<group_name>/blkio.throttle.read_bps_device

5. 优化缓存回收机制

可以通过调整 drop_caches 来手动释放缓存,不过这通常只作为应急处理方案。

sync && echo 3 > /proc/sys/vm/drop_caches

6. 调整 dirty_ratio 和 dirty_background_ratio

dirty_ratio 和 dirty_background_ratio 控制系统将脏页写入磁盘的时机。较高的 dirty_ratio 可能导致更多的数据缓存在内存中,延迟了写入磁盘的操作。在 I/O 压力较大时,减小这些值可以减少系统写入突发的情况。

sysctl -w vm.dirty_ratio=20

sysctl -w vm.dirty_background_ratio=5

通过这些方法可以较好地平衡内存和缓存的使用,避免出现因为缓存过多和内存不足导致的 I/O 压力。

标签:shell,system,devices,echo,sys,adb,内存,IO,压力
From: https://www.cnblogs.com/linhaostudy/p/18499137

相关文章

  • FEE-Frontiers in Ecology and Evolution
    @目录一、征稿简介二、重要信息三、服务简述四、投稿须知一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述FrontiersinEcologyandEvolution是一本经同行评议的基础科学和应用科学研究期刊,为自然和人类世界提供生态学和进化的见解。四、投稿须......
  • [图像处理] 基于CleanVision库清洗图像数据集
    CleanVision是一个开源的Python库,旨在帮助用户自动检测图像数据集中可能影响机器学习项目的常见问题。该库被设计为计算机视觉项目的初步工具,以便在应用机器学习之前发现并解决数据集中的问题。CleanVision的核心功能包括检测完全重复、近似重复、模糊、低信息量、过暗、过亮、灰......
  • 2024年计算机科学与智能算法国际论坛(CSIA 2024) 2024 International Symposium on C
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍2024年计算机科学与智能算法国际论坛(CSIA2024)将作为主会议第六届智能控制、测......
  • iOS开发框架--AFNetwork
    AFNetworking是一个强大的网络库,专为iOS和macOS开发而设计,旨在简化网络请求和响应处理。它基于NSURLSession提供了一套简洁易用的API,广泛用于处理网络通信。以下是AFNetworking的详细介绍,包括其主要功能、使用方法和架构。主要功能简化的网络请求:提供了简单的接口来......
  • 4- LIO SAM+ Move_base 实现自主导航
    在前面的工作中,我们成功使用了gmapping+move_base实现自主导航,并且成功在仿真环境中运行了liosam,今天打算结合,采用LIO-SAM建图和定位,move_base实现导航。大致内容如下:仿真环境准备在之前的内容中,已经介绍了仿真实验环境怎么搭建,具体可以参考链接:https://www.cnblogs.com/binb......
  • 2024年资源勘探与地下工程技术国际论坛 (REUET 2024) 2024 International Symposium
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍2024年资源勘探与地下工程技术国际论坛(REUET2024)将作为主会议第六届智能控制......
  • 从零开始实现WEB自动化 - Chrome Extention
    上篇我们说到用ChromeExtention的方式实现WEB自动化操作,我们以Chrome浏览器插件API为标准开发,后续在插件移植也非常的方便,可以把插件分发到各个浏览器市场,让其安装。准备复制第一篇初探的代码,在VisualStudioCode中打开,后续此代码作为我们第一阶段开发的基础功能清单首......
  • 自动化测试工具Ranorex Studio(十三)-录制过程中
    点击“录制”按钮来触发创建一个新的录制模块。 图:点击“Record”开始录制点击录制按钮后,Ranorex会在正式录制之前协助你运行一个应用程序,打开浏览器浏览导航到特定的URL或打开移动设备上的应用程序。因此,像双击桌面快捷方式图标这样的操作就没有必要录制了。通过选择’gl......
  • Cookie、Session、Token三者的区别
    在数字世界的茫茫人海中,每一次点击、每一次登录,都伴随着身份认证与数据安全的较量。今天咱要来一场惊心动魄的技术探秘之旅,今天我要带你深入探索Web开发中那三个绕不开的名字——Cookie、Session、Token,它们不仅仅是技术名词,更是构建安全、高效用户交互的基石,看看它们在接口鉴权、......
  • 数据库事务耗时过长导致Could not retrieve transaction read-only status from serve
    背景 [11-0602:02:09:005][ERROR]-DruidDataSource-discardconnectionjava.sql.SQLException:Couldnotretrievetransactionread-onlystatusfromserverCausedby:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communicationslinkfailure......