Отказ инстанса после продолжительной операции 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 Дмитрий Кибирев