Установка NetData

NetData — система мониторинга, отображающая на веб-панелях статистику в реальном времени.

На тесте выполню установку NetData в Ubuntu 18.04 и Ubuntu 16.04.
Перед установкой можно обновить систему:

sudo apt-get update
sudo apt-get upgrade

Если версия Ubuntu 18.04 и новее, то NetData устанавливается командой:

sudo apt-get install netdata

После установки конфигурация будет находится в /etc/netdata/, логи в /var/log/netdata/.

На Ubuntu 16.04 и старее, можно установить так (установка выполнится в /opt/netdata/):

sudo bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)

Перезапустить NetData можно командой:

sudo systemctl restart netdata

Посмотреть статус:

sudo systemctl status netdata
sudo ps ax | grep netdata

После установки NetData сразу можно открыть в браузере http://HOST:19999
Рекомендую сразу ограничить доступ к порту tcp 19999, например через iptables.

Установка и использование mysqltuner.pl

MySQLTuner — это Perl скрипт, который даст рекомендации по повышению производительности и стабильности MySQL сервера.
Страница на GiHub — https://github.com/major/MySQLTuner-perl

MySQLTuner в Ubuntu можно установить командой:

sudo apt-get install mysqltuner

В CentOS так:

yum install mysqltuner

Читать далее «Установка и использование mysqltuner.pl»

Установка Apache JMeter в Ubuntu

Apache JMeter — инструмент для нагрузочного тестирования.

Для Apache JMeter необходимо установить Java, смотрите мою статью — Установка Java в Linux.

Для примера установлю Apache JMeter в Ubuntu Desktop 18.04.

После того как Java установлен, скопируем ссылку на архив с последней версией Apache JMeter с официального сайта http://jmeter.apache.org/download_jmeter.cgi и скачаем его:

wget http://apache.volia.net//jmeter/binaries/apache-jmeter-4.0.tgz

Распакуем архив:

tar -xf apache-jmeter-4.0.tgz

Запустим:

cd apache-jmeter-4.0/bin/
./jmeter

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

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

Кстати Apache JMeter в Windows запускается через файл jmeter.bat.

Управление мощностью ядер процессора в Linux

Чтобы посмотреть минимальную, текущую и максимальную частоту ядер процессора выполним команду:

grep '' /sys/devices/system/cpu/cpu0/cpufreq/scaling_{min,cur,max}_freq

Например, в моем случае отобразилось следующее:

/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq:800000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq:907482
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq:4000000

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

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

#!/bin/bash
cpucount=$(grep -c 'model name' /proc/cpuinfo)
sysdir=/sys/devices/system/cpu
for cpu in $(eval echo cpu{0..$((cpucount-1))}); do
        cat $sysdir/$cpu/cpufreq/scaling_max_freq > $sysdir/$cpu/cpufreq/scaling_min_freq
done

Смотрите также мою статью:
Изменение CPU Scaling Governor в Linux

Установка и использование ioping

ioping — простой инструмент для мониторинга задержек ввода-вывода диска в режиме реального времени, аналогично как ping показывает задержку сети.

Установить в Ubuntu/Debian можно командой:

sudo apt-get install ioping

Приведу пример запуска с 10 запросами теста задержек к директории /tmp:

ioping -c 10 /tmp

Пример запроса с интервалом 0.2мс и увеличенным размером запроса:

ioping -i 0.2 -c 10 -s 1M -S 5M /tmp

Тест к диску:

ioping -R /dev/sda
ioping -RL /dev/sda

Опишу возможные опции запуска:
-c count (остановить после указанного количества запросов)
-w deadline (остановить после указанного количества времени)
-p period (отображать raw статистику после каждого указанного количества запросов)
-P period (отображать raw статистику после каждого указанного количества секунд)
-i interval (интервал между запросами в секундах)
-s size (размер запроса (4k))
-S size (размер рабочего набора)
-k (по завершению команды оставить (не удалять) рабочий файл ioping.tmp)
-L (последовательные операции вместо случайных, это также задаст размер запроса до 256k (как и -s 256k))
-A (асинхронный I/O)
-C (кешированный I/O)
-D (прямой I/O)
-B (не отображать информацию выполнения, она отобразится только по завершении команды в raw формате)
-q (не отображать информацию выполнения, она отобразится только по завершении команды)
-h (отображение краткой справки)
-v (просмотр версии)

Тест iops используя fio

fio (flexible I/O tester) — инструмент создающий потоки записи/чтения по которым можно оценить производительность файловой системы, так сказать увидеть скорость в Мбайт/с, IOPS и т.д.

Устанавливается в Ubuntu/Debian командами:

sudo apt-get update
sudo apt-get install fio

Для систем с графическим интерфейсом можно установить утилиту управления:

sudo apt-get install gfio

Пример теста случайной записи/чтения:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

Тест случайного чтения:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randread

Тест случайной записи:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randwrite

В процессе теста создается файл test, не забываем его удалить по завершению:

rm test

Список онлайн сервисов для тестирования сайта

Приведу ниже несколько ссылок на популярные сервисы для тестирования сайтов.

Проверки скорости загрузки сайта
https://developers.google.com/speed/pagespeed/
https://tools.pingdom.com/
https://www.webpagetest.org/
https://gtmetrix.com/

Тест сайта в разных браузерах
https://browsershots.org/

Тест сайта на количество соединений
https://loadimpact.com/

Проверка на орфографические ошибки
https://tech.yandex.ru/speller/

Проверки доступности сайта
https://www.host-tracker.com/
https://ping-admin.ru/free_test/

Прочие сервисы
https://www.yougetsignal.com
https://builtwith.com
https://www.onlinewebcheck.com

Совет: чтобы в Google выполнить поиск только по конкретному сайту, необходимо в строке поиска добавить название сайта, например site:ixnfo.com

Подавление DHCP серверов (dhcdrop)

dhcdrop — утилита для подавления ненужных DHCP серверов и стресс-тестирования.

Читать далее «Подавление DHCP серверов (dhcdrop)»

Тестируем пропускную способности сети с помошью Iperf

Iperf — кроссплатформенная консольная клиент-серверная программа — генератор TCP и UDP трафика для тестирования пропускной способности сети.

Команда установки в Ubuntu:

sudo apt-get install iperf

Для вывода справки в консоли набирается команда:

iperf --help

Посмотрим какая версия установилась:

iperf -v

Для тестирования производительности сети выполняются команды:
На сервере:

iperf -s -i1

На клиенте:

iperf -c HOST -t 5

На клиенте из Windows для запуска можно сделать bat файл, команда pause предотвратит закрытие окна:

iperf -c HOST -t 5
pause

Скачать версию для Windows можно на сайте iperf.fr
Если на сервере установлена iperf 2, то аналогичную и скачиваем для Windows. Клиент третей версии у меня не подключился к серверу на второй.

Опишу некоторые опции запуска:
-i (интервал обновления статистики)
-s (запуск в режиме сервера)
-c (запуск в режиме клиента)
-p (ручное указание порта, стандартно 5001 TCP)
-D (запустить сервер как демон)
-t (время теста, стандартно 10 секунд)

Допустим мы запустим сервер как демон:

iperf -s -D

Клавишами Ctrl+C выйдем, сервер останется работать в фоне, чтобы его завершить, посмотрим PID командами и завершим:

sudo ps ax | grep iperf
sudo netstat -tulpn | grep :5001
sudo kill -9 PID

Смотрите также:
IPTables правила для Iperf

Простое кэширование страниц

Приведу пример простого кэширования PHP страниц с интервалом 600 секунд (10 минут).

Вставляем в начале кода:

Читать далее «Простое кэширование страниц»