|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
Здравствуйте. Установил Firebird 3.0.2 (64bit) в CENTOS 7. ОС обновлена. СУБД работает нормально. НО, столкнулся с такой проблемой: Запуск и останов службы с помощью systemctl происходит очень медленно . По моим наблюдениям сам firebird стартует (и останавливается быстро), но systemctl зависает по таймауту. Например при Код: plaintext
Код: powershell 1. 2. 3. 4. 5.
файл: /var/run/firebird/firebird.pid - создается, и имеет верное значение PID firebird Код: powershell 1. 2.
Код: powershell 1. 2. 3.
На всякий случай конфиг systemd: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Что не так? Пожалуйста, подскажите в какую сторону смотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 01:26 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
Уточнение. Проблема осталась только с остановом Firebird. Код: plaintext
Код: powershell 1. 2. 3. 4. 5. 6.
Как видно из лога таймаут - 30 секунд. Но Firebird, в действительности останавливается сразу же после выполнения команды. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 02:13 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
do.Donitoza, что в этот момент говорит "systemctl status firebird-superserver.service" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 09:44 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
Вроде в 3-м ФБ как раз ввели, что при отключении от БД он некоторое время висит ждёт, вдруг кто-то подключится заново. М.б. в скрипте как-то на это заложились, ждут таймаута, чтобы уж наверняка? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 12:05 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
rdb_devdo.Donitoza, что в этот момент говорит "systemctl status firebird-superserver.service" ? Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 12:35 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
AriochВроде в 3-м ФБ как раз ввели, что при отключении от БД он некоторое время висит ждёт, вдруг кто-то подключится заново. М.б. в скрипте как-то на это заложились, ждут таймаута, чтобы уж наверняка? Если это так, то может быть кто-то знает как уменьшить таймаут? Сейчас - это 90 секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 12:38 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
Ariochон некоторое время висит ждёт, вдруг кто-то подключится заново. ну вот не надо. Если linger не задан, ничего он (суперсервер) не ждет. Да и если его останавливают, тоже не ждет. Linger - это удержание кэша БД в памяти в течение N секунд при отключении последнего коннекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 13:13 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
На Suse 42,2 на тестовом сервере у меня все стартует/останавливается через системд без тормозов. Может в дистрибутиве что-то не так? С семеркой центосом у нас не заладилось, рабочие серверы на шестерке, там, слава Богу, системды нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 13:26 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
do.Donitoza, что внутри конфигурации юнита "/usr/lib/systemd/system/firebird-superserver.service"? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 13:35 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
do.DonitozaНа всякий случай конфиг systemd:Алекс советует такой конфиг Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Возможная причина в том что мы прописываем в pidfile PID firebird, а systemd хочет иметь там PID fbguard. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 13:58 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
Действительно, как оказалось проблема pid-файле. Мои умозаключения (поправьте если ошибаюсь): systemd проверяет является ли его дочерним процессом, тот процесс которым он управляет через pid. А так, как firebird стартует через fbguard, то systemd не может получить обратную связь от него (как от дочернего процесса). О чем свидетельствует запись при старте: Код: powershell 1.
При завершении процесса, ситуация та же - закочнил ли уже свое выполнение firebird или нет - systemd не знает, поэтому он просто ждет и "убивает" процесс из pid-файла. Код: powershell 1.
Следовательно, как вы и советовали, достаточно убрать из конфигурации systemd информацию о pid-файле, что бы systemd снял с себя ответственность за корректное завершение процесса. При этом, с точки зрения "правильности" процесса завершения работы через systemd, то получается "не правильно" (теоретически связка fbguard/firebird может "висеть" и его никто не "убьет"). Правильнее было бы сделать возможным установку pid-файла процессу fbguard и его использовать в конфигурации systemd. Но это только мое ИМХО. ИТОГО: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Останавливается и стартует без пауз. Всем большое спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 14:27 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
do.Donitozasystemd проверяет является ли его дочерним процессом, тот процесс которым он управляет через pid а что, сам systemd разве не знает, кого он сам запускает? Зачем ему ещё внешний pid-файл ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 14:34 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
do.Donitoza Код: powershell 1.
Знает он всё явно. Зачем ему при этом нестандартный источник PID'а настроили - загадка ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 14:36 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
Ariochdo.Donitozasystemd проверяет является ли его дочерним процессом, тот процесс которым он управляет через pid а что, сам systemd разве не знает, кого он сам запускает? Зачем ему ещё внешний pid-файл ? Конечно, знает, видимо для подобных случаев и оставили (кому-то же надо убить процесс если он завис))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 15:00 |
|
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
|
|||
---|---|---|---|
#18+
do.Donitoza, в оригинальной доке по systemd написано, что тип forking используется для запуска классических демонов, которые выстреливают дочерний процесс, пишут pid файл дочернего процесса и завершают свою работу по exit=0, чем уведомляют systemd об успешности запуска, после чего, systemd контролирует только процесс с указанным в файле pid. Но, на сколько я понимаю, завершения процесса fbguard не происходит, а в как демон (при "fbguard -forever -daemon") стартует сам движок FB. То есть, останов службы подвисает не из-за некорректного останова, а из-за некорректного пуска. В нашем случае, fbguard продолжает висеть, контролируя работу дочернего процесса - движка ФБ и являясь основным процессом службы "firebird-superserver.service", на мой взгляд, надо использовать тип запуска simple или notify. В оригинальной доке я не нашел ни слова о том, что родительский процесс не должен ветвиться по fork. Предлагаю, помимо "PIDFile=" также комментировать и "Type=". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2018, 15:21 |
|
|
start [/forum/topic.php?fid=40&fpage=37&tid=1561264]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 157ms |
0 / 0 |