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