首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何减少缓冲区\缓存

如何减少缓冲区\缓存
EN

Unix & Linux用户
提问于 2013-09-15 13:39:33
回答 2查看 47.3K关注 0票数 5

一个监控系统不断提醒我的机器正在突破RAM的使用阈值,即15 GB。

我已经做了一些阅读,并且了解到,表面上的RAM利用率不是实际的,额外的RAM用于缓存\缓冲磁盘I\O操作,以提高服务器的性能。我在那个服务器上运行MySQL,这是唯一值得注意的运行服务。

  • 那么,如何减少磁盘I\O缓存\缓冲RAM以避免突破阈值呢?这可能是一个MySQL问题而不是Linux的问题吗?

这是free -gt的输出

代码语言:javascript
复制
[root@ipk ~]# free -gt
             total       used       free     shared    buffers     cached
Mem:            15         15          0          0          0          9
-/+ buffers/cache:          5         10
Swap:            5          0          5
Total:          21         15          6

Linux版本是:

代码语言:javascript
复制
[root@ipk ~]# uname -rmo
2.6.32-220.el6.x86_64 x86_64 GNU/Linux
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2013-09-15 16:09:40

由于你似乎既不接受我们的意见,也不接受我们作为“官方”链接到的各种页面,也许官方的红帽文档会说服你:

在本例中,可用内存量为4040360 KB。进程使用264224 KB,其他应用程序免费使用3776136 KB。不要被第一行弄糊涂了,因为第一行显示280 Do是免费的!如果您查看使用情况,您可以看到大部分内存使用都是用于缓冲区和缓存。Linux总是试图通过使用缓冲区(文件系统元数据)和缓存(具有文件或块设备实际内容的页面)的可用内存来使用RAM来加速磁盘操作。这有助于系统更快地运行,因为磁盘信息已经在内存中,从而节省了I/O操作。如果像Oracle这样的程序或应用程序需要空间,那么Linux将释放缓冲区和缓存,为应用程序生成内存。如果您的系统运行了一段时间,您通常会在第一行的字段下面看到一个“空闲”的小数字。

票数 16
EN

Unix & Linux用户

发布于 2015-08-29 14:11:32

这一切都很好,但是从发出内存请求到映射磁盘缓存必须发布的内存之间的滞后时间又如何呢?当然,您可能会说这是最小的,甚至是不值得注意的,但是也许我关心的是由于这个过程而增加的0.0000001秒。你是谁来决定如何使用我的内存?

如果我不想经历这样的滞后时间呢?也许我不介意我的应用程序从驱动器加载得更慢,但我希望它能够立即占用RAM,而不需要从磁盘缓存卸载内存的滞后时间。

如何限制我的磁盘缓存占用多少RAM?不要告诉我这是在没有方法的情况下实现的。

更新:找到了一种方法。

代码语言:javascript
复制
echo 3 | sudo tee /proc/sys/vm/drop_caches

做a:free -m后,运行上述确认。它起作用了。

票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/90760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档