Слава нації
#StandWithUkraine

Роман Теличко

Блог з програмування, оптимізації та адміністрування систем

Простой способ узнать Time To First Byte (TTFB) используя cURL

// 25 Січня, 2018 | 6787 переглядів

Немного Википедии (хоть и переведенной на русский)

Time To First Byte (“Время до первого байта, TTFB) – это измерение, используемое как указание на отзывчивость веб-сервера или другого сетевого ресурса.

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

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

Узнать TTFB (в секундах), используя cURL, можно следующим образом:

curl -q -o /dev/null -w "\nConnect: %{time_connect}\nTTFB: %{time_starttransfer}\nTotal time: %{time_total} \n" https://romantelychko.com

Что выведет приблизительно следующее:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14053    0 14053    0     0  14053      0 --:--:-- --:--:-- --:--:--  201k

Connect: 0,008494
TTFB: 0,067665
Total time: 0,068982 

Читати далі…

Средний LA (Load Average) за сутки используя статистику atop

// 2 Березня, 2017 | 1726 переглядів

Начнём с того что такое atop.
atop – продвинутый интерактивный полноэкранный монитор производительности, расширенный аналог top. Позволяет контролировать загрузку ЦПУ, ОЗУ, HDD, сети и многое другое. На мой взгляд, является самым удобным инструментом для мониторинга состояния системы, поскольку собирает всю необходимую информацию вместе. Важной особенностью является возможность сохранения данных в файл собственного двоичного формата, что мы и будем использовать для решения этой задачи.
Я не буду останавливаться на возможностях atop в рамках этой статьи.

После инсталляции atop складывает свою статистику в файлы (по дням) в папку /var/log/atop/.

С помощью опции -r <путь_к_файлу> указывается какой именно дамп будет считан.
Для ещё более точного определения диапазона за этот день можно использовать опции -b время старта (в формате hh:mm) и -e время окончания (в формате hh:mm)
Если нас интересует статистика только по некоторым параметрам, мы можем указывать это с помощью опции -P. Значения могут быть следующие:

  • PRC – Process level totals
  • CPU – CPU utilization
  • CPL – CPU load information
  • MEM – Memory occupation
  • SWP – Swap occupation and overcommit info
  • PAG – Paging frequency
  • LVM/MDD/DSK – Logical volume/multiple device/disk utilization
  • NET – Network utilization (TCP/IP)

Тогда средний LA (Load Average, параметр CPL) за сутки (в примере это 20170302) можно вывести используя следующее:

atop -PCPL -r /var/log/atop/atop_20170302 | grep 'CPL' | awk -F ' ' '{print $8}' | awk '{ total += $1 } END { print "LA AVG: " total/NR }'

Что выведет:

LA AVG: 2.155

Подобным образом можем посчитать максимальное значение:

atop -PCPL -r /var/log/atop/atop_20170302 | grep 'CPL' | awk -F ' ' '{print $8}' | awk '{ if(max<$1) { max=$1 } } END { print "LA MAX: " max }'

Что выведет:

LA MAX: 3.46

Точно так же вы можете отобразить и другие параметры.
Это всё. Удачи.

Установка pgAdmin4 в Ubuntu 16.04

// 2 Грудня, 2016 | 41545 переглядів

Обновился графический интерфейс для управления СУБД PostgreSQL – pgAdmin 4. Будем надеяться что новая версия не будет так сильно “сыпаться” 🙂
Пока ещё нет ни deb-пакета, ни ссылок на репозиторий, но попробовать уже хочется 🙂

Так что сегодня я расскажу как поставить pgAdmin4 в режиме клиента (pgAdmin4 Desktop)

Читати далі…

Потоковая репликация в PostgreSQL 9.6

// 27 Листопада, 2016 | 30278 переглядів

Потоковая репликация (streaming replication) является передачей записей из WAL (Write-Ahead Log) от мастера к репликам. Писать при этом можно только в мастер, но читать можно как с мастера, так и с реплик. В итоге мы получаем не просто горизонтальное масштабирование, а ещё и отказоустойчивую архитектуру (failover).
Приступим к настройке реплики.

  1. Начальные условия
  2. Устанавливаем PostgreSQL 9.6 в Debian 8 (jessie) на оба сервера
  3. Настраиваем мастер (master)
  4. Настраиваем слейв (slave)
  5. Всё работает? Всё работает!
  6. А давайте что-то поломаем?!
  7. Догоняем прежний мастер до актуального состояния и возвращаем ему прежний статус

Начальные условия

Возьмём 2 сервера (в моём случаи – виртуальные машины) с чистым Debian 8.6 (jessie) amd64.

  1. master: 192.168.0.100
  2. slave: 192.168.0.200

Читати далі…

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

// 13 Жовтня, 2016 | 244 переглядів

Многие из нас используют командную строку на регулярной основе.
А вы когда-нибудь задавались вопросом, какие команды вы используете чаще всего? Есть очень простой способ выяснить.

Выполните следующую команду в окне терминала, чтобы увидеть список 10 наиболее часто используемых терминальных команд:

history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10

Интерестно, не правда ли?

За полгода использования моей Ubuntu 16.04 LTS мой топ-10 список составил следующие команды:

    686 ssh
    251 sudo
    217 ll
    170 cd
     92 up
     85 hg
     70 cat
     56 scp
     51 pwgen
     44 aps

Софт по-умолчанию для Ubuntu Gnome 16.04

// 17 Вересня, 2016 | 939 переглядів

В начале

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Софт по-умолчанию

sudo apt-get install chromium-browser aptitude unrar p7zip safe-rm sshfs pwgen imagemagick msttcorefonts mc openssh-server tmux htop atop meld cabextract gthumb fdupes mplayer vlc easytag audacious rsync libreoffice gparted git mercurial subversion shutter etherwake guake whois nmap rpl openjdk-9-jre gnome-shell-extension-weather

Дополнительный софт

Читати далі…

Делаем ввод паролей в терминале видимым

// 11 Серпня, 2016 | 1298 переглядів

Каждый раз, когда вы используете sudo – терминал попросит вас ввести пароль пользователя.
Это отличная мера безопасности, тут никто не спорит. Но терминал не предлагает никакой визуальной обратной связи при вводе пароля. Это часто сбивает с толку.
Добавить такую связь довольно просто в результате чего мы будем при вводе видеть “звездочки”.

  1. Открываем терминал (часто сочетанием клавиш Ctrl+Alt+T) и вводим
    sudo vi /etc/sudoers
  2. Находим строчку
    Defaults env_reset

    и заменяем её на

    Defaults env_reset,pwfeedback

    visible_passwd_sudoers

  3. Сохраняем наш файл через :wq! (для программы vi)
  4. И вот, теперь вы видим такой результат при вводе:
    visible_passwd_result

Удачи!

PostgreSQL 9.5 в Ubuntu 15.10+

// 15 Лютого, 2016 | 1317 переглядів

Добавляем в /etc/apt/sources.list адрес к репозиторию с последним PostgreSQL:

sudo -s
echo "deb https://apt.postgresql.org/pub/repos/apt/ `lsb_release -s -c`-pgdg main" >> /etc/apt/sources.list

Получаем “волшебный” ключик:

sudo wget --quiet -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc|sudo apt-key add -

И теперь всё просто:

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

И можно поставить, если у вас ещё не было:

sudo apt-get install postgresql-9.5

Создаём и оптимизируем свой tile-сервер для OpenStreetMap на основе Ubuntu 14.04

// 15 Вересня, 2015 | 18011 переглядів

Сегодня я расскажу как довольно просто поднять и настроить свой собственный сервер карт (тайловый сервер) на основе Ubuntu Server 14.04 LTS и OpenStreetMap.

Итак начнём. Из Википедии:

OpenStreetMap (дословно «открытая карта улиц»), сокращённо OSM — некоммерческий веб-картографический проект по созданию силами сообщества участников-пользователей Интернета подробной свободной и бесплатной географической карты мира.

Есть довольно подробная официальная статья об установке и настройке tile-сервера, но есть ещё более простой и быстрый способ.
Читати далі…

Linux. Установка и настройка анализатора логов Logwatch

// 30 Квітня, 2015 | 4601 переглядів

logwatch – это анализатор системных логов (журналов), начиная от /var/log/messages и заканчивая логами CISCO-оборудования. Результаты анализа утилита группирует и помещает в отчёт, который может как выводиться в stdout, так и отправляться электронной почтой или сохраняется в файл. Формат отчёта предлагается в трех вариантах: plaintext, HTML или файл, при этом вы можете регулировать уровень детализации отчёта исходя из собственных потребностей.
Сегодня я расскажу вам как его установить и настроить.

Ставится он в Debian/Ubuntu довольно просто:

sudo apt-get install logwatch

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

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

И открываем на редактирование:

vi /etc/logwatch/conf/logwatch.conf
Читати далі…