V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blackcurrant
V2EX  ›  macOS

为什么还有一半的内存不用却疯狂的用 swap? redis 一直在 loading 中

  •  
  •   blackcurrant · 2021-01-26 11:46:02 +08:00 · 1889 次点击
    这是一个创建于 1416 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在用 docker 运行一个大概需要 50 多 G 内存的 redis 。

    1:M 25 Jan 2021 23:19:34.834 * Loading RDB produced by version 5.0.8
    1:M 25 Jan 2021 23:19:34.834 * RDB age 15094503 seconds
    1:M 25 Jan 2021 23:19:34.834 * RDB memory usage when created 50690.37 Mb
    

    但是系统的内存用到 30 多 G 就不再增长,swap 倒是用了很多。

    Screen Shot 2021-01-26 at 11.27.58.png

    redis 的数据等了很久也始终在 loading 中,不知道问题出在哪

    127.0.0.1:6379> keys *
    (error) LOADING Redis is loading the dataset in memory
    
    6 条回复    2021-01-26 16:46:22 +08:00
    jindom
        1
    jindom  
       2021-01-26 12:04:08 +08:00
    不懂,等大佬回复
    Osk
        2
    Osk  
       2021-01-26 12:06:08 +08:00 via Android
    MacOS ?
    看样子 CPU 不是双路的吧,同好奇原因
    monsterxx03
        3
    monsterxx03  
       2021-01-26 12:15:38 +08:00   ❤️ 1
    你是 MacOS 的话, docker 实际是跑在虚拟机里的,看外面的 swap 没意义, 你要进去虚拟机, iotop 看下 redis 进程是不是还在读磁盘, 还要检查下 redis 配置有没有设置 maxmemory, 设置了就会一边 loading 一边 evict 数据.

    另外这么大的内存, 不要用 keys *
    azenk
        4
    azenk  
       2021-01-26 12:35:19 +08:00 via Android   ❤️ 1
    单 CPU 32G 限制?查查是不是互联结构问题,关键词 UMA NUMA QPI
    blackcurrant
        5
    blackcurrant  
    OP
       2021-01-26 13:18:09 +08:00
    这台 Mac mini 的 cpu 是
    3.2 GHz 6-Core Intel Core i7
    boywang004
        6
    boywang004  
       2021-01-26 16:46:22 +08:00   ❤️ 1
    check vm.swappiness
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:33 · PVG 13:33 · LAX 21:33 · JFK 00:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.