powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
15 сообщений из 15, страница 1 из 1
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589620
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Установил Firebird 3.0.2 (64bit) в CENTOS 7. ОС обновлена.

СУБД работает нормально. НО, столкнулся с такой проблемой:
Запуск и останов службы с помощью systemctl происходит очень медленно .

По моим наблюдениям сам firebird стартует (и останавливается быстро), но systemctl зависает по таймауту.

Например при
Код: plaintext
 [root@fb-test ~]# systemctl start firebird-superserver 
Код: powershell
1.
2.
3.
4.
5.
[root@fb-test ~]# tail -f /var/log/messages
Jan 23 21:55:15 fb-test systemd: Starting Firebird Database Server ( SuperServer )...
Jan 23 21:55:15 fb-test systemd: PID file /var/run/firebird/firebird.pid not readable (yet?) after start.
Jan 23 21:55:15 fb-test systemd: firebird-superserver.service: Supervising process 9196 which is not our child. We'll most likely not notice when it exits.
Jan 23 21:55:15 fb-test systemd: Started Firebird Database Server ( SuperServer ).


файл: /var/run/firebird/firebird.pid - создается, и имеет верное значение PID firebird
Код: powershell
1.
2.
[root@fb-test ~]# cat /var/run/firebird/firebird.pid
9196


Код: powershell
1.
2.
3.
[root@fb-test ~]# ps aux
firebird  9195  0.0  0.0  29652  2712 ?        S    21:55   0:00 /opt/firebird/bin/fbguard -pidfile /var/run/firebird/firebird.pid -daemon -forever
firebird  9196  0.0  0.3 273340 14544 ?        Sl   21:55   0:00 /opt/firebird/bin/firebird


На всякий случай конфиг systemd:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
[root@fb-test ~]# cat /etc/systemd/system/multi-user.target.wants/firebird-superserver.service
[Unit]
Description=Firebird Database Server ( SuperServer )
After=syslog.target network.target
Conflicts=firebird-classic.socket

[Service]
User=firebird
Group=firebird
Type=forking
PIDFile=/var/run/firebird/firebird.pid
ExecStart=/opt/firebird/bin/fbguard -pidfile /var/run/firebird/firebird.pid -daemon -forever
StandardError=syslog

[Install]
WantedBy=multi-user.target



Что не так?
Пожалуйста, подскажите в какую сторону смотреть?
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589624
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточнение. Проблема осталась только с остановом Firebird.

Код: plaintext
systemctl stop firebird-superserver.service
Код: powershell
1.
2.
3.
4.
5.
6.
[root@fb-test /]# tail -f  /var/log/messages
Jan 23 23:02:27 fb-test systemd: Stopping Firebird Database Server ( SuperServer )...
Jan 23 23:03:57 fb-test systemd: firebird-superserver.service stop-sigterm timed out. Killing.
Jan 23 23:03:57 fb-test systemd: Stopped Firebird Database Server ( SuperServer ).
Jan 23 23:03:57 fb-test systemd: Unit firebird-superserver.service entered failed state.
Jan 23 23:03:57 fb-test systemd: firebird-superserver.service failed.



Как видно из лога таймаут - 30 секунд. Но Firebird, в действительности останавливается сразу же после выполнения команды.
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589694
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitoza, что в этот момент говорит "systemctl status firebird-superserver.service" ?
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589861
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде в 3-м ФБ как раз ввели, что при отключении от БД он некоторое время висит ждёт, вдруг кто-то подключится заново.

М.б. в скрипте как-то на это заложились, ждут таймаута, чтобы уж наверняка?
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589916
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devdo.Donitoza, что в этот момент говорит "systemctl status firebird-superserver.service" ?

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[root@fb-3 ~]# systemctl status firebird-superserver.service
● firebird-superserver.service - Firebird Database Server ( SuperServer )
   Loaded: loaded (/usr/lib/systemd/system/firebird-superserver.service; enabled; vendor preset: disabled)
   Active: deactivating (stop-sigterm) since Ср 2018-01-24 09:32:35 UTC; 43s ago
  Process: 1505 ExecStart=/opt/firebird/bin/fbguard -pidfile /var/run/firebird/firebird.pid -daemon -forever (code=exited, status=0/SUCCESS)
 Main PID: 1507
   CGroup: /system.slice/firebird-superserver.service

янв 24 09:31:59 fb-3 systemd[1]: Starting Firebird Database Server ( SuperServer )...
янв 24 09:31:59 fb-3 systemd[1]: firebird-superserver.service: Supervising process 1507 which is not our child. We'll most likely not notice when it exits.
янв 24 09:31:59 fb-3 systemd[1]: Started Firebird Database Server ( SuperServer ).
янв 24 09:32:35 fb-3 systemd[1]: Stopping Firebird Database Server ( SuperServer )...
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589921
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AriochВроде в 3-м ФБ как раз ввели, что при отключении от БД он некоторое время висит ждёт, вдруг кто-то подключится заново.

М.б. в скрипте как-то на это заложились, ждут таймаута, чтобы уж наверняка?

Если это так, то может быть кто-то знает как уменьшить таймаут?
Сейчас - это 90 секунд.
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589982
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochон некоторое время висит ждёт, вдруг кто-то подключится заново.
ну вот не надо. Если linger не задан, ничего он (суперсервер) не ждет. Да и если его останавливают, тоже не ждет.
Linger - это удержание кэша БД в памяти в течение N секунд при отключении последнего коннекта.
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39589993
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Suse 42,2 на тестовом сервере у меня все стартует/останавливается через системд без тормозов.
Может в дистрибутиве что-то не так?

С семеркой центосом у нас не заладилось, рабочие серверы на шестерке, там, слава Богу, системды нету.
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39590011
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitoza, что внутри конфигурации юнита "/usr/lib/systemd/system/firebird-superserver.service"?
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39590047
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.DonitozaНа всякий случай конфиг systemd:Алекс советует такой конфиг

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[Unit]
Description=Firebird Database Server ( SuperServer )
After=syslog.target network.target
Conflicts=firebird-classic.socket

[Service]
User=firebird
Group=firebird
Type=forking
ExecStart=/opt/firebird/bin/fbguard -daemon -forever
StandardError=syslog

[Install]
WantedBy=multi-user.target

Возможная причина в том что мы прописываем в pidfile PID firebird, а systemd хочет иметь там PID fbguard.
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39590077
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, как оказалось проблема pid-файле.
Мои умозаключения (поправьте если ошибаюсь): systemd проверяет является ли его дочерним процессом, тот процесс которым он управляет через pid. А так, как firebird стартует через fbguard, то systemd не может получить обратную связь от него (как от дочернего процесса).
О чем свидетельствует запись при старте:
Код: powershell
1.
Jan 23 21:55:15 fb-test systemd: firebird-superserver.service: Supervising process 9196 which is not our child. We'll most likely not notice when it exits.


При завершении процесса, ситуация та же - закочнил ли уже свое выполнение firebird или нет - systemd не знает, поэтому он просто ждет и "убивает" процесс из pid-файла.
Код: powershell
1.
Jan 23 23:03:57 fb-test systemd: firebird-superserver.service stop-sigterm timed out. Killing.


Следовательно, как вы и советовали, достаточно убрать из конфигурации 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.
# cat /usr/lib/systemd/system/firebird-superserver.service
[Unit]
Description=Firebird Database Server ( SuperServer )
After=syslog.target network.target
Conflicts=firebird-classic.socket

[Service]
User=firebird
Group=firebird
Type=forking
#PIDFile=/var/run/firebird/firebird.pid
ExecStart=/opt/firebird/bin/fbguard -pidfile /var/run/firebird/firebird.pid -daemon -forever
StandardError=syslog

[Install]
WantedBy=multi-user.target



Останавливается и стартует без пауз.

Всем большое спасибо.
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39590089
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitozasystemd проверяет является ли его дочерним процессом, тот процесс которым он управляет через pid

а что, сам systemd разве не знает, кого он сам запускает? Зачем ему ещё внешний pid-файл ?
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39590091
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitoza
Код: powershell
1.
  Process: 1505 ExecStart=/opt/firebird/......



Знает он всё явно. Зачем ему при этом нестандартный источник PID'а настроили - загадка
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39590121
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ariochdo.Donitozasystemd проверяет является ли его дочерним процессом, тот процесс которым он управляет через pid

а что, сам systemd разве не знает, кого он сам запускает? Зачем ему ещё внешний pid-файл ?

Конечно, знает, видимо для подобных случаев и оставили (кому-то же надо убить процесс если он завис)))
...
Рейтинг: 0 / 0
Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
    #39590147
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitoza, в оригинальной доке по systemd написано, что тип forking используется для запуска классических демонов, которые выстреливают дочерний процесс, пишут pid файл дочернего процесса и завершают свою работу по exit=0, чем уведомляют systemd об успешности запуска, после чего, systemd контролирует только процесс с указанным в файле pid. Но, на сколько я понимаю, завершения процесса fbguard не происходит, а в как демон (при "fbguard -forever -daemon") стартует сам движок FB. То есть, останов службы подвисает не из-за некорректного останова, а из-за некорректного пуска.

В нашем случае, fbguard продолжает висеть, контролируя работу дочернего процесса - движка ФБ и являясь основным процессом службы "firebird-superserver.service", на мой взгляд, надо использовать тип запуска simple или notify. В оригинальной доке я не нашел ни слова о том, что родительский процесс не должен ветвиться по fork.

Предлагаю, помимо "PIDFile=" также комментировать и "Type=".
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 3.0.2 в CENTOS 7: Запуск и останов службы с помощью systemctl происходит медленно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]