Назад | Перейти на главную страницу

Устранение неполадок / масштабирование проблем с большой нагрузкой в ​​стеке LAMP?

Мы используем стек LAMP (Perl, MySQL), и недавно мы столкнулись с примерно утроением нагрузки на нашу базу данных из-за увеличения использования и изменения поведения пользователей ... что привело к перегрузке нашей системы.

Используя довольно стандартную трехуровневую архитектуру, множество веб-серверов (похоже, не проблема), несколько специализированных серверов (не считать это проблема) и довольно большая база данных MySQL на современном оборудовании Sun с лотом (72 ГБ) памяти (БД, похоже, является текущим узким местом).

Думаю, два вопроса:

1) Кто-нибудь знает о некоторых ресурсах, на которые они могут указать нам, чтобы помочь нам решить наши проблемы с нагрузкой? Покупка оборудования определенно возможна; как изменения конфигурации ...

2) Кто-нибудь, имеющий опыт массового масштабирования LAMP-стека, был бы заинтересован в платной консультационной работе? Нам нужен кто-то немедленно, желательно желающий поехать в Роли, Северная Каролина, чтобы помочь на месте ... Первая цель - выбраться из текущего кризиса; Вторая цель - помочь спланировать еще одно 10-кратное увеличение использования в течение следующих 2 лет.

(Подвопрос к вопросу №2: куда бы вы пошли искать такого консультанта ???)

Заранее спасибо! -Стив

Покупка оборудования определенно возможна; как изменения конфигурации ...

Это были бы №2 и №3 в моем списке кандидатов, №1 - дизайн базы данных. Обычно, когда нагрузка на базу данных внезапно увеличивается без соответствующего роста использования, где-то возникает проблема O (n ^ m). Полное сканирование таблицы при объединении, неэффективная денормализация, сбой n + 1, возможно, конфликт блокировки при вставке данных и тому подобное. Решения могут быть такими простыми, как добавление нескольких хорошо подобранных индексов, или столь же сложными, как переработка модели данных.

Я не работал с MySQL в течение многих лет, но помню, что вы можете записать все запросы и время их выполнения. Вы должны посмотреть этот журнал и выяснить, что именно заставляет базу данных стать узким местом.

Хорошая новость: если это проблема с БД, то многие виды работы с БД можно эффективно выполнять через удаленное соединение. Если вы можете быстро настроить VPN в кластере серверов и удаленную учетную запись SSH / терминала, круг ваших консультантов быстро расширяется.

Я никогда не работал с Percona я, но их книга о масштабируемости и производительности MySQL действительно хороша, как и их работа над Maatkit. Среди других консультантов, оказывающих помощь сообществу: Джереми Коул @ Proven Scaling и Команда Open Query.