Вывод списка процессов Эллес на контроллере домена

Для получения списка процессов сервисов Эллес, запущенных на контроллере домена, с помощью утилиты samba-tool используется подкоманда processes.

Подкоманда выполняется от имени пользователя root.

Общие сведения

Процесс samba поддерживает несколько режимов обработки клиентских соединений (RPC, LDAP и т. д.). Режим задается при запуске процесса с помощью аргумента командной строки -M|--model.

Доступны следующие режимы:

  • standard — для каждого сервиса Эллес создается отдельный процесс, а для сервисов LDAP и NETLOGON при каждом входящем клиентском соединении также запускается отдельный дочерний процесс, что ведет к большому потреблению системных ресурсов при значительном количестве соединений;

  • prefork (по умолчанию) — для каждого сервиса Эллес создается отдельный процесс, а для сервисов LDAP, NETLOGON и KDC также запускается фиксированное количество рабочих процессов, между которыми распределяется нагрузка по обработке входящих клиентских соединений; количество рабочих процессов задается с помощью параметра prefork children в конфигурационном файле /app/inno-samba/etc/smb.conf (по умолчанию — 4); для каждого сервиса может быть задано свое значение в формате prefork children: service name (например: prefork children:ldap = 8);

  • single — все сервисы Эллес работают в одном процессе; данный режим предназначен для тестирования и отладки.

Для просмотра запущенных на контроллере домена процессов, относящихся к Эллес, может использоваться подкоманда samba-tool processes (должна выполняться от имени пользователя root).

Вывод подкоманды может использоваться для диагностирования проблем в работе сервисов Эллес.

Режим prefork

В режиме prefork для поддерживающих его сервисов (KDC, LDAP, RPC) помимо основного процесса в выводе подкоманды также отображается то количество рабочих процессов, которое задано в настройках Эллес.

Пример вывода при prefork children = 4 (по умолчанию):

 Service:                          PID
--------------------------------------
cldap_server                     29865
dnssrv                           29894
dnsupdate                        29891
dreplsrv                         28476
kccsrv                           29887
kdc_server                       29869
kdc_server(worker 3)             29893
kdc_server(worker 0)             29878
kdc_server(worker 1)             29883
kdc_server(worker 2)             29888
ldap_server                      29861
ldap_server(worker 1)            29910
ldap_server(worker 2)            29913
ldap_server(worker 0)            29908
ldap_server(worker 3)            29916
nbt_server                       29856
notify-daemon                    29903
rpc_server                       29852
rpc_server(worker 2)             29871
rpc_server(worker 0)             29862
rpc_server(worker 1)             29867
rpc_server(worker 3)             29876
samba                            29848
winbind_server                  29885

В общем случае основной процесс отвечает за запуск и перезапуск рабочих процессов. В случае RPC-сервера вызовы от NETLOGON распределяются по всем рабочим процессам, тогда как остальные RPC-вызовы обрабатываются первым рабочим процессом (rpc_server(worker 0)).

Если рабочий процесс завершается по какой-либо причине, он перезапускается. Если проблема сохраняется, постоянный перезапуск рабочего процесса может привести к чрезмерному потреблению ресурсов CPU. Для снижения негативного влияния такой ситуации на общую производительность при каждом перезапуске основного или рабочего процесса увеличивается период от завершения процесса до перезапуска на значение параметра prefork backoff increment (задается в разделе global конфигурационного файла smb.conf) до тех пор, пока не будет достигнуто максимальное значение, установленное параметром prefork maximum backoff. В течение этого периода клиентские соединения перераспределяются между доступными рабочими процессами (если не задано значение prefork children = 1).

Параметр prefork backoff increment может быть задан для конкретного сервиса в формате prefork backoff increment: service name (например: prefork backoff increment:ldap = 2).

Формат вызова

Для получения информации о процессах сервисов Эллес используется следующий формат вызова:

samba-tool processes [options]

Подкоманда выводит имена и PID процессов сервисов Эллес.

Параметры

Параметры вызова:

  • --name — возвращать только PID процессов, связанных с указанным именем сервиса;

  • --pid — возвращать только имена процессов, связанных с указанным значением PID.

Примеры

Пример получения PID процессов, связанных с сервисом KDC:

samba-tool processes --name=kdc_server
29878
29883
29888
29893

Пример получения имени процесса по его PID:

samba-tool processes --pid=29894
dnssrv