Например, увеличение времени выполнения запросов к базе данных на 15 % за три месяца может сигнализировать о растущих объемах данных или неэффективных запросах, требующих оптимизации. Многие организации используют комбинацию этих инструментов, чтобы скрыть весь свой набор технологий, обеспечивая как мгновенное решение проблем, так и долгосрочную оптимизацию производительности. Инструменты мониторинга на системном уровне, такие как Nagios, Zabbix и Datadog, обеспечивают общее представление показателей инфраструктуры. Эта смесь идеально подходит для выявления закономерностей ошибок, мониторинга частоты событий и привязки журналов к падениям эффективности. Logstash собирает и обрабатывает данные журналов, Elasticsearch делает их доступными для поиска, а Kibana визуализирует результаты.

Для рабочих нагрузок, которые могут быть действительно связаны с использованием ЦП, использование сервера с высокопроизводительным процессором может повысить производительность обработки. Однако одного показателя Load Average недостаточно для устранения узкого места ЦП, поскольку он также содержит процессы, готовые к определенным видам операций ввода-вывода. Поскольку веб-сайты становятся более ресурсоемкими, а функции справляются с большими рабочими нагрузками, обеспечение безопасности производительности серверов становится важной задачей для инфраструктурных групп.
Обновление оперативной памяти — хороший краткосрочный ответ, но для большей масштабируемости подумайте о разработке приложений без сохранения состояния. Как только узкие места выявлены, следующим шагом будет их эффективное устранение. С другой стороны, узкие места кода базы данных и приложения обычно требуют работы по оптимизации до того, как дополнительные источники станут полностью эффективными. Аппаратные узкие места, такие как ЦП и память, обычно можно устранить с помощью вертикального масштабирования, однако этот подход имеет ограничения. Узкие места программного кода уникальны, поскольку они возникают из-за неэффективности проектирования или реализации, подобно утечкам памяти или плохим методам кэширования. Обычные диски с ограниченным числом операций ввода-вывода в секунду могут замедлять операции с файлами и запись в базу данных, что делает твердотельные накопители или архитектуры распределенного хранения критически важными для поддержания эффективности.
Один низкопроизводительный запрос, выполняющий тысячи экземпляров в час, может генерировать больше операций ввода-вывода, чем все хорошо оптимизированные запросы вместе взятые. Больше оперативной памяти для кэширования приложений (Redis, Memcached) означает, что дополнительные запросы обслуживаются без какого-либо вмешательства в хранилище. Журналы постепенных запросов к базе данных. MySQL и PostgreSQL обеспечивают медленную регистрацию вопросов, которая определяет запросы, превышающие настроенный порог. Сетевое хранилище, которое многие поставщики VPS используют для образов дисков виртуальных машин, увеличивает задержку сообщества для каждой операции ввода-вывода, что приводит к значительным накладным расходам для чувствительных к задержкам рабочих нагрузок баз данных. На общем хостинге несколько арендаторов используют одни и те же физические единицы хранения. Когда процессы резервного копирования выполняются в часы пиковой посещаемости объекта, конкуренция между резервным вводом-выводом и служебным вводом-выводом снижает эффективность обоих.
Как только это произойдет, цели могут потерпеть крах или значительно замедлиться из-за перегрузки ассортимента мусора, что потребует дорогостоящих обновлений или усилий по IWIHOST оптимизации. Аналогично, журналы запросов к базе данных могут выявить неэффективность, например операции RBAR. Например, сообщения о тайм-ауте или ошибки, связанные с ограничением ресурсов, часто указывают на проблемные области.