原贴由
PureMotive
好的家伙,我只是想我会给您我国防部为实现良好大电池寿命。这是我在国歌 ™ 提供了给我 50 + 小时充一次电使用的 mod。随意将其包括在您自己的 ROM 不管。请给信贷或感谢
在 7zip 中打开您的 ROM.zip (或不管叫做) (Windows) 或 Betterzip (OSX) 和定位
在 /system/etc sysctl.conf
如果不是在此目录中,创建它。
第 2 步
在 sysctl.conf 文件中,粘贴以下代码并将其保存。
代码:
#sysctl.conf filefs.nr_open=1053696;fs.inotify.max_queued_events=32000;fs.inotify.max_user_instances=256;fs.inotify.max_user_watches=10240;fs.lease-break-time=10;fs.file-max=165164;kernel.threads-max=525810;kernel.random.write_wakeup_threshold=256;kernel.random.read_wakeup_threshold=128;kernel.panic=5;kernel.sched_compat_yield=1;kernel.panic=0;kernel.panic_on_oops=1;kernel.msgmni=2048;kernel.msgmax=64000;kernel.shmmni=4096;kernel.shmall=2097152;kernel.shmmax=268435456;kernel.sem='500 512000 64 2048';kernel.sched_features=24189;kernel.hung_task_timeout_secs=30;kernel.sched_latency_ns=18000000;kernel.sched_min_granularity_ns=1500000;kernel.sched_wakeup_granularity_ns=3000000;kernel.sched_shares_ratelimit=256000;kernel.sched_child_runs_first=0;fs.lease-break-time=10;fs.file-max=65536;net.core.wmem_max=524288;net.core.rmem_max=524288;net.core.rmem_default=262144;net.core.wmem_default=262144;net.core.optmem_max=20480;net.unix.max_dgram_qlen=50;net.ipv4.tcp_keepalive_time=900;net.ipv4.tcp_keepalive_probes=5;net.ipv4.tcp_keepalive_intvl=156;net.ipv4.tcp_timestamps=0;net.ipv4.tcp_sack=1;net.ipv4.tcp_fack=1;net.ipv4.tcp_window_scaling=1;net.ipv4.tcp_tw_recycle=1;net.ipv4.tcp_tw_reuse=1;net.ipv4.tcp_congestion_control=cubic;net.ipv4.tcp_syncookies=1;net.ipv4.conf.all.rp_filter=1;net.ipv4.conf.default.rp_filter=1;net.ipv4.tcp_synack_retries=2;net.ipv4.tcp_syn_retries=2;net.ipv4.tcp_max_syn_backlog=1024;net.ipv4.tcp_max_tw_buckets=16384;net.ipv4.icmp_echo_ignore_all=1;net.ipv4.icmp_ignore_bogus_error_responses=1;net.ipv4.tcp_no_metrics_save=1;net.ipv4.tcp_fin_timeout=15;net.ipv4.tcp_keepalive_intvl=30;net.ipv4.tcp_keepalive_probes=5;net.ipv4.tcp_keepalive_time=1800;net.ipv4.ip_forward=0;net.ipv4.conf.default.accept_source_route=0 ;net.ipv4.conf.all.accept_source_route=0;net.ipv4.conf.all.accept_redirects=0;net.ipv4.conf.default.accept_redirects=0;net.ipv4.conf.all.secure_redirects=0;net.ipv4.conf.default.secure_redirects=0;net.ipv4.udp_rmem_min=6144;net.ipv4.udp_wmem_min=6144;net.ipv4.tcp_rfc1337=1;net.ipv4.ip_no_pmtu_disc=0;net.ipv4.tcp_ecn=0;net.ipv4.route.flush=1;net.ipv4.tcp_rmem='6144 87380 524288';net.ipv4.tcp_wmem='6144 87380 524288';net.ipv6.conf.default.use_tempaddr=2;net.ipv6.conf.all.use_tempaddr=2;net.ipv6.conf.all.temp_prefered_lft=3600;net.ipv6.conf.default.temp_prefered_lft=3600;vm.dirty_ratio=90;vm.dirty_background_ratio=80;vm.oom_kill_allocating_task=1;vm.overcommit_memory=1;vm.page-cluster=3;vm.drop_caches=3;vm.min_free_kbytes=4096;vm.panic_on_oom=0;vm.dirty_expire_centisecs=1000;vm.dirty_writeback_centisecs=2000;vm.oom_kill_allocating_task=0;vm.vfs_cache_pressure=10;vm.min_free_order_shift=4;vm.laptop_mode=0;vm.block_dump=0;
报价:
如果上面的代码不能为您,请尝试这一个。它已被删除的分号。小小的感谢
代码:
#sysctl.conf filefs.nr_open=1053696fs.inotify.max_queued_events=32000fs.inotify.max_user_instances=256fs.inotify.max_user_watches=10240fs.lease-break-time=10fs.file-max=165164kernel.threads-max=525810kernel.random.write_wakeup_threshold=256kernel.random.read_wakeup_threshold=128kernel.panic=5kernel.sched_compat_yield=1kernel.panic=0kernel.panic_on_oops=1kernel.msgmni=2048kernel.msgmax=64000kernel.shmmni=4096kernel.shmall=2097152kernel.shmmax=268435456kernel.sem='500 512000 64 2048'kernel.sched_features=24189kernel.hung_task_timeout_secs=30kernel.sched_latency_ns=18000000kernel.sched_min_granularity_ns=1500000kernel.sched_wakeup_granularity_ns=3000000kernel.sched_shares_ratelimit=256000kernel.sched_child_runs_first=0fs.lease-break-time=10fs.file-max=65536net.core.wmem_max=524288net.core.rmem_max=524288net.core.rmem_default=262144net.core.wmem_default=262144net.core.optmem_max=20480net.unix.max_dgram_qlen=50net.ipv4.tcp_keepalive_time=900net.ipv4.tcp_keepalive_probes=5net.ipv4.tcp_keepalive_intvl=156net.ipv4.tcp_timestamps=0net.ipv4.tcp_sack=1net.ipv4.tcp_fack=1net.ipv4.tcp_window_scaling=1net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_congestion_control=cubicnet.ipv4.tcp_syncookies=1net.ipv4.conf.all.rp_filter=1net.ipv4.conf.default.rp_filter=1net.ipv4.tcp_synack_retries=2net.ipv4.tcp_syn_retries=2net.ipv4.tcp_max_syn_backlog=1024net.ipv4.tcp_max_tw_buckets=16384net.ipv4.icmp_echo_ignore_all=1net.ipv4.icmp_ignore_bogus_error_responses=1net.ipv4.tcp_no_metrics_save=1net.ipv4.tcp_fin_timeout=15net.ipv4.tcp_keepalive_intvl=30net.ipv4.tcp_keepalive_probes=5net.ipv4.tcp_keepalive_time=1800net.ipv4.ip_forward=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.all.accept_source_route=0net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.default.accept_redirects=0net.ipv4.conf.all.secure_redirects=0net.ipv4.conf.default.secure_redirects=0net.ipv4.udp_rmem_min=6144net.ipv4.udp_wmem_min=6144net.ipv4.tcp_rfc1337=1net.ipv4.ip_no_pmtu_disc=0net.ipv4.tcp_ecn=0net.ipv4.route.flush=1net.ipv4.tcp_rmem='6144 87380 524288'net.ipv4.tcp_wmem='6144 87380 524288'net.ipv6.conf.default.use_tempaddr=2net.ipv6.conf.all.use_tempaddr=2net.ipv6.conf.all.temp_prefered_lft=3600net.ipv6.conf.default.temp_prefered_lft=3600vm.dirty_ratio=90vm.dirty_background_ratio=80vm.oom_kill_allocating_task=1vm.overcommit_memory=1vm.page-cluster=3vm.drop_caches=3vm.min_free_kbytes=4096vm.panic_on_oom=0vm.dirty_expire_centisecs=1000vm.dirty_writeback_centisecs=2000vm.oom_kill_allocating_task=0vm.vfs_cache_pressure=10vm.min_free_order_shift=4vm.laptop_mode=0vm.block_dump=0
第 3 步
现在,我们需要启用它。所以,定位到 /system/etc/init.d,用下面的代码创建一个文件:
代码:
#!/system/bin/sh# grep sysctl /etc/init.d/*# Load /sys/etc/sysctl.confsysctl -p
sysctl-p是什么初始化代码。
保存您的文件。
注:你的 ROM 必须支持 init.d。您可以通过使用 dsixda 的 android 厨房
第 4 步
保存你的 ROM 并安装它通过恢复
或
只可将文件推入您当前 ROM 和试用它们。
第 5 步
运行该脚本在终端仿真器中输入下面的代码
代码:
susysctl -p
是真的要运行该脚本所需的全部。所以在这里是一些更多的选项:
好了,那么到底什么是 sysctl.conf 吗?
Sysctl.conf 是"sysctl"这是一个用于动态更改内核参数在 Linux 操作系统中的接口的配置文件。配置文件中包含下列元素、 vm.min_free_kbytes、 vm.dirty_ratio、 vm.dirty_backgroud_ratio、 vm.vfs_cache_pressure、 vm.oom_kill_allocating_task。有很多其他元素在文件中,但我们将会主要集中于这些具体 (vm 前缀站为虚拟内存)。Sysctl.conf 文件应位于 /etc 下 (/ 系统/等),在默认情况下。若要启用它需要你的 ROM 要执行"sysctl-p"在启动过程中的某个位置 (或不久之后)。我们还将讨论如何启用它,如果它不这样做。您还可以运行 sysctl-p 手动,使其操作系统启动后的任何时间。
现在,咱们开始什么 sysctl.conf 以及它是如何工作的。
最小自由的千字节数 (vm.min_free_kbytes)
这用于强制 Linux VM 保留免费 kb 为单位的最小数目。VM 使用此数字来计算每个记忆区域的 pages_min 值在系统中。每个记忆区域获取按比例根据其大小的保留可用页面的数目。默认值为 2048kb。
脏比 (vm.dirty_ratio) 和肮脏背景比 (vm.dirty_background_ratio)
此参数控制内核频率如何将数据写入到"磁盘"(在我们情况系统内部的 microSD 卡,不是在可移动的 microSD 卡)。当您的应用程序将数据写入到磁盘上时,将 Linux 实际上不数据写出到磁盘马上,它实际写入的东西系统内存和何时和如何数据实际上将会被刷新到磁盘的内核句柄。这些值表示百分比越高所占百分比、 越长它等待要刷新,百分比越低,越频繁刷新将会发生。现在请记住,我们正在处理固态存储、 不传统的磁盘盘片和主轴。所以我们得以实际延迟刷新与固态与传统硬盘磁盘相比稍长的时间。
VFS 缓存压力 (vm.vfs_cache_pressure)
现在这里是有趣的 !文件系统缓存 (dentry/inode) 以上块缓存比真的更重要脏比率和脏背景比,所以我们真的想要使用的内核了太多,更多的 RAM 文件系统缓存,这将提高系统的性能而不牺牲在应用程序级别的性能。默认值是 100,作为一个百分比,和你想要做什么是降低要告诉内核青睐文件系统缓存并不积极地删除它们的值。
物件导向法分配任务 (vm.oom_kill_allocating_task) (启用或禁用,一般在此值是"1"或"0"为代表的 Linux 或关闭)。
这启用或禁用杀出的内存 (oom) 的情况下的物件触发任务。如果这设置为零或残疾人士,OOM 杀手将扫描整个任务列表,然后选择基于启发式技术以杀死任务。这通常会选定流氓荒记忆加工的任务能够释放出了大量的内存时被杀。如果此设置为非零,或启用,OOM 杀手只是杀死触发出的内存条件的任务。这样就避免了昂贵的任务列表中扫描,可以花大量的时间和"挂起"或冻结系统。
block_dump (vm.block_dump)
这使数据块 I/O 调试设置为非零值时。如果您想要找出哪个进程造成磁盘启动 (见 /proc/sys/vm/laptop_mode),您可以收集信息通过设置标志。
当设置此标志时,Linux 报告所有磁盘读取和写入操作发生,和所有阻止对文件所做的 dirtyings。这使得它可以调试为什么磁盘需要旋转,并增加更多的电池寿命。Block_dump 的输出写入到内核输出,并可以使用"dmesg"检索。当您使用 block_dump 和你内核日志记录级别还包括内核调试消息时,您可能想要关闭 klogd,否则 block_dump 的输出将被记录,导致有不正常的磁盘活动。
overcommit_memory (vm.overcommit_memory)
此控制过量可能让流程能够拨出 (但不是使用) 更多的内存,比实际可用的系统内存。
0-启发式过量处理。明显 overcommits 的地址空间将被拒绝。用于典型的系统。它确保认真野生分配失败同时允许松懈,减少交换使用。根被允许分配更多内存,在此模式下的 slighly。这是默认值。
1-总是松懈。适合于一些科学的应用程序。
2 - 不要松懈。该系统的总地址空间提交不允许超过交换再加上一个可配置的百分比 (默认值为 50) 的物理 RAM。根据您使用的百分比,在大多数情况下这意味着过程不会尝试使用已分配的内存时被杀死,但会收到适当的内存分配错误。
页面-群集 (vm.page-群集)
此参数控制写入要换一次尝试中的页数。I/O 大小交换。
它是一个对数的值-将它设置为零意味着"1 页",将其设置为 1 表示"2 页",设置它 2 手段"4 页",等等。
默认值是三个 (一次八页)。在这调整为不同的值,如果您的工作负荷是交换密集可能有一些小的好处。
panic_on_oom (vm.panic_on_oom)
这启用或禁用对出的内存功能的恐慌。如果此设置为 1,内核出现紧急情况时内存不足的情况。如果此设置为 0,内核会杀一些恶意进程,通过调用 oom_kill()。
通常情况下,oom_killer 可以杀死恶意进程,系统将生存。如果您想要恐慌的系统,而不是被杀的恶意进程,将它设置为 1。
默认值为 0。
恐慌是一个内核检测到的系统错误。
dirty_expire_centisecs (vm.dirty_expire_centisecs)
如何"脏"的旧数据应该是之前内核认为它不够老,要写入到磁盘。它是在第二次 100ths 表示。
dirty_writeback_centisecs (vm.dirty_writeback_centisecs)
这是的间隔时写回守护程序定期唤醒,并将"旧"数据写出到磁盘。它是在第二次 100ths 表示。

好的家伙,我只是想我会给您我国防部为实现良好大电池寿命。这是我在国歌 ™ 提供了给我 50 + 小时充一次电使用的 mod。随意将其包括在您自己的 ROM 不管。请给信贷或感谢

第一:这里是国防部的可更新.zip 可能或可能不能与你的 rom。我还是不建议手动做它。第 1 步
Sysctl.conf -过时的截至 2012/4/29
在 7zip 中打开您的 ROM.zip (或不管叫做) (Windows) 或 Betterzip (OSX) 和定位
在 /system/etc sysctl.conf
如果不是在此目录中,创建它。
第 2 步
在 sysctl.conf 文件中,粘贴以下代码并将其保存。
代码:
#sysctl.conf filefs.nr_open=1053696;fs.inotify.max_queued_events=32000;fs.inotify.max_user_instances=256;fs.inotify.max_user_watches=10240;fs.lease-break-time=10;fs.file-max=165164;kernel.threads-max=525810;kernel.random.write_wakeup_threshold=256;kernel.random.read_wakeup_threshold=128;kernel.panic=5;kernel.sched_compat_yield=1;kernel.panic=0;kernel.panic_on_oops=1;kernel.msgmni=2048;kernel.msgmax=64000;kernel.shmmni=4096;kernel.shmall=2097152;kernel.shmmax=268435456;kernel.sem='500 512000 64 2048';kernel.sched_features=24189;kernel.hung_task_timeout_secs=30;kernel.sched_latency_ns=18000000;kernel.sched_min_granularity_ns=1500000;kernel.sched_wakeup_granularity_ns=3000000;kernel.sched_shares_ratelimit=256000;kernel.sched_child_runs_first=0;fs.lease-break-time=10;fs.file-max=65536;net.core.wmem_max=524288;net.core.rmem_max=524288;net.core.rmem_default=262144;net.core.wmem_default=262144;net.core.optmem_max=20480;net.unix.max_dgram_qlen=50;net.ipv4.tcp_keepalive_time=900;net.ipv4.tcp_keepalive_probes=5;net.ipv4.tcp_keepalive_intvl=156;net.ipv4.tcp_timestamps=0;net.ipv4.tcp_sack=1;net.ipv4.tcp_fack=1;net.ipv4.tcp_window_scaling=1;net.ipv4.tcp_tw_recycle=1;net.ipv4.tcp_tw_reuse=1;net.ipv4.tcp_congestion_control=cubic;net.ipv4.tcp_syncookies=1;net.ipv4.conf.all.rp_filter=1;net.ipv4.conf.default.rp_filter=1;net.ipv4.tcp_synack_retries=2;net.ipv4.tcp_syn_retries=2;net.ipv4.tcp_max_syn_backlog=1024;net.ipv4.tcp_max_tw_buckets=16384;net.ipv4.icmp_echo_ignore_all=1;net.ipv4.icmp_ignore_bogus_error_responses=1;net.ipv4.tcp_no_metrics_save=1;net.ipv4.tcp_fin_timeout=15;net.ipv4.tcp_keepalive_intvl=30;net.ipv4.tcp_keepalive_probes=5;net.ipv4.tcp_keepalive_time=1800;net.ipv4.ip_forward=0;net.ipv4.conf.default.accept_source_route=0 ;net.ipv4.conf.all.accept_source_route=0;net.ipv4.conf.all.accept_redirects=0;net.ipv4.conf.default.accept_redirects=0;net.ipv4.conf.all.secure_redirects=0;net.ipv4.conf.default.secure_redirects=0;net.ipv4.udp_rmem_min=6144;net.ipv4.udp_wmem_min=6144;net.ipv4.tcp_rfc1337=1;net.ipv4.ip_no_pmtu_disc=0;net.ipv4.tcp_ecn=0;net.ipv4.route.flush=1;net.ipv4.tcp_rmem='6144 87380 524288';net.ipv4.tcp_wmem='6144 87380 524288';net.ipv6.conf.default.use_tempaddr=2;net.ipv6.conf.all.use_tempaddr=2;net.ipv6.conf.all.temp_prefered_lft=3600;net.ipv6.conf.default.temp_prefered_lft=3600;vm.dirty_ratio=90;vm.dirty_background_ratio=80;vm.oom_kill_allocating_task=1;vm.overcommit_memory=1;vm.page-cluster=3;vm.drop_caches=3;vm.min_free_kbytes=4096;vm.panic_on_oom=0;vm.dirty_expire_centisecs=1000;vm.dirty_writeback_centisecs=2000;vm.oom_kill_allocating_task=0;vm.vfs_cache_pressure=10;vm.min_free_order_shift=4;vm.laptop_mode=0;vm.block_dump=0;
报价:
原贴由PureMotive ![]() 我更新 OP (小小) 新代码。我只被删除了分号。如果对方对你不起作用,请使用此版本。 |
如果上面的代码不能为您,请尝试这一个。它已被删除的分号。小小的感谢
代码:
#sysctl.conf filefs.nr_open=1053696fs.inotify.max_queued_events=32000fs.inotify.max_user_instances=256fs.inotify.max_user_watches=10240fs.lease-break-time=10fs.file-max=165164kernel.threads-max=525810kernel.random.write_wakeup_threshold=256kernel.random.read_wakeup_threshold=128kernel.panic=5kernel.sched_compat_yield=1kernel.panic=0kernel.panic_on_oops=1kernel.msgmni=2048kernel.msgmax=64000kernel.shmmni=4096kernel.shmall=2097152kernel.shmmax=268435456kernel.sem='500 512000 64 2048'kernel.sched_features=24189kernel.hung_task_timeout_secs=30kernel.sched_latency_ns=18000000kernel.sched_min_granularity_ns=1500000kernel.sched_wakeup_granularity_ns=3000000kernel.sched_shares_ratelimit=256000kernel.sched_child_runs_first=0fs.lease-break-time=10fs.file-max=65536net.core.wmem_max=524288net.core.rmem_max=524288net.core.rmem_default=262144net.core.wmem_default=262144net.core.optmem_max=20480net.unix.max_dgram_qlen=50net.ipv4.tcp_keepalive_time=900net.ipv4.tcp_keepalive_probes=5net.ipv4.tcp_keepalive_intvl=156net.ipv4.tcp_timestamps=0net.ipv4.tcp_sack=1net.ipv4.tcp_fack=1net.ipv4.tcp_window_scaling=1net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_congestion_control=cubicnet.ipv4.tcp_syncookies=1net.ipv4.conf.all.rp_filter=1net.ipv4.conf.default.rp_filter=1net.ipv4.tcp_synack_retries=2net.ipv4.tcp_syn_retries=2net.ipv4.tcp_max_syn_backlog=1024net.ipv4.tcp_max_tw_buckets=16384net.ipv4.icmp_echo_ignore_all=1net.ipv4.icmp_ignore_bogus_error_responses=1net.ipv4.tcp_no_metrics_save=1net.ipv4.tcp_fin_timeout=15net.ipv4.tcp_keepalive_intvl=30net.ipv4.tcp_keepalive_probes=5net.ipv4.tcp_keepalive_time=1800net.ipv4.ip_forward=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.all.accept_source_route=0net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.default.accept_redirects=0net.ipv4.conf.all.secure_redirects=0net.ipv4.conf.default.secure_redirects=0net.ipv4.udp_rmem_min=6144net.ipv4.udp_wmem_min=6144net.ipv4.tcp_rfc1337=1net.ipv4.ip_no_pmtu_disc=0net.ipv4.tcp_ecn=0net.ipv4.route.flush=1net.ipv4.tcp_rmem='6144 87380 524288'net.ipv4.tcp_wmem='6144 87380 524288'net.ipv6.conf.default.use_tempaddr=2net.ipv6.conf.all.use_tempaddr=2net.ipv6.conf.all.temp_prefered_lft=3600net.ipv6.conf.default.temp_prefered_lft=3600vm.dirty_ratio=90vm.dirty_background_ratio=80vm.oom_kill_allocating_task=1vm.overcommit_memory=1vm.page-cluster=3vm.drop_caches=3vm.min_free_kbytes=4096vm.panic_on_oom=0vm.dirty_expire_centisecs=1000vm.dirty_writeback_centisecs=2000vm.oom_kill_allocating_task=0vm.vfs_cache_pressure=10vm.min_free_order_shift=4vm.laptop_mode=0vm.block_dump=0
第 3 步
现在,我们需要启用它。所以,定位到 /system/etc/init.d,用下面的代码创建一个文件:
代码:
#!/system/bin/sh# grep sysctl /etc/init.d/*# Load /sys/etc/sysctl.confsysctl -p
sysctl-p是什么初始化代码。
只是 FYI: 你其实不需要这些行:命名您的文件类似于此的 10sysctl
代码:
# grep sysctl /etc/init.d/*
代码:
# Load /sys/etc/sysctl.conf
所以这就只被足够了。
代码:
#!/system/bin/shsysctl -p
如果上面的代码不能因任何理由,试试这个:
代码:
#!/system/bin/shsysctl -p /system/etc/
保存您的文件。
注:你的 ROM 必须支持 init.d。您可以通过使用 dsixda 的 android 厨房
第 4 步
保存你的 ROM 并安装它通过恢复
或
只可将文件推入您当前 ROM 和试用它们。
第 5 步
运行该脚本在终端仿真器中输入下面的代码
代码:
susysctl -p
是真的要运行该脚本所需的全部。所以在这里是一些更多的选项:
如果您认为该 init.d 正在出现故障,请在终端仿真器中输入或
代码:
susysctl -p
然后
代码:
sysctl -a| grep vm
这样做是 sysctl.conf 手动启动,然后验证它与后面的代码。
忽略什么
代码:
sysctl -a| grep vm
输出,只是看看是否你遇到更好的电池寿命 (您应)
---对知识--
贷记 imoseyon 部分的信息
好了,那么到底什么是 sysctl.conf 吗?
Sysctl.conf 是"sysctl"这是一个用于动态更改内核参数在 Linux 操作系统中的接口的配置文件。配置文件中包含下列元素、 vm.min_free_kbytes、 vm.dirty_ratio、 vm.dirty_backgroud_ratio、 vm.vfs_cache_pressure、 vm.oom_kill_allocating_task。有很多其他元素在文件中,但我们将会主要集中于这些具体 (vm 前缀站为虚拟内存)。Sysctl.conf 文件应位于 /etc 下 (/ 系统/等),在默认情况下。若要启用它需要你的 ROM 要执行"sysctl-p"在启动过程中的某个位置 (或不久之后)。我们还将讨论如何启用它,如果它不这样做。您还可以运行 sysctl-p 手动,使其操作系统启动后的任何时间。
现在,咱们开始什么 sysctl.conf 以及它是如何工作的。
最小自由的千字节数 (vm.min_free_kbytes)
这用于强制 Linux VM 保留免费 kb 为单位的最小数目。VM 使用此数字来计算每个记忆区域的 pages_min 值在系统中。每个记忆区域获取按比例根据其大小的保留可用页面的数目。默认值为 2048kb。
脏比 (vm.dirty_ratio) 和肮脏背景比 (vm.dirty_background_ratio)
此参数控制内核频率如何将数据写入到"磁盘"(在我们情况系统内部的 microSD 卡,不是在可移动的 microSD 卡)。当您的应用程序将数据写入到磁盘上时,将 Linux 实际上不数据写出到磁盘马上,它实际写入的东西系统内存和何时和如何数据实际上将会被刷新到磁盘的内核句柄。这些值表示百分比越高所占百分比、 越长它等待要刷新,百分比越低,越频繁刷新将会发生。现在请记住,我们正在处理固态存储、 不传统的磁盘盘片和主轴。所以我们得以实际延迟刷新与固态与传统硬盘磁盘相比稍长的时间。
VFS 缓存压力 (vm.vfs_cache_pressure)
现在这里是有趣的 !文件系统缓存 (dentry/inode) 以上块缓存比真的更重要脏比率和脏背景比,所以我们真的想要使用的内核了太多,更多的 RAM 文件系统缓存,这将提高系统的性能而不牺牲在应用程序级别的性能。默认值是 100,作为一个百分比,和你想要做什么是降低要告诉内核青睐文件系统缓存并不积极地删除它们的值。
物件导向法分配任务 (vm.oom_kill_allocating_task) (启用或禁用,一般在此值是"1"或"0"为代表的 Linux 或关闭)。
这启用或禁用杀出的内存 (oom) 的情况下的物件触发任务。如果这设置为零或残疾人士,OOM 杀手将扫描整个任务列表,然后选择基于启发式技术以杀死任务。这通常会选定流氓荒记忆加工的任务能够释放出了大量的内存时被杀。如果此设置为非零,或启用,OOM 杀手只是杀死触发出的内存条件的任务。这样就避免了昂贵的任务列表中扫描,可以花大量的时间和"挂起"或冻结系统。
block_dump (vm.block_dump)
这使数据块 I/O 调试设置为非零值时。如果您想要找出哪个进程造成磁盘启动 (见 /proc/sys/vm/laptop_mode),您可以收集信息通过设置标志。
当设置此标志时,Linux 报告所有磁盘读取和写入操作发生,和所有阻止对文件所做的 dirtyings。这使得它可以调试为什么磁盘需要旋转,并增加更多的电池寿命。Block_dump 的输出写入到内核输出,并可以使用"dmesg"检索。当您使用 block_dump 和你内核日志记录级别还包括内核调试消息时,您可能想要关闭 klogd,否则 block_dump 的输出将被记录,导致有不正常的磁盘活动。
overcommit_memory (vm.overcommit_memory)
此控制过量可能让流程能够拨出 (但不是使用) 更多的内存,比实际可用的系统内存。
0-启发式过量处理。明显 overcommits 的地址空间将被拒绝。用于典型的系统。它确保认真野生分配失败同时允许松懈,减少交换使用。根被允许分配更多内存,在此模式下的 slighly。这是默认值。
1-总是松懈。适合于一些科学的应用程序。
2 - 不要松懈。该系统的总地址空间提交不允许超过交换再加上一个可配置的百分比 (默认值为 50) 的物理 RAM。根据您使用的百分比,在大多数情况下这意味着过程不会尝试使用已分配的内存时被杀死,但会收到适当的内存分配错误。
页面-群集 (vm.page-群集)
此参数控制写入要换一次尝试中的页数。I/O 大小交换。
它是一个对数的值-将它设置为零意味着"1 页",将其设置为 1 表示"2 页",设置它 2 手段"4 页",等等。
默认值是三个 (一次八页)。在这调整为不同的值,如果您的工作负荷是交换密集可能有一些小的好处。
panic_on_oom (vm.panic_on_oom)
这启用或禁用对出的内存功能的恐慌。如果此设置为 1,内核出现紧急情况时内存不足的情况。如果此设置为 0,内核会杀一些恶意进程,通过调用 oom_kill()。
通常情况下,oom_killer 可以杀死恶意进程,系统将生存。如果您想要恐慌的系统,而不是被杀的恶意进程,将它设置为 1。
默认值为 0。
恐慌是一个内核检测到的系统错误。
dirty_expire_centisecs (vm.dirty_expire_centisecs)
如何"脏"的旧数据应该是之前内核认为它不够老,要写入到磁盘。它是在第二次 100ths 表示。
dirty_writeback_centisecs (vm.dirty_writeback_centisecs)
这是的间隔时写回守护程序定期唤醒,并将"旧"数据写出到磁盘。它是在第二次 100ths 表示。