Есть база, которая достаточно долго работает и за которой я больше года слежу в плане производительности. Условно знаю примерно все не оптимальные места по запросам, которые выполняются на MS SQL, все ее слабые стороны и т.д.
Настроен apdex, который по моим ключевым показателям держиться на уровке 0,97-0,98. Если показатель падает, то я примерно вижу из-за чего, знаю что нужно поправить.
Все это написал для того, чтобы сказать что за базой слежу, знаю ее как родную, постоянно мониторю.
Но тут не с того не с сего, стала расти нагрузка на процессов сервером 1С. Т.е. один из rphost стал жрать ЦП от 50 до 70 процентов, условно пока не упрется в 100%. И никаких предпосылок для этого у него не было. Не было каких до доработок, каких-то новых натсроек и т.д. Либо они прошли в пользовательском режиме и я этого не заметил. По запросам на MS SQL так же не появилось чего-то нового. Показатели MS SQL, те что в "хранилище запросов" остались без изменения. Т.е. количество строк в хапросах, cpu запросов, логическое и физическое считывание и т.д. примерно все тоже самое, как было всегда. Чего-то нового не увидел.
В это время показатель apdex резко падает до 0,7-0,8 в среднем за сутки. В так в любое время суток. Т.е. если раньше apdex в течении суток был в пределах 0.97-0,98, то сейчас он резко просел. Это не зависит от времени суток и от того, рабобают пользователи или нет. При этом я не вижу каких-то фоновых заданий, которые могли бы его нагружать.
Все это длилось где-то 1,5 недели и как не ожиданно появилось, так и не ожиданно прошло. Далее все стабильно работало примерно 1,5 месяца и вот сново проблема вернулась.
Не понимаю куда копать. Что искать. Почему cpu e rphost начинает так расти. Как понять что дает такую нагрузку? У кого есть опыт решения подобной задачи, в какую сторону посмотреть?
Перерыл весь интернет, ничего похожего не нашел. Типовую рекомендацию от 1С пробовал, смотреть в консоле где долгие вызовы - завершал, не помогает. Может помочь временно рубануть этот rphost, но не надолго.
Смотреть фоновые задания - пробовал, отключал, не сильно помогло. Платформа у меня одной версии все эти годы, т.е. платформа не менялась. На сервере никого нет, все работают через тонкий клиент. На самом сервере админы заверяют что никаких изменений не было.
Из особенностей. Когда висит все, счетчик показывает большие очереди на процессор
Предпологаю, что с вероятностью 99% что проблема где-то в коде. Но не понимаю как найти эту проблему. Знаю как найти проблемный код на стороне СУБД, но не понимаю как на стороне сервера 1С. Условно какой код грузит cpu rphosta.
Да, можно сказать что циклы, но как их найти? У меня около 1000 разных фоновых заданий. Они нормально работали все годы. Все как говориться знакомые, всех знаешь. Что сейчас грузит процессор - не могу понять. Прошу помощи у сообщества
(2) 1. Процессор(_Total)\% загруженности процессора
В стабильное время: 40-50%. В дни зависаний – от 50 и выше. Часто в районе 80-100%. Редко когда полностью 100%
2. Память\Доступно МБ
Данный показатель стабилен в любой день. Держится в районе от 100000 до 70000
3. \Paging File(*)\% Usage к сожалению не ставил на запись. Текущий размер файла подкачки 40Гб. Общий объем озу 380гб
4. Система\Длина очереди процессора
В стабильные дни не превышает 2 пунктов. В дни зависания постоянно скачет, доходит до 60 пунктов.
Виртуальная машина, 4 сокета, 32 вир.процессора
5. \PhysicalDisk(_Total)\Current Disk Queue Length к сожалению не собирал, только поставил, смогу завтра сказать.
Есть показатель «Физический диск(_Total)\Средняя длина очереди диска» Ведет себя одинаково в разные дни. Показатель от 0 до доходит до 10 пунктов.
В основном большие показатели там, где база находится. Где темп сервера 1С и сеансовые данные – почти по 0, редко когда до 1 пункта доходит.
На диске где лог журнала базы – в основном не более 0,1, бывает редко до 0,9.
На диске где файлы tembDB в основном около 0, но бывают редкие всплески до 8-16 пунктов
Показатель «Физический диск(_Total)\Текущая длина очереди диска» за последние 30 минут – от 0 до 7 скачет.
(4) 1. Лицензия ПРОФ, но вресия платформы: 8.3.12.1790. Системные администраторы утверждают что 1С использует все 32 ядра. Но как это проверять я сам признаться не знаю. Если подскажите, буду весьма признателен
1. Лицензия ПРОФ, но вресия платформы: 8.3.12.1790. Системные администраторы утверждают что 1С использует все 32 ядра.
Врут админы :), у ПРОФ ограничение 12 ядер.
Сколько всего rphost-ов, и сколько БД обслуживает 2 rphost ?? - дело в том, что rphost не умеет параллелиться на соседние слоты, те если 2-3-4 rphost сели на один процессор, то они будут жить только в нём, другие процессоры/ядра будут курить.
С утра 2 hphosta, по 96 соединений на hphost. В течении дня, если hphost падает, может быть 5-7 hphost-ов.
База данных 1с по сути одна. Есть еще пара баз для мониторинга, но если их отключить то на нагрузку они не слияют. Каких-то нагрузок в них нет
На основном загруженной hphost показатель Ideal CPU от 0 до 7. На остальных hphost другие показатели, вплоть до 31, но везде разные и не пересекаются
Но этот код всегда работал годами. И к нему вопросов не было.
очередь 60 - это не нормально.
Вот и не могу понять, откуда такие очереди. И не понимаю как это можно проверить, как понять? Если с СУБД научился как находить проблемы в работе, то с сервером приложений не пойму как определить из-за чего rhhost потребляет столько cpu
(9) Раз у вас такая старая платформа включаете 1 база, 1 соединение - 1 рабочий процесс и тогда сразу увидите какое соединение вызывает такую нагрузку. Но только не на долго, и портов для рпхостов нужно будет добавить с запасом.