Запуск процесса xinetd с отрицательной славой
Я использую xinetd для Firebird Server.
Есть ли способ запустить процесс fb_inet_server с отрицательным приятно? Когда я набираю "-20" в xinetd.conf, он пропускается xinetd. Я посмотрел исходный код xinetd, а параметр "nice" представляет собой целое число без знака, поэтому я не смог указать здесь "-20".:/
Есть ли обходной путь для этого?
Мой конфиг (Debian GNU/Linux 8):
cps = 1500 10
instances = UNLIMITED
per_source = UNLIMITED
flags = NODELAY KEEPALIVE NOLIBWRAP
socket_type = stream
user = firebird
wait = no
disable = no
nice = 1
max_load = 20
rlimit_as = UNLIMITED
rlimit_files = UNLIMITED
rlimit_cpu = UNLIMITED
rlimit_data = UNLIMITED
rlimit_rss = UNLIMITED
rlimit_stack = UNLIMITED
server = /opt/firebird/bin/fb_inet_server
2 ответа
Я получил обходной путь от друга - не мог найти его в Интернете, поэтому я публикую это здесь.
Чтобы автоматически установить nice -20 для новых процессов fb_inet_server:
- Выключите вашу базу данных
- Остановить xinetd
- Задавать
nice = 0
в конфиге firebird xinetd (/etc/xinetd.d/firebird
) - выполнять
renice -n -20
по процессу xinetd - Сделайте свою базу данных онлайн
Каждый новый процесс fb_inet_server является подпроцессом xinetd, и он наследует милость xinetd.
xinetd.conf утверждает, что полагается на nice(3), который в свою очередь утверждает:
Максимальное значение nice 2*{NZERO}-1 и минимальное значение nice 0 устанавливаются системой. Запросы значений выше или ниже этих пределов должны приводить к тому, что значение nice устанавливается равным соответствующему пределу. Только процесс с соответствующими привилегиями может снизить значение nice.
Таким образом, независимо от того, когда вы предоставите отрицательное значение или нет, результат всегда будет положительным. Эффективное значение nice может быть без знака, но вычисление для его получения будет поддерживать вычитание. Вы можете выполнить вычитание беззнаковых значений, результаты всегда будут>= 0.
Кроме того, понижение значения nice запущенного приложения требует соответствующих разрешений.