我在用 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 倒是用了很多。
redis 的数据等了很久也始终在 loading 中,不知道问题出在哪
127.0.0.1:6379> keys *
(error) LOADING Redis is loading the dataset in memory
1
jindom 2021-01-26 12:04:08 +08:00
不懂,等大佬回复
|
2
Osk 2021-01-26 12:06:08 +08:00 via Android
MacOS ?
看样子 CPU 不是双路的吧,同好奇原因 |
3
monsterxx03 2021-01-26 12:15:38 +08:00 1
你是 MacOS 的话, docker 实际是跑在虚拟机里的,看外面的 swap 没意义, 你要进去虚拟机, iotop 看下 redis 进程是不是还在读磁盘, 还要检查下 redis 配置有没有设置 maxmemory, 设置了就会一边 loading 一边 evict 数据.
另外这么大的内存, 不要用 keys * |
4
azenk 2021-01-26 12:35:19 +08:00 via Android 1
单 CPU 32G 限制?查查是不是互联结构问题,关键词 UMA NUMA QPI
|
5
blackcurrant OP 这台 Mac mini 的 cpu 是
3.2 GHz 6-Core Intel Core i7 |
6
boywang004 2021-01-26 16:46:22 +08:00 1
check vm.swappiness
|