Разное

Определить хостинг: 2ip.ru | DDoS protection

04.06.2023

Как определить что создает нагрузку на сервер UNIX — Помощь

Указанная статья актуальна только для услуг виртуальных и выделенных серверов с ОС Linux и c уровнем доступа root. На виртуальном хостинге и на серверах ОС семейства Windows указанное выполнить нет возможности.

Вся работа осуществляется только при подключении по протоколу SSH: https://thehost.ua/wiki/ssh-connect

Сначала рекомендуем запустить самую стандартную утилиту top. Внешний вид утилиты следующий:

В верхней строке слева на право указано текущее системное время сервера после top, затем время работы сервера онлайн и количество пользователей в данный момент.

Важным показателем является load average который показывает усредненную загрузку всех подсистем сервера в текущий момент, за последние 15 минут и за последний час. Стоит отметить что этот показатель не должен превышать количество ядер сервера, то есть для 1-ядерного CPU — номинальная нагрузка — 1, для 2-х ядерного — 2 и т.

д.

В строчке Tasks указано количество запущенных заданий на сервере с разбивкой по их состоянию.

В строчке CPU указано:

  • us — (User CPU time) время, затраченное на работу программ пользователей
  • sy — (System CPU time) время, затраченное на работу процессов ядра
  • ni — (Nice CPU time) время, затраченное на работу программ с измененным приоритетом
  • id — простой процессора
  • wa — (iowait) время, затраченное на завершение ввода-вывода
  • hi — (Hardware IRQ) время, затраченное на обработку hardware-прерываний
  • si — (Software Interrupts) время, затраченное на работу обработку software-прерываний (network)
  • st — (Steal Time) время, «украденное» гипервизором у этой виртуальной машины для других задач (например работа другой виртуальной машины)

В строчках MEM и SWAP указано доступный размер оперативной памяти/файла подкачки, используемый обьем, свободный обьем и обьем буферезированной/кешированной памяти.

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

Стандартные колонки:

  • PID — идентификатор процесса
  • USER — пользователь, от которого запущен процесс
  • PR — текущий приоритет процесса
  • NI — приоритет, выставленный командой nice. От −20 (наивысший) до 19.
  • VIRT — полный объем виртуальной памяти, которую занимает процесс
  • RES — текущее использование оперативной памяти
  • S — текущее состояние («START», «RUN» (только в этом состоянии показывает текущую нагрузку программы на процессор), «SLEEP», «STOP», «ZOMB», «WAIT» или «LOCK»)
  • %CPU — процент доступного времени процессора, которое использовала запущенная программа
  • %MEM — процент использования оперативной памяти данным процессом
  • TIME — время использования процессора в секундах
  • COMMAND — команда, запустившая процесс.

Дополнительная информация есть также на сайте — https://ru. wikipedia.org/wiki/Top

Также можно использовать альтернативную утилиту htop

Внешний вид ее следующий:

Боле подробно об этой утилите можно почитать тут — https://ru.wikipedia.org/wiki/Htop

Также эффективна команда atop -r, используя клавиши t и shift+t можно смотреть историю работы сервера.

В случае если в top имеется большой показатель wa, стоит воспользоваться утилитой atop -dD

для подробного определения нагрузки на диски, raid-массивы и сеть:

Если процент загрузки сети в atop (eth0 на примере выше) большой, с помощью утилиты iftop можно определить какие сайты и удаленные сервера собственно создают трафик

Командой kill можно остановить конкретный процесс, указав его PID команда killall -9 apache2 к примеру завершит все процессы apache на сервере команда killall -u user завершит все процессы пользователя user

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

var/log, в частности рекомендуем к просмотру системные логи syslog, kernal, atop и логи сервисов. которые зависли, как то apache2, nginx, mysql и другие.

Также если на сервере установлен веб-сервис Nginx и размещены сайты, то с помощью следующей команды можно вывести список сайтов, на который поступило больше всего запросов:

tail -n 10000 /var/log/nginx/access.log | awk '{print $6}' | sort -n | uniq -c | sort -nr | head -n10

Следующая команда выведет список IP с которых поступило больше всего запросов:

tail -n 10000 /var/log/nginx/access.log | awk '{print $1}' | sort -n | uniq -c | sort -nr | head -n10

Следующий пример команды заблокирует доступ к серверу для IP 1.1.1.1

iptables -I INPUT -s 1.1.1.1 -j REJECT

Более подробно о работе с iptables можно прочесть тут — http://help.ubuntu.ru/wiki/iptables

Как определить номер активированного цифрового входа/выхода (I/O)

Если к цифровым входам/выходам трекера подключено оборудование, возникает необходимость выбрать соответствующий этим входам/выходам параметр в Wialon. Это особенно важно в тех случаях, когда вы не знаете точно, к какому цифровому входу подключено оборудование, а рассчитываете определить это на основе поступающих сообщений. На этом этапе может возникнуть сложность, так как отдельного параметра для каждого из входов/выходов в сообщениях вы не увидите.

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

В начале стоит отметить, что состояние цифровых входов и выходов представлено в Wialon в виде двух шестнадцатеричных чисел (HEX), получаемых из двоичных чисел (BIN), в которых каждому входу/выходу соответствует бит с таким же номером. Параметр с этими значениями имеет имя I/O (сокращение от Inputs/Outputs) и содержит в себе два шестнадцатиричных значения, разделённых косой чертой: до неё располагается значение, соответствующее состоянию всех входов, а после – всех выходов.

Почему выбрана такая реализация?

Давайте рассмотрим пример.

Предположим, что к цифровым входам 1, 7, 17, 19 и 20, а также выходам 1, 12 и 24 подключено оборудование. В дополнение предположим, что в рассматриваемом сообщении все упомянутые входы и выходы активированы.

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

in1=1, in2=0, in3=0, in4=0, in5=0, in6=0, 

in7=1, in8=0, in9=0, in10=0, in11=0, in12=0, in13=0, in14=0, in15=0, in16=0, in17=1, in18=0, in19=1in20=1, in21=0, in22=0, in23=0, in24=0, in25=0, in26=0, in27=0, in28=0, in29=0, in30=0, in31=0, in32=0, out1=1, out2=0, out3=0, out4=0, out5=0, out6=0, out7=0, out8=0, out9=0, out10=0, out11=0, out12=1, out13=0, out14=0, out15=0, out16=0, out17=0, out18=0, out19=0, out20=0, out21=0, out22=0, out23=0, out24=1, out25=0, out26=0, out27=0, out28=0, out29=0, out30=0, out31=0, out32=0

В реализации, используемой в Wialon, вы увидите следующую запись:

I/O=D0041/800801

Очевидная краткость записи в данном случае является ключевым преимуществом.

Так как же определить номер активированного цифрового входа/выхода?

Если номер N входа/выхода известен (например, N=4), то параметр входа будет иметь вид inN, а параметр выхода outN (то есть в нашем примере это in4 и out4). В таком случае конвертация HEX в BIN не потребуется.

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

Подбор

В основном у трекеров не так много цифровых входов/выходов, тем более при установке чаще всего используются входы/выходы с начала. То есть вероятнее всего оборудование подключено к in1, in2, in3 или in4.

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

Это самый быстрый практический метод нахождения нужного входа (аналогично можно работать с выходами, но использовать в таком случае нужно параметры out1, out2 и т.д.). Но если он не сработал, то вы можете прибегнуть к математическому подходу.

Математический подход

Если вам не известен номер входа/выхода, к которому подключено оборудование, то вы можете воспользовать следующей инструкцией:

  1. Перейдите в панель «Сообщения», выберите тип сообщений «Сообщения с данными», а в меню ниже укажите «Исходные данные».
  2. Запросите данные за какой-либо интервал времени, на котором вы однозначно знаете время, когда подключенное оборудование было включено и выключено.
  3. После отображения таблицы с сообщениями от трекера обратите внимание на колонку «Параметры», а именно на её конец, и найдите там параметр I/O.
    Предположим, что в сообщении, где оборудование было включено, параметр I/O=10A/0, то есть цифровые выходы деактивированы (или даже не подключены), а некоторые цифровые входы активированы.
  4. Откройте приложение «Калькулятор» (предустановленное на каждом компьютере, либо найденное в интернете) и переключите его в режим «Прогаммист» (или аналогичный, используемый для работы с разными системами счисления).
  5. Переключите калькулятор на шестнадцатиричную систему счисления (HEX).
  6. Введите найденное в пункте 3 значение 10A.
    Приложение автоматически (либо по нажатие клавиши ввода) представит вам данное число в разных системах счисления. Нас же интересует запись в двоичном виде (BIN), которая состоит только из 0 и 1.
  7. Изучите полученное двоичное число, при этом учитывайте, что отсчёт бит идёт справа налево (как и в десятичной системе, где единицы находятся справа, а уже слева от них находятся десятки, потом сотни, тысячи и так далее):
    0001 0000 1010
  8. Проставьте номера бит для данного числа (отсчёт номера бит в Wialon идёт с 1):
    12  11  10  9     8  7  6  5     4  3  2  1
     0    0     0   1     0  0  0  0    1  0  1  0
  9. Из этой записи можно сделать вывод, что в данном сообщении активированы входы 2, 4 и 9 (то есть in2=1, in4=1, in 9=1), а все остальные входы деактированы, то есть их значение равно 0.
  10. Теперь найдите сообщение, в котором оборудование было выключено. Предположим, что там параметр I/O=102/0.
  11. Повторите шаги 4-9 для значения 102, в итоге получаем:
    12  11  10  9     8  7  6  5     4  3  2  1
     0    0     0   1     0  0  0  0    0  0  1  0
  12. В данном сообщении активированы только входы 2 и 9 (то есть in2=1, in 9=1). Из этого делаем вывод, что рассматриваемое оборудование было подключено ко входу 4, то есть искомый параметр in4.

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

Was this helpful?

Download

All pages

Only this page

Maximum 1000 characters

Определение

в кембриджском словаре английского языка

Примеры хостинга

хостинг

Независимо от того, являетесь ли вы новичком в сфере развлечений или уже много лет проводите вечеринок , домашний бар — это здорово.

От Хаффингтон Пост