Мне в голову приходят два важных числа:
- Точка деградации: количество пользователей при замедлении работы приложений.
- Точка разрыва: количество пользователей, вызывающее сбой приложения.
Чтобы определить эти значения, вам необходимо протестировать ваше приложение при увеличении количества пользователей, например, начинать с одного пользователя и добавлять другого каждую минуту, пока ваше приложение не перестанет отвечать. Важно измерить использование памяти и процессора, чтобы сопоставить их с количеством активных пользователей в вашем тесте.
Ваши комментарии указывают на то, что вы нашли точку деградации и считаете, что ваша база данных является точкой разногласия.
Существует два параметра запуска MySQL, которые могут помочь вам проверить ваше предположение, а именно:
--log-slow-query
--log-запросы, не использующие индексы-
Контролируйте свои процессы с помощью «ps», чтобы определить, какие из них потребляют больше памяти, и ЦП, чтобы определить, какие части вашей архитектуры потребляют больше ресурсов. Еще одним хорошим подтверждением данных для вашего анализа будет вывод vmstat, возможно, каждые 60 секунд.
Короче говоря, запускайте мониторы с помощью ps и vmstat, нагружайте ваше приложение, увеличивая количество пользователей, когда приложение замедляется, останавливайте ваши мониторы и графически отображайте процессор и память процесса вместе с количеством активных пользователей на данный момент, На этом этапе вы можете определить, является ли ваша проблема ЦП или памятью, как только вы поймете, что вы просто выберете 10 лучших процессов для данного ресурса, и они будут кандидатами на конкуренцию.
Просмотрите журналы MySQL, чтобы определить, куда можно добавить новые индексы, и определить, можно ли переписать некоторые из медленных запросов.