Я пытался выполнить ps -ef
или top
но они не выводят список процессов и чего-то ждут. vmstat 99% idle CPU
.
ОС Solaris 8. Аппаратное обеспечение Sun V440. 4 CPU 16 G RAM. Своп 4 Гб.
После нескольких попыток выполнить команду я снова открыл сеанс.
В ps -ef|wc -l
Команда показала результат 672, в нормальном состоянии всего процесса 38-42. Сервер был перезагружен.
Какие параметры нужно увеличить в ядре, чтобы сервер стабильно работал с большим количеством процессов?
/etc/system
set rlim_fd_cur=1024
обновление 1 Проблема заключалась в небольшом количестве файловых дескрипторов по умолчанию 1024.
set rlim_fd_max=4096
Добавьте следующие строки в /etc/system
и перезагрузить
set pidmax=60000
set maxusers = 4096
set maxuprc = 50000
set max_nprocs = 50000
pidmax - Задает значение максимально возможного идентификатора процесса. Действительно для Solaris 8 и более поздних версий. [Диапазон от 266 до 999999, по умолчанию 30000]
maxusers - Максимальное количество процессов в системе, Количество структур квот, удерживаемых в системе. Размер кеша поиска имени каталога (DNLC). [Диапазон от 1 до 4096, по умолчанию: меньше из объема памяти в Мбайтах и 2048]
maxuprc - Задает максимальное количество процессов, которые могут быть созданы в системе одним пользователем [Диапазон от 1 до max_nprocs - reserved_procs, по умолчанию max_nprocs - reserved_procs]
reserved_procs - Указывает количество слотов системных процессов, которые должны быть зарезервированы в таблице процессов для процессов с UID root (0). [Диапазон от 5 до MAXINT, по умолчанию 5]
max_nprocs - Задает максимальное количество процессов, которые могут быть созданы в системе. Включает системные процессы и пользовательские процессы. Любое значение, указанное в / etc / system, используется при вычислении maxuprc. [Диапазон от 266 до значения maxpid, по умолчанию 10 + (16 x maxusers)]
См. Официальную документацию по Solaris 8 об этих параметрах на docs.oracle.com.