ragent.exe терабайтами пишет во временную папку мусорный файл
Приветствую.
Развернули месяц назад на платформе 8.3.27.2074 x64 базу на MSSQL - типовая бухгалтерия с небольшими доработками. Windows 10 x64.
Все шустро работает, проблем нет... кроме одной.
Висит ragent в процессах и бесконечно пишет во временную папку каждые 5 секунд файл (название вида v8_XXXX_XX.tmp) размером ровно 12 000 000 байт. Содержимое файла - 100 000 одинаковых строк с набором всех печатных символов.
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя
Файл живет миллисекунды (создается -> пишется 12Мб -> читается -> обнуляется через SetEndOfFile -> удаляется). Выловить содержимое удалось только через скрипт.
Режим отладки (-debug) выключен.
logcfg.xml отсутствует.
Права у USR1CV8 в порядке, запуск от админа ничего не меняет.
Очистка кэша, удаление папки srvinfo и пересоздание кластера с нуля не помогают.
Чтобы не убить SSD, временно вынес Temp в RAM-диск.
Стек вызова на событии WriteFile. Цепочка такая:
ntdll.dll -> KERNELBASE.dll -> core83.dll -> rserver.dll -> core83.dll.
В самом стеке фигурируют вызовы:
core::Thread::threadMain
core::TextManager::getLineStart
Нейронка сделала вывод, что агент зацикливается на какой-то внутренней проверке текстового менеджера или инициализации кодировок, но тут могла и насочинять...
Никто не сталкивался с таким? Это баг или я что-то упускаю в настройках самого сервера/кластера? В базе в это время может вообще никто не работать, нагрузка на диски идет всё равно.
UPD.
Попробовал на другом компьютере просто установить платформу, не ставил галочку запуска службы в качестве сервера. Затем просто запустил сервер из ярлыка, не подключая никаких баз и ничего не создавая - результат тот же. В багтрекере 1С мельком глянул, ничего связанного с ragent нет.
Развернули месяц назад на платформе 8.3.27.2074 x64 базу на MSSQL - типовая бухгалтерия с небольшими доработками. Windows 10 x64.
Все шустро работает, проблем нет... кроме одной.
Висит ragent в процессах и бесконечно пишет во временную папку каждые 5 секунд файл (название вида v8_XXXX_XX.tmp) размером ровно 12 000 000 байт. Содержимое файла - 100 000 одинаковых строк с набором всех печатных символов.
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя
Файл живет миллисекунды (создается -> пишется 12Мб -> читается -> обнуляется через SetEndOfFile -> удаляется). Выловить содержимое удалось только через скрипт.
Режим отладки (-debug) выключен.
logcfg.xml отсутствует.
Права у USR1CV8 в порядке, запуск от админа ничего не меняет.
Очистка кэша, удаление папки srvinfo и пересоздание кластера с нуля не помогают.
Чтобы не убить SSD, временно вынес Temp в RAM-диск.
Стек вызова на событии WriteFile. Цепочка такая:
ntdll.dll -> KERNELBASE.dll -> core83.dll -> rserver.dll -> core83.dll.
В самом стеке фигурируют вызовы:
core::Thread::threadMain
core::TextManager::getLineStart
Нейронка сделала вывод, что агент зацикливается на какой-то внутренней проверке текстового менеджера или инициализации кодировок, но тут могла и насочинять...
Никто не сталкивался с таким? Это баг или я что-то упускаю в настройках самого сервера/кластера? В базе в это время может вообще никто не работать, нагрузка на диски идет всё равно.
UPD.
Попробовал на другом компьютере просто установить платформу, не ставил галочку запуска службы в качестве сервера. Затем просто запустил сервер из ярлыка, не подключая никаких баз и ничего не создавая - результат тот же. В багтрекере 1С мельком глянул, ничего связанного с ragent нет.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Да нет... вот сидит, вам отвечает. К чему это ехидство? Были, конечно, подозрения на какое-нибудь регламентное задание или что-то такое, но тогда rphost грузил бы диск.
Но я же в конце написал, что на другом компе установленная платформа даже без создания кластера ведет себя точно так же. Я вот и хочу спросить, либо это баг в платформе, на который никто не обращает внимания, потому что в диспетчере нагрузка на ЦП висит на нуле, а столбцы на чтение/запись процесса мало кто добавляет. Либо кто-нибудь подскажет куда еще копнуть можно.
Но я же в конце написал, что на другом компе установленная платформа даже без создания кластера ведет себя точно так же. Я вот и хочу спросить, либо это баг в платформе, на который никто не обращает внимания, потому что в диспетчере нагрузка на ЦП висит на нуле, а столбцы на чтение/запись процесса мало кто добавляет. Либо кто-нибудь подскажет куда еще копнуть можно.
4.
starik-2005
3272
01.06.26 13:39
Сейчас в теме
(3)
Либо кто-нибудь подскажет куда еще копнуть можно.
Обычным админам туда лазить квалификация претит, т.к. ловить эти все файлы - это такое. Предположу, что таким образом 1С пытается проверить, а не обижает ли ее какой вирус-другой, например. Этим разрабам платформы любая дичь в голову может прийти.
(4) Ну, я как минимум надеялся, что кто-нибудь скажет, типа, "вот у меня такая-то версия платформы, ragent ничего никуда не пишет и диск не грузит", тогда я буду уже дальше пытаться выяснять что за дела и из-за чего включается режим убийцы SSD.
Причем в "мониторе ресурсов" винды на вкладке с дисками тоже не видно, что процесс что-то пишет. В диспетчере задач или в каком-нибудь process explorer видно.
Причем в "мониторе ресурсов" винды на вкладке с дисками тоже не видно, что процесс что-то пишет. В диспетчере задач или в каком-нибудь process explorer видно.
5.
KirillHome
5
01.06.26 13:55
Сейчас в теме
(3)
Платформа той же версии (8.3.27.2074)???
Если попробовать другую версию платформы - результат повторяется???
установленная платформа даже без создания кластера ведет себя точно так же.
Платформа той же версии (8.3.27.2074)???
Если попробовать другую версию платформы - результат повторяется???
(5) На сервере я не пробовал другую платформу. На своем компе я ставил 8.3.27.1786, был под рукой дистрибутив, там то же самое. Свежую 8.3.27.2170 не пробовал еще. Сейчас качну, но есть сомнения.
UPD.
Поставил, запустил сервер с ярлыка, то же самое.
UPD.
Поставил, запустил сервер с ярлыка, то же самое.
Прикрепленные файлы:
8.
user-z99999
78
01.06.26 14:25
Сейчас в теме
(3) Если программист 1с доволен своей зарплатой, тогда три варианта:
1) поиск циклических ссылок
2) вирус
3) такая версия 1с, проверить на тесте на другой версии поведение
1) поиск циклических ссылок
2) вирус
3) такая версия 1с, проверить на тесте на другой версии поведение
9.
KirillHome
5
01.06.26 15:21
Сейчас в теме
(7) Проверил у себя (Win'11).
Платформа 8.3.27.1936
Да, в C:\Users\USR1CV8\AppData\Local\Temp создаётся раз в 5 секунд файл.
И да, судя по Process Monitor - размер 12 000 000
Прикольно...
Как раз на днях "почти умер" системный диск (13% здоровья осталось)...
И я всё думал - почему...
Платформа 8.3.27.1936
Да, в C:\Users\USR1CV8\AppData\Local\Temp создаётся раз в 5 секунд файл.
И да, судя по Process Monitor - размер 12 000 000
Прикольно...
Как раз на днях "почти умер" системный диск (13% здоровья осталось)...
И я всё думал - почему...
Прикрепленные файлы:
11.
SweetSweetLoot
01.06.26 15:33
Сейчас в теме
8.3.27.1936 linux сервер полет нормальный в temp не пишет.
13.
KirillHome
5
01.06.26 15:49
Сейчас в теме
Похоже - это полнотекстовый поиск "шалит"...
И - как мне кажется - надо разобраться с файликом
C:\Program Files\1cv8\_НомерВерсии_\bin\sm-searcher\e1c-fts-1.2.cfg
И - как мне кажется - надо разобраться с файликом
C:\Program Files\1cv8\_НомерВерсии_\bin\sm-searcher\e1c-fts-1.2.cfg
Конфигурационные параметры сервера полнотекстового поиска.
У меня два предположения - либо это полнотекстовый поиск, либо эталонный вызов рабочих серверов, связанный с определением производительности.
Как пишут сами 1С: "Для нашего кластера мы выбрали алгоритм, близкий по сути к Least Response Time. У нас есть механизм, собирающий статистику производительности рабочих процессов на всех серверах кластера. Он делает эталонный вызов каждого процесса сервера в кластере; эталонный вызов задействует некоторое подмножество функций дисковой подсистемы, памяти, процессора, и оценивает, насколько быстро выполняется такой вызов. Результат этих измерений, усредненный за последние 10 минут, является критерием — какой сервер в кластере является наиболее производительным и предпочтительным для отправки к нему клиентских соединений в данный период времени. Запросы клиентов распределяются таким образом, чтобы получше нагрузить наиболее производительный сервер – грузят того, кто везет."
Как пишут сами 1С: "Для нашего кластера мы выбрали алгоритм, близкий по сути к Least Response Time. У нас есть механизм, собирающий статистику производительности рабочих процессов на всех серверах кластера. Он делает эталонный вызов каждого процесса сервера в кластере; эталонный вызов задействует некоторое подмножество функций дисковой подсистемы, памяти, процессора, и оценивает, насколько быстро выполняется такой вызов. Результат этих измерений, усредненный за последние 10 минут, является критерием — какой сервер в кластере является наиболее производительным и предпочтительным для отправки к нему клиентских соединений в данный период времени. Запросы клиентов распределяются таким образом, чтобы получше нагрузить наиболее производительный сервер – грузят того, кто везет."
16.
KirillHome
5
01.06.26 18:44
Сейчас в теме
(15)
И да, по словам лектора (на 08:13):
Так что - раз в 5 секунд это ещё хорошо...
Но мой вывод - если на компьютере с сервером 1с нет "обычного диска" - то сервер 1с года за 2 может "убить" SSD.
12Мб * 30 (раз в минут) * 60 (минут в часе) * 24 (часа в сутках) * 365 (суток в году) = 180Тб
(или, как сейчас вижу)
12Мб * 12 (раз в минут) * 60 (минут в часе) * 24 (часа в сутках) * 365 (суток в году) = 70-75Тб
Что, похоже, и произошло у меня с предыдущим SSD ("китаец" на 1Тб, отработал почти 2 года, остаток здоровья 13%).
Купил на замену новый (Ресурс SSD (TBW) = 320) - но, как понимаю, тоже максимум года на два (из расчета каждые две секунды) - четыре (из расчета каждые 5 секунд).
вроде да, это оно
И да, по словам лектора (на 08:13):
Раз в две секунды он задаёт математическую задачу всем процессорам, всем процессам рабочим, плюс задачу на создание временного файла во временном каталоге каталоге временных файлов, размером в 12 мегабайт - создай, заполни, прочитай, удали.
Так что - раз в 5 секунд это ещё хорошо...
Но мой вывод - если на компьютере с сервером 1с нет "обычного диска" - то сервер 1с года за 2 может "убить" SSD.
12Мб * 30 (раз в минут) * 60 (минут в часе) * 24 (часа в сутках) * 365 (суток в году) = 180Тб
(или, как сейчас вижу)
12Мб * 12 (раз в минут) * 60 (минут в часе) * 24 (часа в сутках) * 365 (суток в году) = 70-75Тб
Что, похоже, и произошло у меня с предыдущим SSD ("китаец" на 1Тб, отработал почти 2 года, остаток здоровья 13%).
Купил на замену новый (Ресурс SSD (TBW) = 320) - но, как понимаю, тоже максимум года на два (из расчета каждые две секунды) - четыре (из расчета каждые 5 секунд).
23.
YA_514896950
36
02.06.26 08:28
Сейчас в теме
(16) может проще не покупать для 1с такие слабые ссд? ну серьезно, для 1с ссд с ресурсом 320тбв???
(15) Хм... действительно, похоже это оно и есть... только периодичность отличается.. остается вопрос, зачем мне нужен этот круглосуточный мониторинг если у меня один единственный сервер и как это отключить. А если это не отключается, то как плюнуть в рожу тому, кто это придумал.
С другой стороны тут выше товарищ под линуксом утверждает, что у него ragent таким не занимается.
С другой стороны тут выше товарищ под линуксом утверждает, что у него ragent таким не занимается.
18.
KirillHome
5
01.06.26 19:52
Сейчас в теме
(17)
Есть мысль попробовать завтра перенести это всё добро на RAM-диск (благо все ресурсы - собственные, и на miniPC, где всё крутится - догнал в своё время оперативку до 96Гб).
и как это отключить. А если это не отключается, то как плюнуть в рожу тому, кто это придумал.
Есть мысль попробовать завтра перенести это всё добро на RAM-диск (благо все ресурсы - собственные, и на miniPC, где всё крутится - догнал в своё время оперативку до 96Гб).
(18) Так у меня на рам-диск сейчас это все и пишется, я выставил на 512 мегов, но я не замечал, чтобы было занято больше 100, только во время обновления конфигурации увеличивал до двух гигов, но и в таком случае занимало немногим больше одного гига. Такими объемами как у вас не располагаем. Но это все костыль, а не хорошее решение. Может кто на опыте еще сюда заглянет, ну или сам попробую в 1С вопрос задать. Такую инфу бы хорошо подать под заголовком "1С умышенно уничтожает десятки тысяч серверов по всей стране!" на каком-нибудь популярном портале, сразу бы знающие люди объявились ))
24.
YA_514896950
36
02.06.26 08:30
Сейчас в теме
(19) ну либо не заниматься ерундой и покупать нормальные ссд диски с вменяемым тбв
26.
YA_514896950
36
02.06.26 08:45
Сейчас в теме
(25) если запись плюс минус одинаковыми данными то там этот ресурс тратится у современных ссд почти что виртуально)))) вы не там проблемы ищите.
(26)
Мне кажется, что вы переоцениваете современные контроллеры ССД, не умеют они в дедупликацию.
Если в системе стоит что-то типа PrimoCache с отложенной записью или рейд-контроллер с writeback, то износ, вероятно, будет кратно меньше, но это и риски накладывает некоторые.
Но тут у нас не "ссд для 1С" изнашивается, а системный диск, на нем вполне могут и сэкономить.
Тратить 75 ТБ ресурса в год на пустую перезапись алфавита - это технический абсурд.
если запись плюс минус одинаковыми данными то там этот ресурс тратится у современных ссд почти что виртуально
Мне кажется, что вы переоцениваете современные контроллеры ССД, не умеют они в дедупликацию.
Если в системе стоит что-то типа PrimoCache с отложенной записью или рейд-контроллер с writeback, то износ, вероятно, будет кратно меньше, но это и риски накладывает некоторые.
Но тут у нас не "ссд для 1С" изнашивается, а системный диск, на нем вполне могут и сэкономить.
Тратить 75 ТБ ресурса в год на пустую перезапись алфавита - это технический абсурд.
29.
YA_514896950
36
02.06.26 11:14
Сейчас в теме
(27) с системного диска переносить эту папку - правило хорошего тона. и все равно покупать ссд для задач 1с с ресурсом меньше 1000тбв это же бред, простите.
и да даже если в дедупликацию они не умеют, было же ресурсное тестирование ссд от 3дньюс или чего то такого, там они писали постоянно одини и теже данные, и да, в итоге ссд у них сдыхали, но почти все перевалили свой ресурс записи кратно! Там было обсуждение же и пришли люди к выводу что да, запись постоянно одних и тех же данных не тратит ресурс так как разнообразных. Поэтому ничего страшного 1с не делает с вашим ссд.
и да даже если в дедупликацию они не умеют, было же ресурсное тестирование ссд от 3дньюс или чего то такого, там они писали постоянно одини и теже данные, и да, в итоге ссд у них сдыхали, но почти все перевалили свой ресурс записи кратно! Там было обсуждение же и пришли люди к выводу что да, запись постоянно одних и тех же данных не тратит ресурс так как разнообразных. Поэтому ничего страшного 1с не делает с вашим ссд.
22.
SweetSweetLoot
02.06.26 07:45
Сейчас в теме
(17) посмотрел еще раз, да я ошибся он так же пишет.
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_18139.tmp", O_RDWR|O_CREAT|O_TRUNC, 0660) = 21
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_18139.tmp", O_RDWR) = 34
2076337 write(21, "\377\0\1\2\3\4\5\6\7\10\t\n\v\f\r\16\17\20\21\22\23\24\25\2 6\27\30\31\32\33\34\35\36"..., 12000000) = 12000000
2076337 close(21) = 0
2076337 close(34) = 0
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_18139.tmp", O_RDWR) = 21
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_18139.tmp", O_RDWR) = 34
2076337 read(21, "\377\0\1\2\3\4\5\6\7\10\t\n\v\f\r\16\17\20\21\22\23\24\25\2 6\27\30\31\32\33\34\35\36"..., 12000000) = 12000000
2076337 close(21) = 0
2076337 close(34) = 0
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_18139.tmp/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOTDIR (Not a directory)
2076331 openat(AT_FDCWD, "/opt/1cv8/x86_64/8.3.27.1936/sm-searcher/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 21
2076331 close(21) = 0
2076352 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 21
2076352 read(21, "always madvise [never]\n", 4096) = 23
2076352 close(21) = 0
2076331 openat(AT_FDCWD, "/opt/1cv8/x86_64/8.3.27.1936/sm-searcher/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 21
2076331 close(21) = 0
2076352 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 21
2076352 read(21, "always madvise [never]\n", 4096) = 23
2076352 close(21) = 0
2076331 openat(AT_FDCWD, "/opt/1cv8/x86_64/8.3.27.1936/sm-searcher/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 21
2076331 close(21) = 0
2076352 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 21
2076352 read(21, "always madvise [never]\n", 4096) = 23
2076352 close(21) = 0
2076331 openat(AT_FDCWD, "/opt/1cv8/x86_64/8.3.27.1936/sm-searcher/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 21
2076331 close(21) = 0
2076352 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 21
2076352 read(21, "always madvise [never]\n", 4096) = 23
2076352 close(21) = 0
2076331 openat(AT_FDCWD, "/opt/1cv8/x86_64/8.3.27.1936/sm-searcher/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 21
2076331 close(21) = 0
2076249 openat(AT_FDCWD, "/proc/meminfo", O_RDONLY) = 21
2492378 +++ exited with 0 +++
2076249 read(21, "MemTotal: 115389656 kB\nMem"..., 1024) = 1024
2076249 read(21, ": 35944 kB\nVmallocChunk: "..., 1024) = 510
2076249 read(21, "", 1024) = 0
2076249 close(21) = 0
2492444 openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 21
2492444 read(21, "127.0.0.1 localhost\n10.54.145.10"..., 4096) = 278
2492444 read(21, "", 4096) = 0
2492444 close(21) = 0
2076352 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 34
2076352 read(34, "always madvise [never]\n", 4096) = 23
2076352 close(34) = 0
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_1813a.tmp", O_RDWR|O_CREAT|O_TRUNC, 0660) = 34
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_1813a.tmp", O_RDWR) = 39
2076337 write(34, "\377\0\1\2\3\4\5\6\7\10\t\n\v\f\r\16\17\20\21\22\23\24\25\2 6\27\30\31\32\33\34\35\36"..., 12000000) = 12000000
2076337 close(34) = 0
2076337 close(39) = 0
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_1813a.tmp", O_RDWR) = 34
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_1813a.tmp", O_RDWR) = 39
2076337 read(34, "\377\0\1\2\3\4\5\6\7\10\t\n\v\f\r\16\17\20\21\22\23\24\25\2 6\27\30\31\32\33\34\35\36"..., 12000000) = 12000000
2076337 close(34) = 0
2076337 close(39) = 0
2076337 openat(AT_FDCWD, "/tmp/v8_QxzpGe_1813a.tmp/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOTDIR (Not a directory)
2076331 openat(AT_FDCWD, "/opt/1cv8/x86_64/8.3.27.1936/sm-searcher/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 34
2076331 close(34) = 0
2076352 openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", O_RDONLY) = 34
Показать
Опять же, надо понимать что за время жизни сеанса 1С эти временные файлы так же сотнями создает и уничтожает. любая печатная форма - это временный файл, условно говоря. плюс идея же в том что база не однопользовательская, и сеансов десятки/сотни, а потому нагрузка на дисковую подсистему будет сопоставима с созданием временного файлика в 12 Мб. эти дисковые операции как раз и служат индикатором того, что сервер "вывозит" и ему можно давать в нагрузку новые сеансы. Кластер же ж :)
31.
starik-2005
3272
02.06.26 18:34
Сейчас в теме
В линухе обычно /tmp - это tempfs и лежит в памяти, так что как бы у тех, у кого линух стоит, не так все плохо. Но да, со стороны 1С это как-то подленько.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот