РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 14:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2706.html
Наша специализация — запуск и обслуживание высоконагруженных сервисов. За все время у нас не было ни одного проекта, в котором бы при запуске или эксплуатации сервиса не проявились нагрузочные проблемы, заложенные программистами или архитекторами. Цель доклада — структурировать типовые проблемы нагруженных проектов и дать практические советы по их урегулированию.
...
14. Проблемы с базами / Транзакции
SELECT # Получить текст
UPDATE # Обновить счётчик
UPDATE # Начислить автору денег
UPDATE # Списать деньги из бюджета
# Σ 4 Disk IO
15. Проблемы с базами / Транзакции
START TRANSACTION;
SELECT # Получить текст
UPDATE # Обновить счётчик
UPDATE # Начислить автору денег
UPDATE # Списать деньги из бюджета
COMMIT;
# Σ 2 Disk IO
16. Проблемы с базами / Транзакции
~ $ time php insert_300k_rows.php
real 6m13.465s
~ $ time php insert_300k_rows_transaction.php
real 0m32.298s
17. Проблемы с базами / Транзакции
SET autocommit = 1;
mysql_query(“UPDATE `tbl` SET `a` = 1 WHERE `b` = 2”);
18. Проблемы с базами / Транзакции
Изучайте лог запросов (binlog или general.log)
Диагностика:
19. Проблемы с базами / Транзакции
Изучайте лог запросов (binlog или general.log)
N коммитов ≈ N апдейтов ➡ Cкорее всего проблема
Диагностика:
20. Проблемы с базами / Индексы
Распространённость
Влияние на производительность
Сложность решения
81. Архитектурные проблемы / Итого
Не оставляйте apache одного
Храните PHP-сессии в памяти
Кеш — главная помощь при highload
82. Архитектурные проблемы / Итого
Не оставляйте apache одного
Храните PHP-сессии в памяти
Пишите stateless-приложения
Кеш — главная помощь при highload
86. Сетевые проблемы / persistent connect
Чем грозят “короткие” соединения
Оверхед CPU на создание сокетов
Оверхед на TCP syn, ack...
87. Сетевые проблемы / persistent connect
Чем грозят “короткие” соединения
Оверхед CPU на создание сокетов
Оверхед CPU на инициализацию сессии в БД
Оверхед на TCP syn, ack...
88. Сетевые проблемы / persistent connect
Оверхед CPU на создание сокетов
Оверхед CPU на инициализацию сессии в БД
Чем грозят “короткие” соединения
Обилие TIME_WAIT-сокетов
Оверхед на TCP syn, ack...
92. Сетевые проблемы / TIME_WAIT-сокеты
Оверхед CPU на проверку входящего пакета
Чем грозят TIME_WAIT-сокеты:
93. Сетевые проблемы / TIME_WAIT-сокеты
Чем грозят TIME_WAIT-сокеты:
Памяти почти не просят
Оверхеда CPU на исходящие пакеты нет
При этом:
Оверхед CPU на проверку входящего пакета
126. Наш блог на Хабрахабре
habrahabr.ru/company/flant/
Тут мы рассказываем о нашем опыте
и актуальных технологиях.
Подписывайтесь, чтобы быть в курсе!