Skip to content

Отказ инстанса после продолжительной операции insert - delete

Проблема

Клиент проводит операции по загрузке большого количества записей (в пределах размера кластера) и удалению строк через delete, все операции проводятся через один инстанс default-2000

Через 21 час PG-клиент начинает отваливаться с ошибкой, операция delete перестает работать (зависает) с ошибкой на стороне клиента:

ERROR: picodata error: sbroad: Lua error (IR dispatch): LuaError(ExecutionError("{\"code\":77,\"base_type\":\"ClientError\",\"type\":\"ClientError\",\"message\":\"Connection is not established, state is \\\"initial\\\"\",\"trace\":[{\"file\":\".\\/src\\/box\\/lua\\/net_box.c\",\"line\":2286}]}"))  

Ссылка на лог-файлы

Всем инстансам кластера выделено по 5Гб

box.slab.info() инстанса в момент отказа:

- items_size: 1629123248
  items_used_ratio: 99.45%
  quota_size: 5368709120
  quota_used_ratio: 46.56%
  arena_used_ratio: 71.4%
  items_used: 1620174776
  quota_used: 2499805184
  arena_size: 2499805184
  arena_used: 1785391032

Процессы в top

671884 picodata  20   0   21.4g  17.7g  17256 S   0.7  56.3 224:20.42 picodata
672035 picodata  20   0 7097644   2.8g  13868 S   0.7   8.9  21:56.66 picodata
672333 picodata  20   0 6369080   2.5g  11784 S   0.3   7.8  29:30.13 picodata
672482 picodata  20   0 6290804   2.4g  11764 S   0.7   7.7  26:49.98 picodata
672184 picodata  20   0 6294496   2.3g  11868 S   0.7   7.4  27:07.93 picodata
672631 picodata  20   0 6329204   2.3g  12524 S   0.7   7.2  27:39.36 picodata

Состояние службы инстанса (RSS memory 17.7Gb!!!):

systemctl --user status iftcluster@default-2000.service
● iftcluster@default-2000.service - Picodata cluster iftcluster@default-2000
   Loaded: loaded (/home/picodata/.config/systemd/user/iftcluster@.service; enabled; vendor preset: enabled)
  Drop-In: /home/picodata/.config/systemd/user/iftcluster@default-2000.service.d
           └─env.conf
   Active: active (running) since Mon 2025-04-21 13:22:33 MSK; 21h ago
Main PID: 671884 (picodata)
    Tasks: 9 (limit: 38478)
   Memory: 17.7G
      CPU: 3h 44min 21.077s
   CGroup: /user.slice/user-681.slice/user@681.service/iftcluster.slice/iftcluster@default-2000.service
           └─671884 /usr/bin/picodata run --config /app/picodata/data/etc/iftcluster/default-2000.conf --entrypoint-fd=22

Судя по логам инстанс работал без ошибок.

После перезапуска службы инстанса:

  items_size: 1018045360
  items_used_ratio: 99.53%
  quota_size: 5368709120
  quota_used_ratio: 20.31%
  arena_used_ratio: 99.0%
  items_used: 1013245608
  quota_used: 1090519040
  arena_size: 1090519040
  arena_used: 1079092904

systsemd через 3 часа после перезапуска

picodata@ifekld-dbc002lk tmp $ systemctl --user status iftcluster@default-2000.service

● iftcluster@default-2000.service - Picodata cluster iftcluster@default-2000
   Loaded: loaded (/home/picodata/.config/systemd/user/iftcluster@.service; enabled; vendor preset: enabled)
  Drop-In: /home/picodata/.config/systemd/user/iftcluster@default-2000.service.d
           └─env.conf
   Active: active (running) since Tue 2025-04-22 10:39:48 MSK; 3h 39min ago
  Process: 795064 ExecStartPre=/bin/sh -c mkdir -p /app/picodata/data/iftcluster/default-2000 (code=exited, status=0/SUCCESS)
  Process: 795065 ExecStartPre=/bin/sh -c mkdir -p /app/picodata/data/share/iftcluster (code=exited, status=0/SUCCESS)
Main PID: 795066 (picodata)
    Tasks: 9 (limit: 38478)
   Memory: 3.9G
      CPU: 1h 57min 29.727s
   CGroup: /user.slice/user-681.slice/user@681.service/iftcluster.slice/iftcluster@default-2000.service
           └─795066 /usr/bin/picodata run --config /app/picodata/data/etc/iftcluster/default-2000.conf

Для сравнения

Состояние службы соседнего инстанса default-2001 (RSS memory 2.8b):

systemctl --user status iftcluster@default-2001.service
● iftcluster@default-2001.service - Picodata cluster iftcluster@default-2001
  Loaded: loaded (/home/picodata/.config/systemd/user/iftcluster@.service; enabled; vendor preset: enabled)
  Drop-In: /home/picodata/.config/systemd/user/iftcluster@default-2001.service.d
           └─env.conf
   Active: active (running) since Mon 2025-04-21 13:22:36 MSK; 21h ago
Main PID: 672035 (picodata)
    Tasks: 9 (limit: 38478)
   Memory: 2.8G
      CPU: 21min 57.915s
   CGroup: /user.slice/user-681.slice/user@681.service/iftcluster.slice/iftcluster@default-2001.service
           └─672035 /usr/bin/picodata run --config /app/picodata/data/etc/iftcluster/default-2001.conf --entrypoint-fd=22

box.slab.info() default-2001:

items_size: 624423152 
items_used_ratio: 99.28% 
quota_size: 5368709120 
quota_used_ratio: 48.12% 
arena_used_ratio: 30.4% 
items_used: 619956752 
quota_used: 2583691264 
arena_size: 2583691264 
arena_used: 784550416
Edited by Дмитрий Кибирев
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information