所有分配的 Tarantool 2.3 space memtx 都被占用了

今天,memxt tarantool 的分配空间已经超出了 - memtx_memory = 5GB,RAM 让 RAM 非常忙碌,超过 4GB 的内存释放后重新启动 tarantool。 RAM 可能会出现堵塞问题?这可能与哪些设置有关?

box.slab.info()
---
- items_size: 1308568936
  items_used_ratio: 91.21%
  quota_size: 5737418240
  quota_used_ratio: 13.44%
  arena_used_ratio: 89.2%
  items_used: 1193572600
  quota_used: 1442840576
  arena_size: 1442840576
  arena_used: 1287551224
box.info()
---
- version: 2.3.2-26-g38e825b
  id: 1
  ro: false
  uuid: d9cb7d78-1277-4f83-91dd-9372a763aafa
  package: Tarantool
  cluster:
    uuid: b6c32d07-b448-47df-8967-40461a858c6d
  replication:
    1:
      id: 1
      uuid: d9cb7d78-1277-4f83-91dd-9372a763aafa
      lsn: 89759968433
    2:
      id: 2
      uuid: 77557306-8e7e-4bab-adb1-9737186bd3fa
      lsn: 9
    3:
      id: 3
      uuid: 28bae7dd-26a8-47a7-8587-5c1479c62311
      lsn: 0
    4:
      id: 4
      uuid: 6a09c191-c987-43a4-8e69-51da10cc3ff2
      lsn: 0
  signature: 89759968442
  status: running
  vinyl: []
  uptime: 606297
  lsn: 89759968433
  sql: []
  gc: []
  pid: 32274
  memory: []
  vclock: {2: 9, 1: 89759968433}

cat /etc/tarantool/instances.available/my_app.lua

...
memtx_memory = 5 * 1024 * 1024 * 1024,
...
Tarantool vesrion 2.3.2, OS CentOs 7

https://i.stack.imgur.com/onV44.png
点赞
用户10792439
用户10792439

这是一个被称为碎片化过程的结果。

这个过程的简单原因是下面这种情况:

  • 你有一些预留的元组存储区
  • 你放置了一个元组,接着放置了另一个元组
  • 当你需要扩大第一个元组时,数据库需要将你的元组重新定位到另一个有足够容量的位置。此后,第一个元组的位置将变为空闲,但我们取代了扩展元组的新位置。

你可以通过增加你的情况下的元组大小来减少碎片化因素。通过估计你的典型数据或者根据你的工作负载的度量标准找到最优的大小来选择。

2020-07-02 20:38:56