Pull to refresh
1
0
Send message

Построение гистограммы максимального и среднего времени выполнения запросов для PostgreSQL

Level of difficultyEasy
Reading time3 min
Views3.8K


Предыстория


Аварийная ситуация — информационная система жутко тормозит.
Как обычно- все менеджеры в панике.
Как обычно — «что там с СУБД»?
Как обычно — «с СУБД, всё хорошо — критичных ошибок нет, отклик не увеличивается, аномалий по метрикам мониторинга СУБД — нет.»

Новая вводная- «У нас все запросы стали очень медленно выполняться».

К сожалению на период развития событий, способа получить объективную картину времени выполнения запросов — не было.

Метрика, позволяющее получать время отклика СУБД показывает «среднюю температуру по больнице». А учитывая, что система высоконагруженная, среднее время отклика не может являться надежной метрикой оценки производительности СУБД. Так, что от разнообразных вариаций на тему SUM(total_time) / SUM(calls) — пользы не так и много.

Убедить разработчиков и менеджеров, что на стороне СУБД проблем нет — не получается.
И поэтому и возникла идея — сделать простой механизм, позволяющий получить оценку производительности СУБД — гистограммы максимального и среднего времени выполнения запросов, на основе уже используемого расширения pg_stat_statements.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments8

Скрытые сокровища интерфейсного дизайна: 10 не популяризованных UI элементов, способных улучшить взаимодействие

Level of difficultyMedium
Reading time3 min
Views13K

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

Читать далее
Total votes 12: ↑6 and ↓6+4
Comments28

Беда «войти в айти» или курсы тестировщика отзывы: Список худших* курсов по числу трудоустраивающихся выпускников

Level of difficultyEasy
Reading time9 min
Views28K

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

Читать далее
Total votes 19: ↑13 and ↓6+9
Comments28

Как пишут SQL-запросы гуманитарии

Level of difficultyEasy
Reading time5 min
Views26K

Когда говорят «мы ускорили выполнение нашего запроса в N раз» это значит, что сначала сделали плохо а потом начали думать как улучшить.

Так я думал раньше.

Читать далее
Total votes 22: ↑17 and ↓5+15
Comments29

Тормозящая виртуализация на x86. Небольшая попытка разобраться Часть 4. KVM

Level of difficultyHard
Reading time4 min
Views8.8K

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

Часть 4. Что из этого следует, и как устроен планировщик в KVM или KVM- QEMU. Тут тоже не будет ничего нового, но будет масса ошибок.

Читать далее
Total votes 29: ↑20 and ↓9+17
Comments13

Резервное копирование на дешёвом VPS-сервере

Level of difficultyMedium
Reading time6 min
Views8.7K


Мы уже рассказывали, как можно использовать ультрадешёвый VPS за 130 рублей в месяц. На самом деле 512 МБ оперативной памяти вполне достаточно для нормальной работы Linux (без GUI) и множества приложений, таких как VPN, веб-хостинг, некоторые игровые серверы, а также для резервного копирования файлов.

Конечно, в интернете куча облачных хостингов, но всё-таки приватные файлы спокойнее хранить на личном сервере, который полностью под нашим контролем.
Читать дальше →
Total votes 28: ↑26 and ↓2+40
Comments18

SQL инъекции для продолжающих: ломаем настоящий сайт

Reading time5 min
Views19K

Про SQL-инъекции написано огромное количество статей. Все знаю про пресловутые ‘ OR 1 = 1 и аналогичные конструкции, но далеко не все реализовывали их на практике. В этой статье мы разберем на практике некоторые способы реализации SQL-инъекций на примере уязвимого сайта.

Статья предназначена для тех, кто хочет на практике разобраться с тем, что такое SQL-инъекции.

Читать далее
Total votes 20: ↑16 and ↓4+14
Comments7

Почтовый сервер с нуля. Часть первая

Level of difficultyMedium
Reading time17 min
Views32K

Очень часто на этапе стажировки новых сотрудников мы в нашей компании сталкиваемся с типичными простыми ошибками, непониманием работы DNS и почты. При этом обучение новых сотрудников по этой теме — достаточно длительный и сложный процесс, так как сами вопросы требуют построения сложных логических цепочек в голове у начинающего инженера. В один момент мы составили свою вики и схемы для обучения и решили поделиться этим опытом на Хабре в виде серии статей, чтобы людям, которые решили связать свою жизнь с IT вообще и администрированием в частности, стало проще. Материалы этой серии предназначены для начинающих администраторов.

В этом материале будет представлена связка полноценного почтового сервера в виде Exim4+Dovecot+PostfixAdmin+RainLoop.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments27

Выявление потребностей клиентов через опросы

Reading time10 min
Views960

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

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

Читать далее
Total votes 16: ↑10 and ↓6+4
Comments9

Настройка iredmail на debian 10 (buster)

Level of difficultyMedium
Reading time8 min
Views5.6K

mail server - это программа, которая передаёт сообщение от одного компьютера к другому.

iredmail - это многофункциональный почтовый сервер с открытым исходным кодом, который предназначен для дистрибутивов Linux. В инструкции рассмотрим, как установить iRedMail вручную и выполнить необходимые настройки.

1. Первоначальная настройка

И так, данная инструкция написана под систему Debian. Предварительно, выполним следующие действия:

Делаем все под root.

Приступим к установке, обновим пакеты:

sudo apt update && apt upgrade

Ждем обновления, если они обновлены идем дальше:

Задаем правильное имя серверу — это важный шаг, так как большинство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа:

sudo hostnamectl set-hostname mail.example.com

Гдеexample.comваш домен:

Устанавливаем пакет времени:

sudo apt install chrony

Устанавливаем время на сервере:

sudo timedatectl set-timezone Europe/Moscow

Чтобы получить список всех возможных зон, вводим timedatectl list-timezones:

sudo systemctl enable chrony

заранее открываем порты на брандмауэре с помощью iptables:

Брандмауэр — это приложение, на котором происходит фильтрация сетевого трафика на основе заданных администратором правил:

sudo iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995 -j ACCEPT

sudo iptables -I INPUT 1 -p tcp --match multiport --dports 80,443 -j ACCEPT

* где мы откроем следующие порты:

25 — стандартный SMTP через STARTTLS;

110 — стандартный POP3 через STARTTLS;

143 — стандартный IMAP через STARTTLS;

465 — защищенный SMTP через SSL/TLS;

587 — защищенный SMTP через STARTTLS;

993 — защищенный IMAP через SSL/TLS;

995 — защищенный POP3 через SSL/TLS

80 — HTTP для порталов iredadmin и Roundcube;

443 — защищенный HTTPS для порталов iredadmin и Roundcube;

Если он не установлен то ставим:

sudo apt install iptables iptables-persistent

Читать далее
Total votes 8: ↑5 and ↓3+4
Comments23

Как я проектирую формы

Reading time6 min
Views7.5K

В начале карьеры проектирование любой формы казалось мне очень простой и понятной задачей. Особенно когда речь шла о чём-то банальном и незначительном, вроде обратной связи на сайте. А что — выяснил, какие нужны данные и для чего, накидал поля с подписями, приделал кнопку — и готово! На всё про всё — пять минут. Пустяки! Или нет?

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments2

Как расширить дисковое пространство на VPS за счет дисков на сервере в домашней сети

Level of difficultyEasy
Reading time9 min
Views8.2K

В настоящее время очень широкое распространение получили решения, основанные на self-hosting'e. При этом, под этим термином понимается идеология и практика, предусматривающая размещение веб-сервисов на собственных серверах, например домашних, вместо использования стороннего хостинга, как коммерческого, так и бесплатного.

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

Но недостатки такого подхода тоже есть, и часто основной недостаток в том, что для предоставления доступа к вашим сетевым ресурсам вы должны обеспечить ряд условий: работающий сервер, статический IP, правильная настройка NAT в части маршрутизации пакетов и обеспечения безопасности. И если с первым вопросом более-менее ситуация решаемая, то остальные вопросы подчас становятся нерешаемыми в силу ряда причин, начиная от особенностей провайдеров, заканчивая тем сетевым железом, которое есть в распоряжении пользователя. Хорошо, если это будет какое то решение, основанное на RouterOS или OpenWRT, которое еще надо уметь настроить, что подчас совсем не просто. Но это может быть и какой то роутер начального уровня (или, что еще хуже провайдерское оборудование), которое крайне ограничено в своем функционале, на котором настроен свой NAT, которое может находится за NAT провайдера с «серым» IP. Поэтому популярные решения для self-hosted ресурсов вроде NextCloud становятся не такими уж и популярными как бы того хотелось.

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments18

Личные финансы в формате txt

Level of difficultyEasy
Reading time4 min
Views7.7K

Я давно подсел на Obsidian, и мне очень понравилась идея хранения данных в человеко-понятных форматах вроде TXT или Markdown. В таком виде вы не привязаны к конкретному инструменту и вам не надо делать экспорт данных для резервных копий. Данные сами по себе остаются готовые к чтению или модифицированию.
Чего мне не хватало, так это хорошего формата для хранения финансовых данных.
И тут, открыв очередную трэш-статью, начав читать гневные комментарии, наткнулся на человека, который ведёт расходы в TXT формате. Причём технический человек, со знанием программирования. Это показалось абсолютно тупейшим решением, но... в комментарии ниже, другой человек отписал, что тоже использует TXT для ведения личных финансов. И это уже было подозрительно.
Начал изучать вопрос и наткнулся на ledger-cli.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments29

Не стоит недооценивать HTML

Level of difficultyEasy
Reading time6 min
Views24K

«HTML – это просто», «Разрабатывать фронтенд проще, чем бэкенд», «После реализации бэкенда обновление UI не должно составлять труда», – за время работы в сфере веб-разработки вокруг меня то и дело звучали эти и другие аналогичные утверждения.

И очень часто они вызывали у меня грусть.

Дело в том, что бо́льшую часть времени я проводила за написанием фронтенда, включая работу с HTML, CSS и JavaScript (по факту в основном TypeScript). Когда кто-нибудь говорит мне о «простоте» моей работы, я начинаю думать, что мои навыки не представляют высокой ценности, и меня может легко заменить любой разработчик…

В статье же я решила описать свои размышления, которые рождались в течение последних двух лет во время работы с людьми из разных команд с разным опытом в HTML-разработке и фронтенд-технологиях в целом. Здесь я озвучу несколько основных своих вопросов «Почему?», сопроводив их возможными ответами.
Читать дальше →
Total votes 51: ↑48 and ↓3+60
Comments95

Анализ безопасности Wi-Fi: атаки на WPA2-Personal / Enterprise и методология взлома WPA3

Reading time13 min
Views22K

Подробное исследование методологии взлома протоколов WPA2-Personal / Enterprise и WPA3: какие атаки и уязвимости существуют, и какой инструментарий применяется для их эксплуатации.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments7

Как стать VPN провайдером за один вечер

Level of difficultyMedium
Reading time13 min
Views67K

Рассказываю о своём опыте использования Xray (с протоколом VLESS-Reality) - одного из лучших решений для преодоления интернет-цензуры на сегодняшний день. Я потратил много времени на то, чтобы разобраться с ним - теперь вам достаточно одного вечера, чтобы поднять свой сервер на несколько десятков пользователей, c xray на борту!

скрипт ex.sh для простой настройки и установки; есть поддержка Docker

легко добавлять пользователей; клиентские конфиги в форме url-ссылок

правильные конфиги: скрытность + удобство

трафик популярных российских сайтов идёт напрямую, a не через сервер

для xray есть приложения под все популярные ОС - делюсь инструкциями

только https, нет udp; торренты через сервер блокируются по возможности

мой проект на гитхабе: easy-xray

Интересны детали? Добро пожаловать под кат
Total votes 59: ↑58 and ↓1+69
Comments142

10 «золотых» советов авторам любых текстов

Level of difficultyEasy
Reading time6 min
Views11K

Чем активнее мы курируем авторов, тем больше «налипает» опыта и своего, и чужого: кто-то приносит нам шедевры, кто-то — тексты, которые просто невозможно опубликовать. И вроде каждый случай особенный, но все проблемы и находки вполне себе поддаются систематизации. А значит, можно выделить лучшие практики, которые помогут всем сделать тексты лучше. Начнём с базовых моментов, которые, тем не менее, даже у опытных авторов соблюдаются далеко не всегда.

Читать далее
Total votes 89: ↑89 and ↓0+89
Comments55

Обновление MikroTik до RouterOS 7.13.2 с нерабочим Wi-Fi

Level of difficultyEasy
Reading time3 min
Views30K

Недавно решил обновить свой домашний MikroTik hAP ax2 до последней версии ROS7. Но столкнулся с проблемами при обновлении о которых поведаю под катом.

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments56

Почему в ботах телеги желательно использовать Webhook вместо Polling

Reading time5 min
Views15K

Привет, коллеги!

Сегодня у нас на повестке дня выбор между двумя гигантами: Polling и Webhook. И если вы когда-либо задавались вопросом, почему именно Webhook является go-to решением для большинства проектов, то это статья для вас.

Помните, как в начале 2010-х все разрабы активно юзали Polling? Это был золотой стандарт для многих мессенджер-ботов. Но технологии не стоят на месте. Webhook занял своё законное мест, предлагая свои решения.

Читать далее
Total votes 16: ↑9 and ↓7+4
Comments30

Как оптимизировать медленные SQL запросы?

Reading time18 min
Views29K

Большинство проблем, связанных с БД, во время разработки остаются незамеченными, потому что мы пишем код и проверяем его правильность только при малой "заполненности" нашей БД. Поэтому, когда приложение выкатывается в продакшн, через некоторое время начинают появляться проблемы с производительностью БД, отдельные части приложения начинают работать всё медленнее и медленнее по мере роста самого БД.

Как выявить и отладить такие проблемы? В этой статье будет показано решение наиболее распространённых проблем с производительностью БД, вызванных неправильной индексацией. Примеры будут приведены для Postgres, MySQL и SQLite.

Читать далее
Total votes 16: ↑8 and ↓8+3
Comments38

Information

Rating
4,175-th
Registered
Activity