Статьи

Проверка производительности сервера UNIX

Сегодня быстрое время загрузки имеет решающее значение для успеха вашего сайта. Они улучшают взаимодействие с пользователем, позволяют вашим посетителям в полной мере использовать функциональные возможности вашего сайта и, в конечном итоге, помогают вам увеличить трафик. Но как вы можете добиться такого быстрого времени загрузки? Хорошая производительность сервера — вот ответ.

Многие веб-мастера сегодня не удосуживаются — или не знают, как — проверить производительность сервера. Виртуальные (или совместно используемые) веб-узлы могут время от времени проверять производительность своих серверов; однако, если вы работаете на выделенном сервере, вам действительно нужно регулярно проверять его производительность. Если о потенциальной проблеме не позаботятся быстро, она может скоро погасить весь сервер.

Начиная

Существует множество различных протоколов и других способов подключения к вашему серверу, и среди самых популярных вариантов командной строки — Telnet и SSH. Любая информация, передаваемая вами через Telnet, отправляется в виде простого текста, поэтому любой, кто использует анализатор сетевых пакетов, может получить доступ к любой конфиденциальной информации, которую вы можете отправить.
Чтобы удовлетворить потребность в безопасности и конфиденциальности, была разработана Secure Socket Shell (SSH), которая в основном является безопасной версией Telnet, которая шифрует любую информацию, которую вы вводите до отправки данных через Интернет. Поскольку SSH читает меня, файл технически формулирует это,

«SSH (Secure Shell) — это программа для входа на другой компьютер по сети, выполнения команд на удаленном компьютере и перемещения файлов с одного компьютера на другой. Она обеспечивает строгую аутентификацию и безопасную связь по незащищенным каналам. Она предназначена в качестве замены для rlogin, rsh и rcp. «

Для получения дополнительной информации и помощи по SSH перейдите на домашнюю страницу SSH .

Для доступа к вашему серверу вам понадобится программа, способная использовать протоколы SSH. Одна из моих любимых программ для Windows — это Putty , который имеет приятный, оптимизированный интерфейс командной строки. Как только вы запустите Putty или другую программу SSH по вашему выбору, вам нужно будет подключиться к вашему веб-серверу, прежде чем вы сможете выполнять какие-либо команды. Некоторые программы предоставляют графический интерфейс пользователя (GUI), через который вы можете вводить информацию, в то время как другие предоставляют интерфейс командной строки. Если у вас осталась простая командная строка, очевидно, вам нужно будет ввести команду для подключения.

ssh hostname -l username 

Вам нужно будет заменить имя хоста именем домена или IP-адрес сайта, к которому вы подключаетесь. Параметр -l указывает программе не входить в систему как пользователь root, а под другим именем пользователя. Отправьте команду, и вам будет предложено ввести пароль. Обратите внимание, что в отличие от Windows, с которой вы, вероятно, знакомы, вы не увидите звездочек при вводе пароля. После того как вы авторизуетесь, вы войдете в систему.

Если вы когда-нибудь забудете, под каким именем пользователя вы вошли, вы можете запустить эту простую команду UNIX:

 whoami 

После входа в систему вы получаете доступ к миру команд командной строки вашей операционной системы. Изучите все, что вы хотите, но попробуйте выяснить, что делает команда, прежде чем запускать ее. Вы можете получить описание того, что делает любая команда UNIX, используя команду man , а затем команду, о которой вы хотите узнать. Например:

 man top 

Это даст вам объяснение команды top , о которой мы поговорим чуть позже. Не запускайте команды, в которых вы не уверены — достаточно одной команды, чтобы очистить жесткий диск, так что будьте осторожны!

Технические характеристики сервера

То, что может сделать ваш сервер, сильно зависит от оборудования внутри него. Процессор (ы) и оперативная память являются двумя основными игроками. Откуда вы знаете, на что способен ваш сервер? Ну, одна из самых полезных команд UNIX относительно производительности — это top . Он отображает наиболее важные данные о том, что происходит на вашем сервере. Вот типичный пример того, что вы можете получить как часть результата top запроса:

7:06 вечера до 81 дней, 7:47, 1 пользователь, средняя загрузка: 2,90, 2,25, 2,14
214 процессов: 209 спящих, 5 бегущих, 0 зомби, 0 остановленных
Состояние CPU0: 66,3% пользователь, 14,4% система, 27,1% приятно, 18,4% простаивает
Состояние CPU1: пользователь 71,1%, система 14,4%, приятно 37,1%, бездействие 13,2%
Память: 3867832K av, 3853780K используется, 14052K бесплатно, 0K shrd, 100388K buff
Обмен: 530104K av, 45980K используется, 484124K свободно 3228192K кэшируется

Теперь давайте пройдемся по этой информации шаг за шагом.

7:06 вечера до 81 дней, 7:47, 1 пользователь, средняя загрузка: 2,90, 2,25, 2,14

Первое число — это время сервера, после которого указывается, сколько дней и часов назад сервер был последний раз перезагружен. На следующем рисунке показано, сколько пользователей подключено к машине (через такие протоколы, как SSH). Наконец, приходят средние нагрузки на сервер. Первое число указывает среднее число процессов, запущенных за последнюю минуту. Второе указывает на среднее значение за последние 5 минут. Третий показывает среднее значение за последние 15 минут. Следующая строка отображает информацию о процессе, но мы вернемся к этому через минуту. Строки, следующие за этими первыми двумя, предоставляют статистику использования ЦП (в этом примере сервер имеет два ЦП):

Состояние CPU0: 66,3% пользователь, 14,4% система, 27,1% приятно, 18,4% простаивает
Состояние CPU1: пользователь 71,1%, система 14,4%, приятно 37,1%, бездействие 13,2%

Главный ЦП идентифицируется по его номеру (начиная с 0). Режимы выполнения процессора делятся на две категории: непривилегированный режим (пользовательский) и привилегированный режим (системный). Привилегированный режим часто называют режимом ядра (системы); непривилегированный режим может называться «пользовательским» режимом. При выполнении в непривилегированном режиме процесс сможет получить доступ только к своей собственной памяти, тогда как в привилегированном режиме доступ доступен для всех структур данных ядра, а также для базового оборудования. Ядро выполняет процессы в непривилегированном режиме, чтобы предотвратить доступ пользовательских процессов к структурам данных или аппаратным регистрам, которые могут повлиять на другие процессы или операционную среду.

В системе UNIX каждый процесс выполняется в соответствии с тем, что называется уровнем приоритета планирования. Процесс, называемый «планировщик», распределяет процессорное время между процессами в соответствии с их приоритетом или уровнем. Процессы с более высоким уровнем приоритета (-20 является самым высоким) опережают процессы с более низким приоритетом. Процент холостого хода отображает количество энергии процессора, которое не используется. В следующих двух строках приведены данные об использовании памяти и файла подкачки:

Память: 3867832K av, 3853780K используется, 14052K бесплатно, 0K shrd, 100388K buff
Обмен: 530104K av, 45980K используется, 484124K свободно 3228192K кэшируется

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

Процессы

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

214 процессов: 209 спящих, 5 бегущих, 0 зомби, 0 остановленных

Строка начинается с подсчета общих процессов. Затем приводятся объяснения категорий, в которые попадает каждый из этих процессов. Существует четыре категории по умолчанию для процессов: спящий, запущенный, зомби и остановленный. Большинство процессов попадают в спящую категорию — это процессы, ожидающие своей очереди, и, как только наступит их очередь, они станут запущенными процессами. Несколько процессов запущены — это те процессы, над которыми сейчас работают.

В течение жизни процесса сна могут родиться дочерние процессы. Обычно главный процесс убивает свои дочерние процессы до его завершения, однако, если этого не произойдет, дочерний процесс будет продолжаться без своего родителя. Когда это происходит, этот «потерянный ребенок» классифицируется как процесс зомби. Большое количество зомби — это то, чего боится системный администратор, хотя, к счастью, эти процессы завершаются системой через заданные промежутки времени. Наконец, остановленные процессы — это те, которые приостановлены, обычно потому, что они ожидают ресурс.

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

PID USER PRI NI SIZE RSS SHARE STAT% CPU% MEM TIME COMMAND
10685 ze-card 19 19 984 736 724 RN 93,3 0,0 5671 м Webalizer
32072 никто не 9 0 16932 15M 12156 S 6,0 0,3 0:01 httpd
32196 никто не 9 0 16224 14M 12144 S 3,5 0,3 0:01 httpd
1868 никто не 9 0 16284 14M 12620 S 3,1 0,3 0:00 httpd
2136 никто не 9 0 16080 14M 12164 S 2,5 0,3 0:00 httpd
32205 никто не 9 0 16300 14M 12136 S 2,3 0,3 0:00 httpd
32231 никто не 9 0 16316 14M 12172 S 2,3 0,3 0:00 httpd
32124 никто не 9 0 16620 14M 12184 S 1,9 0,3 0:01 httpd

В верхней части списка находятся короткие описания каждого столбца, и для понимания списков полезно знать, что показывает каждый столбец. В первом столбце показан уникальный идентификатор задачи, который называется «идентификатор процесса». В столбце «Пользователь» отображается владелец задачи. «PRI» означает сокращение приоритета, что символизирует важность задачи. «NI» означает Nice, также связанный с очередью фактор, где отрицательные значения имеют более высокий приоритет.

Размер кода задачи, данных и места в стеке (в килобайтах) следующие. «RSS» — это общее использование физической памяти процесса. «ПОДЕЛИТЬСЯ» представляет общую память. «STAT» является аббревиатурой слова «состояние» и относится к состоянию процесса. Здесь «S» обозначает сон, «D» — непрерывный сон, «R» — бег, «Z» — зомби, «T» — остановка или отслеживание, «N» — процесс с положительным приятным значением, «W». для выкачанного процесса. % CPU и% MEM указывают долю общей мощности процессора или памяти, использованную с момента последнего обновления экрана. «ВРЕМЯ» показывает общее количество процессорного времени, которое процесс использовал за время своего существования (т. Е. Количество времени, которое он провел в состоянии «работает»). И наконец, «КОМАНДА» отображает команду, выполняемую задачей.

Пользователи и учетные записи

Один вопрос, который могут задать себе веб-мастера, размещенные на виртуальной или частично выделенной учетной записи, — это сколько людей на сервере, кроме них, — поскольку никто не хочет находиться на перегруженном сервере. На помощь приходит еще одна команда UNIX:

 wc -l </etc/passwd 

Команда является аббревиатурой от «подсчета слов». Параметр -l указывает программе подсчитывать строки, а оставшаяся часть строки указывает, что считать. В этом случае команда указывает программе подсчитать файл со списком всех учетных записей в системе. Помните, что учитываются не только учетные записи пользователей, но и все системные учетные записи. По умолчанию UNIX будет иметь около 15 системных учетных записей. В дополнение к этому, системный администратор вашего сервера, скорее всего, добавил больше системных пользователей, чтобы приспособить для многих функций на вашем сервере. Как правило, на сервере виртуального хостинга можно ожидать около 40 пользователей, которые не размещают клиентов. Если вы хотите просмотреть полный список пользователей, есть команда, которую вы можете использовать.

 more /etc/passwd 

Команда more вызовет файл passwd, который по сути содержит список всех учетных записей в системе. Вы можете посмотреть, какие другие сайты или пользователи находятся на вашем сервере, сосчитать все действительные учетные записи хостинга (на основе их имени пользователя) или выполнить ряд других запросов. Кроме того, если вы когда-нибудь захотите узнать список всех, кто в данный момент вошел в систему на компьютере, вы можете запустить команду «кто».

Дополнительные утилиты

Еще одна полезная утилита, доступная на некоторых серверах, — «Отчет об учетной записи системы», или «SAR» для краткости Команда составлена ​​так:

 sar parameter count timeinterval 
  Parameter - тире, за которым следует буква, которая сообщает SAR, о чем сообщать.  Далее следуют команды, сколько раз проверять и сколько секунд ждать между проверками.  Обычно результаты не трудно расшифровать, особенно с помощью команды man ;  но некоторые общие сокращенные результаты - "TPS" и "BPS".  «TPS» означает перевод в секунду в килобайтах.  «BPS» - сокращение от блоков в секунду;  один блок составляет половину килобайта или 512 байт.

Вот несколько полезных параметров:

  • -b (статистика ввода-вывода и скорости передачи)
  • -c (процесс создания процесса)
  • -d (активность диска)

Есть много других способов проверить производительность, но это касается наиболее важных. И не забывайте использовать команду man если вы не уверены в чем-то. Веселитесь, исследуя!

Дальнейшее чтение (Книги)