Максимальное количество одновременных запущенных процессов [ closed]

Ядро утверждает, что может поддерживать до 32768 идентификаторов процессов в / proc / sys / kernel / pid_max , но сколько процессов может обрабатывать мой сервер одновременно, не жалуясь на ресурсы и не зависая на моем сервере,

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

Изменить:

Мой сервер размещен на Linode со следующими спецификациями:

RAM: 12 GB
CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
cpu MHz     : 2499.970
cache size  : 4096 KB
Cores: 6 cores

На моем сервере есть старые версии, которые запускают мое приложение,

Apache 2.2 
mysql 5.5
php 5.3
php5-fpm
1
задан 13 February 2017 в 16:31

3 ответа

Существует формула для вычисления максимального количества активного PIDs или потоков. Выборка от kernel/fork.c :

/*
 * set_max_threads
 */
static void set_max_threads(unsigned int max_threads_suggested)
{

    u64 threads;

    /*
     * The number of threads shall be limited such that the thread
     * structures may only consume a small part of the available memory.
     */
    if (fls64(totalram_pages) + fls64(PAGE_SIZE) > 64)
            threads = MAX_THREADS;
    else
            threads = div64_u64((u64) totalram_pages * (u64) PAGE_SIZE,
                                (u64) THREAD_SIZE * 8UL);

    if (threads > max_threads_suggested)
            threads = max_threads_suggested;

    max_threads = clamp_t(u64, threads, MIN_THREADS, MAX_THREADS);
}

Однако обычно другие пределы будут поражены сначала. Если RAM и другие ресурсы в последний раз, то некоторые пределы cgroup, вероятно, будут первыми, где в основном предел:

$ cat /sys/fs/cgroup/pids/user.slice/user-1000.slice/pids.max
12288

число, 12288, является тем же и на моем более старом сервере на 3 гигабайта и на моем более новом сервере на 16 гигабайтов.
И я могу протестировать путем попытки затянуть больше, чем максимальное количество, приведения к сообщению в /var/log/kern.log:

Feb 12 15:49:11 s15 kernel: [  135.742278] cgroup: fork rejected by pids controller in /user.slice/user-1000.slice

И проверка числа я имел в то время:

$ cat /sys/fs/cgroup/pids/user.slice/user-1000.slice/pids.current
12287

top сказал приблизительно 12 479

, Но после тех законченных процессов, я добрался:

$ cat /sys/fs/cgroup/pids/user.slice/pids.current
15

top сказал приблизительно 205 и примечание: 12479 - 205 + 15 = 12289

3
ответ дан 3 December 2019 в 06:30

Нет никакого другого ответа, чем , зависит .

, Что делает процесс? Сон, ожидающий чего-то, не используя RAM? Затем можно выполнить 32 768 процессов. Это выполняет огромные таблицы базы данных? Затем намного меньше.

, Кроме того, это зависит от Ваших аппаратных средств. Квадратический сокет xeon с 10 ядрами обработает более высокую загрузку, чем малина...

Мой ноутбук имеет 266 процессов и загрузку 0,66, указывая, что большинство спит.

1
ответ дан 3 December 2019 в 06:30

Ответ мог быть тысячами, сотнями, или ten's. Это зависело бы от ресурсов Вашего компьютера и что на самом деле делают процессы.

Лучшая вещь, которую можно сделать, состоит в том, чтобы выполнить сервер, изучить ресурсы и ресурсы увеличения на основе использования сервера.

Ресурсы в основном зависятся от скорости и поршня компьютера, который баран позволяет вручать большему количеству процессов в памяти, в то время как скорость допускает быструю обработку задач, затем идя в следующий процесс.

Если загрузка Вашей системы 1.00 (может быть проверен путем выполнения top от командной строки), затем это является в основном рабочим в полном соучастии. Что-либо по этому - переполнение, с которым компьютер работает, чтобы не отставать. Если бы загрузка становится слишком высокой, конечно, могло бы потребоваться так много времени для наверстывания, что это стало бы в основном запертым.

Между прочим, эти 1.00 на процессор. Таким образом, если бы у Вас есть 4 основных процессора, нагрузка была бы предельной в 4,00.

Смотрите на эту статью для получения дополнительной информации о загрузке:
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

Таким образом, необходимо было бы на самом деле изучить загрузку с приложением, таким как вершина для измерения ресурсов, что необходимо будет выполнить тип сервера и трафика, Вы имеете в виду.

2
ответ дан 3 December 2019 в 06:30

Другие вопросы по тегам:

Похожие вопросы: