我使用基于操作系统版本 FreeBSD 8.2-RELEASE-p6 构建的 FreeNAS 服务器。我在安装了 8GB 物理内存的盒子上使用带有 13TB HDD 的 ZFS 文件系统。它在处理某些请求时几乎使用了安装的所有 RAM。但是,它在空闲时间仍然使用相同数量的内存。所以这有时会成为一个问题。
在我的 centos 网络服务器上;我使用以下命令通过 cronjob 删除缓存内存;
sync; echo 3 > /proc/sys/vm/drop_caches
但是,此命令在我的 Freenas 服务器上不起作用。如何在我的 FreeNAS 机器上删除缓存内存,它是基于 FreeBSD 8.2 构建的
谢谢
首先,CentOS 是一个 Linux 操作系统。Linux 与 FreeBSD 完全不同。
你真的不需要释放缓存的内存,可能你不需要在你的 Cent 盒子上,但这确实取决于你在它上面运行的内容。只有当你有一个非常具体和充分的理由时,你才应该搞乱内存管理。
您希望在生产设备上执行此操作的唯一原因是,如果您有一个应用程序,它的内存使用量取决于可用内存量。我不知道有任何 *nix 程序可以做到这一点,但它们可能就在那里。即使是这种情况,您也应该对系统缓存使用智能内存限制,而不是手动或定期刷新它们。
刷新缓存的唯一另一个常见原因是用于基准测试和测试目的。
如果上述两种情况之一不适用,请不要刷新缓存。
更新:
除了下面的评论,让我通过一个简单的测试来敲定性能差异。
dd if=/dev/zero of=/path/to/test.1g bs=1m count=1024
1073741824 字节在 20.998713 秒内传输(51133697 字节/秒)dd if=/path/to/test.1g of=/dev/null bs=1m
1073741824 字节在4.496601 秒内传输(238789654 字节/秒)dd if=/path/to/test.1g of=/dev/null bs=1m
1073741824 字节在1.071374 秒内传输(1002210138 字节/秒)
第一次读取测试文件时没有缓存;第二次它已经在缓存中,所以读取操作完成的速度快了四倍。在典型的服务器中,90% 的读取是磁盘上 1% 的文件/数据。如果这 1% 中的大部分可以保留在缓存内存中,则磁盘读取速度通常会快 4 倍(至少在我的服务器上)。
归档时间: |
|
查看次数: |
8847 次 |
最近记录: |