Количество одновременных подключений linux

Одминский блог

Подсчет одновременных сетевых сессий в Linux

Поднял под клиентов сервер на выделенном гигабите с 40 тысячами IPv6 прокси, под парсинг инстаграмма. Клиент, не долго думая, выдал 100% утилизацию канала, т.ч стало интересно – каким образом можно посчитать количество конкурирующих сессий.

Основной инструментарий для получения сетевой статистики – это команда netstat

Например суммарная статистика по протоколам, доступна в выводе команды:
# netstat -e -s
Если мы хотим увидеть вообще всю статистику, то это можно сделать командой:
# netstat -a
и из неё уже производить выборку через grep по протоколам, установленным соединениям или портам. Например, вывести все установленные соединения:
# netstat -a | grep ‘ESTABLISHED’
или подсчитать их количество
# netstat -a | grep ‘ESTABLISHED’| wc -l
статистику по всем протоколам, можно получить командой:
# netstat -s -e
но основная проблема netstat в том, что он перебирает сессии одну за другой и в моем случае, вывода команды можно ждать 5-10 минут.

Поэтому для быстрого просмотра активных сессий, лучше воспользоваться более новой командой сетевой статистики, ss. Например для получения полного количества активных сессий, можно использовать:
# ss -s
Вывод будет практически мгновенным. Даже если подсчитывать число сессий в очереди на подключение, то перебор и вывод будет более шустрым.
# ss -t -a | wc -l
Если надо посмотреть общую статистику, то делается это командой
# ss -s

Как вариант, для netstat, можно посмотреть статистику по сессиям, количество установленных, в режиме закрытия и т.д
# netstat -an | awk ‘/tcp/ ‘ | sort | uniq -c

Если же мы хотим посмотреть кличество сессий установленных, например, с каким нибудь внешним айпи (например полезно при проверке прокси фермы), то для этого следует использовать ключи src или dst

Например внешний модем с айпишником 192.168.1.151

Читайте также:  Protocol security negotiation failure linux

# ss src 192.168.89.151

данная команда выведет все установленные сессии, если же добавить счетчик, то число установленных сессий
# ss src 192.168.89.151|wc -l
аналогичный результат даст и команда
# ss -t | grep 192.168.89.151|wc -l
где -t выводит все TCP сокеты, можно также использовать -u и -x для UDP и UNIX сокетов соответственно
а вот если добавить ключ -a для сессий находящихся в состоянии прослушки, то число сессий увеличится
# ss -t -a | grep 192.168.89.151|wc -l

Источник

Как увеличить количество одновременных подключений в Apache

Сегодня я пришел, чтобы еще раз поговорить с вами об одной из наиболее часто используемых веб-служб в мире: веб-сервере. Apache2.

Это тема, о которой говорили много раз, но теперь я хочу рассказать вам о еще одной особенности, которую следует учитывать при использовании этой услуги: Предел одновременных подключений. Неважно, у нас очень простой или космический корабль с процессором i7 и 32 ГБ оперативной памяти .

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

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

Первое, о чем следует подумать: какой потенциал у моей команды? Сколько одновременных подключений может поддерживать мое оборудование, если я использую его с максимальной силой? Все это зависит от одного фактора; RAM (оперативная память).

Чем больше ОЗУ, тем больше количество подключений, хотя фиксированного значения (то есть, X клиентов для каждого X RAM) нет, поэтому в первую очередь важно выполнить небольшие вычисления на нашем веб-сервере с чтобы знать наши пределы.

Первое, что вы должны знать, это сколько ОЗУ в среднем потребляет каждое соединение с Apache, поскольку каждое установленное соединение предполагает определенное потребление ОЗУ в системе . Очевидно, что не все соединения используют одну и ту же оперативную память, с которой нужно было бы создать media . Все это можно получить с помощью следующей команды:

ps -ylC apache2 --sort: rss | awk ' END '

Полученный результат будет представлен в мегабайтах и ​​может варьироваться в зависимости от количества активных подключений, типа просматриваемых страниц и т. Д. Поэтому рекомендуется проводить тест с разными открытыми вкладками; каждый из них показывает различное содержание, если возможно. В моем случае, например, результат был 9.5458, что, если мы округлим его вверх, будет 10 MB ОЗУ потребляется в среднем на одно соединение.

Читайте также:  Какая последняя версия линукса

Также важно знать, сколько оперативной памяти потребляется остальными процессами, активными в системе, поскольку веб-служба не единственная, которая работает в операционной системе, и необходимо оставить свободную оперативную память на сервере, чтобы она могла выполняться. остальные задачи. Это можно получить с помощью команды, показанной ниже:

ps -N -ylC apache2 --sort: rss | awk ' END '

Полученный результат также будет представлен в мегабайтах и ​​довольно точно покажет нам объем оперативной памяти, потребляемой остальными процессами; в моем случае 800 MB. Обладая этой информацией, мы могли бы сделать общий расчет количества одновременных подключений, которые мы могли бы иметь; Я рассчитываю, что мы получили бы с помощью очень простой операции.

(RAMTOTAL — RAM_RESTOPROCESOS) / RAM_POR_CONNEXIÓN

Имея эту формулу в руках, представим, что у нас есть компьютер с 4 ГБ ОЗУ, то есть 4096 МБ, и что наш компьютер показал вышеупомянутые результаты; расчет будет:

(4096-800) / 10 = 329 одновременных подключений

Проблема с этим расчетом заключается в том, что он слишком экстремальный, поскольку он потребляет всю оперативную память (заставляя сервер использовать подкачку), а также, в случае наличия базы данных, такой как MySQL или любой другой, подключения к ней также будут потреблять RAM, с помощью которой полученное число можно было квалифицировать как утопическое число. Таким образом, чтобы освободить память для возможных дополнительных процессов, а также рассмотреть возможность выполнения подключений к базе данных, мы уменьшим количество подключений до 250.

Теперь, когда у нас есть максимальное количество одновременных подключений, нам нужно подготовить Apache для получения этого номера, что и делается в файле конфигурации этого вызова. apache2.conf, который размещен в / и т.д. / apache2.

Рассматриваемый файл следует структуре, основанной на модули, каждый с соответствующим именем, но нас будет интересовать только один из них, имя которого mpm_prefork_module. Рассматриваемый модуль по умолчанию имеет следующие данные:

StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0

Этот модуль имеет ряд очень важных параметров, хотя есть один из них, который нас особенно заинтересует, называется MaxClients. Этот параметр указывает максимальное количество одновременных подключений и должен быть изменен на 250.

Читайте также:  Dcp 1512r драйвер linux

Следует принять во внимание одну деталь: когда в указанном параметре указано значение, отличное от значения по умолчанию, необходимо добавить еще одно значение ПЕРЕД этим. Этот параметр называется ServerLimit и устанавливает предел подключений, которые сервер может «удерживать», даже если он выходит за пределы лимита.

Параметр ServerLimit всегда должен быть немного выше, чем MaxClients, и здесь, поскольку места для маневра мало, предел 270. В результате модуль будет выглядеть так:

StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 270 MaxClients 250 MaxRequestsPerChild 0

Теперь останется только перезапустить службу Apache с помощью команды:

/etc/init.d/apache2 перезапуск

Благодаря этому мы уже могли пользоваться нашим оптимизированным веб-сервером.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Из Linux » Сети / Серверы » Как увеличить количество одновременных подключений в Apache

Источник

Оцените статью
Adblock
detector