AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1830332
Accepted
yabberth
yabberth
Asked: 2024-02-15 18:34:46 +0800 CST2024-02-15 18:34:46 +0800 CST 2024-02-15 18:34:46 +0800 CST

Oracle Linux 7 - 哪些进程使用了​​如此多的缓冲/缓存内存

  • 772

我希望有人能引导我走向正确的方向。

我最近在服务器上更新了一些软件,几天后,这个软件因为无法分配内存而崩溃了。最初,我认为新版本中存在错误,直到我检查其他 Oracle Linux 7 服务器(没有更新的软件)并观察到以下内容:

[root@server yabbath]# free -mh
              total        used        free      shared  buff/cache   available
Mem:            62G        2.2G         42G         24M         18G         59G
Swap:           63G          0B         63G
[root@server2 yabbath]# free -mh

              total        used        free      shared  buff/cache   available
Mem:            62G         11G        4.1G         34M         47G         50G
Swap:           31G          0B         31G

不幸的是,监控不会减去 buff/cache 值,所以一切看起来都很好。实现后,我得到了下图:

随着时间的推移增强/缓存内存

smem 输出如下

smem -r
      PID User     Command                         Swap      USS      PSS      RSS
     1485 mongod   /usr/bin/mongod -f /etc/mon        0  1155092  1155941  1160916
    20146 root     /usr/sbin/nsrexecd                 0    38884    38987    41232
     1365 zabbix   /usr/sbin/zabbix_agent2 -c         0    30956    31471    35648
     1835 zabbix   /usr/sbin/zabbix-agent2-plu        0    21796    21836    23304
     1366 root     /usr/bin/python2 -Es /usr/s        0    13060    14959    22176
      682 root     /usr/lib/systemd/systemd-jo        0     4988    14089    34972
     1046 polkitd  /usr/lib/polkit-1/polkitd -        0     8184     9462    14724
    10225 root     python /bin/smem -r                0     7592     8479    11488
     1363 redis    /usr/local/bin/redis-server        0     7132     7848    10776
     1371 root     /usr/sbin/rsyslogd -n              0     1876     7605    23312
     1369 redis    /usr/local/bin/redis-sentin        0     5992     6705     9624
     1105 root     /usr/sbin/NetworkManager --        0     5164     6689    13908
        1 root     /usr/lib/systemd/systemd --        0     4852     5658    10416
     1040 root     /usr/bin/VGAuthService -s          0     3596     4198     9340
      717 root     /usr/lib/systemd/systemd-ud        0     3240     3998     8468

有人可以告诉我如何获取有关哪个进程正在使用多少缓冲/缓存内存的信息吗?

预先感谢并致以问候,

亚伯斯

编辑:

这只是许多服务器中的一个。我也有一些机器,其中 buff/缓存内存使用了 47GB(总共 64GB)。

linux
  • 2 2 个回答
  • 128 Views

2 个回答

  • Voted
  1. Best Answer
    Romeo Ninov
    2024-02-15T18:38:03+08:002024-02-15T18:38:03+08:00

    缓冲/高速缓存内存是每个实例的,并且由所有进程使用。目前您不必担心,因为您有 11GB 缓存,总内存为 64GB。

    您可以使用这些技术查看里面的内容(来自此答案):

    您可以使用 fincore 查看缓存中当前有哪些块。以下是项目页面的示例:

     # fincore --pages=false --summarize --only-cached *  
    
    stats for CLUSTER_LOG_2010_05_21.MYI: file size=93840384 , total pages=22910 , cached pages=1 , cached size=4096, cached perc=0.004365 
    stats for CLUSTER_LOG_2010_05_22.MYI: file size=417792 , total pages=102 , cached pages=1 , cached size=4096, cached perc=0.980392 
    stats for CLUSTER_LOG_2010_05_23.MYI: file size=826368 , total pages=201 , cached pages=1 , cached size=4096, cached perc=0.497512 
    stats for CLUSTER_LOG_2010_05_24.MYI: file size=192512 , total pages=47 , cached pages=1 , cached size=4096, cached perc=2.127660 
    stats for CLUSTER_LOG_2010_06_03.MYI: file size=345088 , total pages=84 , cached pages=43 , cached size=176128, cached perc=51.190476 
    

    至于如何清除它们,来自man 5 proc:

    /proc/sys/vm/drop_caches (since Linux 2.6.16)
    
    Writing to this file causes the kernel to drop clean caches, dentries, and inodes from memory, causing that memory to become free.
    

    这对于内存管理测试和执行可重现的文件系统基准测试非常有用。由于写入此文件会导致缓存的优势丧失,因此会降低整体系统性能。

    • 2
  2. Eugen Rieck
    2024-02-15T19:07:33+08:002024-02-15T19:07:33+08:00

    如果您查看 的输出free -mh,您会发现它available+buf/cache大于total:

    [root@server yabbath]# free -mh
                  total        used        free      shared  buff/cache   available
    Mem:            62G        2.2G         42G         24M         18G         59G
    Swap:           63G          0B         63G
    

    那个怎么样?简单:仅将其他未使用的 RAM 用作缓冲区/高速缓存,以加速 IO 操作。如果进程需要比当前更多的 RAM free,则将释放缓冲区/缓存池中的内存(可能在写回其内容之后),然后将其提供给请求进程。

    对您来说重要的指标是available:这是您的有效负载实际可以使用的内容。

    • 2

相关问题

  • 如何让我的 Linux 机器看起来像是在运行 Windows?

  • 对于 cp 或 mv,是否有等同于 cd - 的东西?

  • 以 root 身份运行 docker 容器

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 如何在CentOS 7 中将Ctrl+C 永久更改为Ctrl+K?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve