У меня есть сервер, на котором работает несколько отдельных приложений Python, Java, которые большую часть времени импортируют данные в базу данных PostGreSQL. Я хотел бы узнать от людей, которые имеют опыт настройки серверов корпоративного уровня, как мне выполнить комплексный расчет объема настройки, необходимой для моего сервера, например vm.swappiness, vm.overcommit_ratio и других числовых настроек, необходимых для моего сервер.
Я попытался включить sar на своем сервере для сбора ежедневных чисел, но это больше похоже на общие числа, и я не могу понять, как выделить память для моих приложений. Помощь будет оценена.
Спасибо.
Вам следует установить какой-нибудь инструмент мониторинга для получения статистики. Я думаю, что лучший способ анализировать статистику - это получить наглядные графики отслеживаемых параметров. Cacti или Zabbix предоставят вам эти графики. Скорее всего, ваша система привязана к вводу-выводу или памяти, поэтому вам следует начать с мониторинга использования памяти, использования файла подкачки, статистики ввода-вывода и средней нагрузки на хосте. У Cacti есть хороший набор шаблонов для отслеживания статистики ввода-вывода: http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html Также было бы полезно получить список медленных SQL-запросов, вы можете сделать это, установив что-то вроде log_min_duration_statement = 200
в postgresql.conf, где 200 - желаемое количество миллисекунд, вы также можете использовать любое другое число.
Сначала определите узкое место в системе (медленный запрос PostgreSQL, медленный ввод-вывод, медленно работающие скрипты). Затем используйте стандартные инструменты мониторинга (top, htop, iostat, vmstat, pgtop, iotop), чтобы определить причину. Далее вы найдете решение (pgtune, параметр ядра, параметр монтирования, параметр java vm, переписать исходный код).