Кеш: стеля памʼяті вимагає ще й обмеження потоків
Учора додав Dragonfly `--maxmemory`, щоб він не рахував ту саму
памʼять, яку вже порахував PG_SHARED_BUFFERS. На стенді це поклало
кеш у цикл перезапусків:
There are 4 threads, so 1.00GiB are required. Exiting...
Dragonfly вимагає 256 МБ на КОЖЕН потік вводу-виводу, а їх за
замовчуванням стільки ж, скільки ядер. На 4-ядерній машині стеля 512 МБ
означає «потрібен 1 ГіБ» — і відмову стартувати. Тепер потоків два:
для кешу сесій з запасом, і 512 МБ їм вистачає.
Друга половина помилки тихіша: `command:` ЗАМІНЮЄ команду образу, а не
доповнює її, тож разом зі стелею я загубив `--logtostderr`. Журнал
пішов у файл усередині контейнера — тобто `docker logs` мовчав би, і
контейнер, що падає в циклі, виглядав би як контейнер без проблем.
Обидва слова повернуто явно.
Знайдено відкриттям порту трапів: кеш ліг при тому ж перезапуску, і
якби не порожній `docker logs`, я шукав би причину значно довше.
This commit is contained in:
parent
e98d51fe76
commit
25da4ffea8
1 changed files with 16 additions and 1 deletions
|
|
@ -113,7 +113,22 @@ services:
|
|||
# PG_SHARED_BUFFERS. На машині з 4 ГБ два незалежні розрахунки
|
||||
# чверті одного пирога закінчуються тим, що ядро вбиває когось
|
||||
# третього, найімовірніше API. Установник задає обидві цифри разом.
|
||||
command: ["--maxmemory=${DRAGONFLY_MAXMEMORY:-512mb}"]
|
||||
# Штатна команда образу — `dragonfly --logtostderr`; command її
|
||||
# ЗАМІНЮЄ, а не доповнює, тому обидва слова тут обов'язкові. Без
|
||||
# --logtostderr журнал іде у файл усередині контейнера, тобто
|
||||
# `docker logs` мовчить — і контейнер, що падає в циклі, виглядає
|
||||
# як контейнер без проблем.
|
||||
#
|
||||
# --proactor_threads не косметика, а умова роботи: Dragonfly вимагає
|
||||
# 256 МБ на КОЖЕН потік вводу-виводу й відмовляється стартувати,
|
||||
# якщо стеля менша. За замовчуванням потоків стільки ж, скільки
|
||||
# ядер, тож на 4-ядерній машині стеля 512 МБ дає «потрібен 1 ГіБ,
|
||||
# виходжу». Два потоки для кешу сесій — з запасом.
|
||||
command:
|
||||
- dragonfly
|
||||
- --logtostderr
|
||||
- --maxmemory=${DRAGONFLY_MAXMEMORY:-512mb}
|
||||
- --proactor_threads=${DRAGONFLY_THREADS:-2}
|
||||
volumes:
|
||||
- cache-data:/data
|
||||
restart: unless-stopped
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue