【问题标题】:Page cache limit页面缓存限制
【发布时间】:2013-06-13 10:34:32
【问题描述】:

我正在使用内核 3.2.1、x86_64 的 Ubuntu。我正在尝试对文件系统进行基准测试,并且我想限制页面缓存大小以避免文件系统缓存占用过多 RAM,这显然会提高性能(但不会反映内存较少的系统上的结果)。

有没有办法做到这一点?我在一些 RHEL 发行版中看到了一个用于调整 /proc/sys/vm/pagecaches 的选项,这似乎可以满足这一点,但我在 Ubuntu 中没有看到任何有用的东西,除了dirty_background_ratio,它只会触发刷新到磁盘,而不是更多缓存(所以我可以获得更多同步 I/O 等)

谢谢

【问题讨论】:

  • 为什么您认为减小 RAM 中的文件系统缓存大小会明显提高性能?
  • 我的意思是使用更多 RAM 会提高性能,但不切实际,因为在真实系统中可用的 RAM 会更少

标签: linux page-caching


【解决方案1】:

ubuntu 好像没有 vm.pagecache 设置

ls -l /proc/sys/vm/
total 0
-rw-r--r-- 1 root root 0 Jun 17 14:13 block_dump
--w------- 1 root root 0 Jun 17 14:13 compact_memory
-rw-r--r-- 1 root root 0 Jun 17 14:13 dirty_background_bytes
-rw-r--r-- 1 root root 0 Jun 17 09:16 dirty_background_ratio
-rw-r--r-- 1 root root 0 Jun 17 14:13 dirty_bytes
-rw-r--r-- 1 root root 0 Jun 17 14:13 dirty_expire_centisecs
-rw-r--r-- 1 root root 0 Jun 17 09:16 dirty_ratio
-rw-r--r-- 1 root root 0 Jun 17 09:16 dirty_writeback_centisecs
-rw-r--r-- 1 root root 0 Jun 17 14:13 drop_caches
-rw-r--r-- 1 root root 0 Jun 17 14:13 extfrag_threshold
-rw-r--r-- 1 root root 0 Jun 17 14:13 hugepages_treat_as_movable
-rw-r--r-- 1 root root 0 Jun 17 14:13 hugetlb_shm_group
-rw-r--r-- 1 root root 0 Jun 17 09:16 laptop_mode
-rw-r--r-- 1 root root 0 Jun 17 14:13 legacy_va_layout
-rw-r--r-- 1 root root 0 Jun 17 14:13 lowmem_reserve_ratio
-rw-r--r-- 1 root root 0 Jun 17 14:13 max_map_count
-rw-r--r-- 1 root root 0 Jun 17 14:13 memory_failure_early_kill
-rw-r--r-- 1 root root 0 Jun 17 14:13 memory_failure_recovery
-rw-r--r-- 1 root root 0 Jun 17 14:13 min_free_kbytes
-rw-r--r-- 1 root root 0 Jun 17 14:13 min_slab_ratio
-rw-r--r-- 1 root root 0 Jun 17 14:13 min_unmapped_ratio
-rw-r--r-- 1 root root 0 Jun 17 09:15 mmap_min_addr
-rw-r--r-- 1 root root 0 Jun 17 14:13 nr_hugepages
-rw-r--r-- 1 root root 0 Jun 17 14:13 nr_hugepages_mempolicy
-rw-r--r-- 1 root root 0 Jun 17 14:13 nr_overcommit_hugepages
-r--r--r-- 1 root root 0 Jun 17 14:13 nr_pdflush_threads
-rw-r--r-- 1 root root 0 Jun 17 14:13 numa_zonelist_order
-rw-r--r-- 1 root root 0 Jun 17 14:13 oom_dump_tasks
-rw-r--r-- 1 root root 0 Jun 17 14:13 oom_kill_allocating_task
-rw-r--r-- 1 root root 0 Jun 17 09:15 overcommit_memory
-rw-r--r-- 1 root root 0 Jun 17 14:13 overcommit_ratio
-rw-r--r-- 1 root root 0 Jun 17 14:13 page-cluster
-rw-r--r-- 1 root root 0 Jun 17 14:13 panic_on_oom
-rw-r--r-- 1 root root 0 Jun 17 14:13 percpu_pagelist_fraction
-rw-r--r-- 1 root root 0 Jun 17 14:13 scan_unevictable_pages
-rw-r--r-- 1 root root 0 Jun 17 14:13 stat_interval
-rw-r--r-- 1 root root 0 Jun 17 14:13 swappiness
-rw-r--r-- 1 root root 0 Jun 17 14:13 vfs_cache_pressure
-rw-r--r-- 1 root root 0 Jun 17 14:13 zone_reclaim_mode

您可以尝试以下方法:

vi /etc/sysctl.conf

vm.min_free_kbytes=1024
vm.swappiness = 100

然后运行

sysctl -p
vm.min_free_kbytes = 1024
vm.swappiness = 100

不确定它是否有任何帮助。

swapiness 100 内存耗尽时将更多应用程序数据交换到磁盘

【讨论】:

  • 我认为这没有帮助。我不想不自然地创建一个巨大的交换,如果我理解正确的话 min_free_kbytes 只会迫使更频繁的回收。这仍然不是我所追求的。
  • 好吧,除非你想去一些古老的内核,否则我看不出你希望如何启用/设置不再可用的东西! mjmwired.net/kernel/Documentation/sysctl/vm.txt
  • 我知道 sysctl 不支持它。想也许有人知道另一种方式,或者一个aptch或其他东西。我认为事实并非如此。谢谢
  • stackoverflow.com/questions/7044863/… 这可能会有所帮助
猜你喜欢
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 2021-09-30
  • 2010-09-26
  • 2014-10-05
  • 2015-08-05
相关资源
最近更新 更多