#2
by IamAlexy
1процесс=1ядро по этому и рекомендуют делать и рассчитывать количество рпхостов так чтобы их было по количеству ядер примерно..
#6
by 33554432
теория возникла из банального эксперимента. на простом компе, настроенном как сервер, 1с работает в 3 раза быстрее, чем 2-процессорный мощный сервер. Другого объяснения не вижу.
#8
by 33554432
для скорости тоже. Ну это же смешно, что 2 12-ядерных процессора, по суммарной производительности в 5 раз превосходящие десктопный компьютер, работают в итоге в 3 раза медленнее десктопного компьютера.
#9
by rphosts
тут конечно телепаты и экстрасенсы... все в курсе как ты ставил там и там угадай сколько процессов имени меня грузит проц, если кроме них на сервере ничего нет:
#11
by КМ155
[для скорости тоже] для скорости нужна тактовая частота CPU, если твой смешной 12 ядерный процессор тикает на жалких 2 Ггц, то его порвёт даже смартафон
#12
by Провинциальный 1сник
Это заблуждение. Один процесс может запускать множество потоков (thread), каждый может выполняться на своём ядре. При этом адресное пространство общее.
#14
by Провинциальный 1сник
+ И кстати, если есть возможность работы на одном РП - то лучше использовать один. В 8.2 при наличии нескольких рпхостов сильно тупит инициализация фоновых заданий.
#16
by MrStomak
Это же смешно, когда дизельный седельный тягач MAN, мощностью в 5 раз большей, чем жигули, проигрывает жигулям в скорости перевозки 1 кг картошки!!! Где справедливость??! Это ж надо такое сказать..
#18
by xxTANATORxx
ура пацаны, все выбрасываем сервера стоимостью многолярдов, ставим десктопы, из сабжа вытекает что десктопы производительнее
#20
by hhhh
ну так и есть. Все эти накрученные многоядерные на 90% лохотрон. Чтобы подороже продать. Вешают нам лапшу на уши.
#21
by MrStomak
Да блин, этот бред еще и опровергать надо чтоли? Берешь запускаешь обработку в 2х сеансах и смотришь как загрузятся 2 ядра на сервере. Очевидно, IamAlexy спутал узлы NUMA и ядра процессора. В результате, получилась фигня. В разделе ТВКВ вроде была статья Морозова, что rphost нужно размножать по количеству узлов NUMA.
#23
by MrStomak
Два сеанса может наплодить хоть 20 тредов, все это может выполняться в 1 процессе rphost. Что совершенно не требует "количество rphost по количеству ядер"
#24
by Фрэнки
как происходит появление нового треда, для этого что-то нужно прописывать в программном коде или системны планировщик сам множит треды от балды?
#26
by Фрэнки
очевидно, что это он ДОЛЖЕН делать, иначе треда просто не будет. Ну и где этот тред останется? В адресном пространстве родного процесса?
#27
by MrStomak
Появление треда прописано в платформе, ты ничего явно не создаешь. На клиенте треды могут создаваться из кода через "ПодключитьОбработчикОжидания", на сервере через ФоновыеЗадания.Выполнить, но это косвенное создание треда. Я не понял смысла вопроса. Тред может быть только там, где создан. Тред не может перейти в другое адресное пространство. А потом вызов закончится и треда вообще не будет. Но все треды могут принадлежать одному rphost и загрузить сколько хочешь ядер.
#29
by Фрэнки
не загрузят они "сколько хочешь ядер" - нет у процесса доступа в один и тот же квант процессорного времени доступа к нескольким ядрам.
#31
by MM
А платформа не использует пул потоков? Всегда ли при соединении создаётся поток, а при отключении удаляется? ПодключитьОбработчикОжидания разве не через таймер сделан? Вероятнее всего оконный, а не ядерный.
#32
by MM
Так ведь предметом планирования времени процессоров являются потоки, а не процессы, в которых они живут. Проблема с таким распределением может быть только в NUMA-архитектуре, там планировщик может по другому действовать.
#33
by MrStomak
Запусти винрар и посмотри, как у процесса "нет доступа в один и тот же квант процессорного времени доступа к нескольким ядрам"
#37
by Провинциальный 1сник
А при чем тут винда? В линуксе почти то же самое. Правда, там треды это форкнутые процессы, но поведение аналогично.
#38
by ЛучшаяДевушка в СССР
боже ж мой, как вы во всем этом разбираетесь? зашла и я, может пойму, почему там, где обычно все летает, 8.3 еле поворачивается, но нет - столько умных слов я не осилю...
#39
by MM
сколько сотен пользователей работало в базе, на старой версии и на 8.3, что конфигурация работала медленно? В 8.3 сделали упор на большое количество пользователей, медленные каналы связи и веб-клиенты, в старых версия не было проблем с этим? А какие варианты ОС рассматриваются? Те что уже не на поддержке должно исключить (< Vista).
#41
by ЛучшаяДевушка в СССР
база файловая, розница 2.1, стоит веб-сервер, пользователей 2 (сеансов 3-4), один подключается через веб, второй локально... локально даже все открывается со скрипом, веб соединение вообще может печать этикетки 5 минут выдавать... мне кажется, что файловая ТиС и УТ даже по сети не так тормозили, как эта... меньше двух пользователей - куда уж меньше... и базу для меньше 5 пользователей советуют файловую... ну вот файловая... я даже если одна подключаюсь локально - медленно все...
#43
by ЛучшаяДевушка в СССР
а веб-сервер тогда зачем? а если я одна буду работать, мне тоже нужен сервер (хоть мини, хоть не мини)? все же базы раньше на 7.7, 8.1, 8.2 быстро работали локально, а эта нет... можно сделать распределенку для розницы же, тем более, что все равно куплены для каждого магазина отдельные поставки, так я одна не могу нормально быстро работать в базе локально... с такой скоростью, как я делаю это на такой же машине в ут 10.3... это вообще вопрос к платформе или к конфигурации?
#44
by MrStomak
Это вопрос к управляемым формам прежде всего. По сравнению с обычными дополнительно происходит сериализация и десериализация. За универсальность, тонкие каналы и возможность использования web платим производительностью. Плюс конфигурации стали намного больше, больше качается кеш, дольше поиск по нему и т.д.
#45
by IamAlexy
ну так что в итоге? я зашел в базу десятью пользователями и у меня в настройках стоит "1 сеанс на процесс" - сколько у меня будет процессов и как они расположатся по ядрам если у меня 10 ядер ?
#47
by IamAlexy
можешь подогнать через настройку количества баз/сеансов.. примерно.. то есть если у меня допустим 10 пользователей и 4 ядра и они работают в одной базе - то я делаю настройку - 3 сеанса на процесс.. и каждый четвертый сеанс инициирует новый процесс который падает в наиболее свободное по загрузке ядро на момент создания процесса.
#48
by IamAlexy
в зависимости от моих настроек они радостно наплодят рпхостов которые займут наиболее свободные ядра.. я собственно про это выше и писал..
#49
by ЛучшаяДевушка в СССР
и чем лечить? кроме сервера? ни на каком компе не будет это нормально работать? я для примера открыла ут 10.2 и розницу 2.1 рядом, вывела на печать этикетку - в ут посчитала до трех, в рознице до 60-ти примерно...
#50
by IamAlexy
у тебя "тормозит", вернее менее отзывчиво работает именно интерфейс.. если у тебя в "локальном и монопольном" режиме база работает медленно - в серверном если ты сервер на своей машине поставишь оно быстрее работать не будет..
#52
by MrStomak
Такой разницы не должно быть. Розница развернута без веб-сервера, база находится на сетевом ресурсе?
#53
by MrStomak
Немедленно убирай эту убийственную настройку! 1 сеанс на процесс - это жесть просто. "В 64-разрядном сервере "1С:Предприятия" один rphost может полностью использовать и оперативную память, и процессорные ресурсы сервера. Поэтому для 64-разрядного сервера "1С:Предприятия" нормальным следует считать запуск одного рабочего процесса на один сервер."
#54
by ЛучшаяДевушка в СССР
хорошо, это я на своем компе тестирую, ничем ему помочь не могу... а клиенту надо ж что-то посоветовать)) комп сменить? или что? я быстрее считала, может секунд 30 получится, если в секундах мерять... и это не вывод этикетки на печать - это нажать кнопку Печать, чтобы вывелась таблица (правда есть куча характеристик), выбираю одну характеристику, жму печать и считаю до 30-ти... если выбираю товар без характеристик и жму печать в форме номенклатуры - до 21 досчитала)
#55
by IamAlexy
это было для примера. ок. вопрос сугубо практический: 1. у тебя 32битный сервер, один процесс и 2 сеанса. каждый пользователь в сеансе запускает по тяяяяжолому отчету, для упрощения сделаем вид что отчеты старые и не плодят фоновых заданий. сколько ядер будет занято и соответственно уйдут в максимум по загрузке? 2. вопрос в продолжение к вопросу №2: эти же два сеанса но в РАЗНЫХ процессах запускают те же отчеты - сколько на этот раз будет занято ядер и в каком случае отчеты сформируются быстрее?
#56
by MrStomak
1. 2 ядра 2. 2 ядра. В последнем случае могут быть расходы на маршалинг, вариант №1 быстрее.
#57
by IamAlexy
вопрос в догонку конечно же про память - отчеты генерятся с количеством строк по 100 000 в каждом и на СКД - что будет с памятью?
#58
by IamAlexy
странно - с каких версий платформ они стали занимать 2 ядра? можешь показать скрин где видно как один rphost.exe загрузил 2 ядра?
#60
by ЛучшаяДевушка в СССР
это я сейчас на своей машине пробую, здесь у меня без веб-сервера... у клиента стоит веб-сервер, база на компьютере там же, я там подключалась локально - очень медленно все просиходит... еще иногда подключаюсь через тим к компу, в базу захожу локально и что- то делаю в базе, при этом есть одно веб-соединение в магазине розничном, звонят из розницы - если вы работаете в базе, выйдете, пожалуйста, у нас все висит...
#61
by MrStomak
Всегда занимали 2 ядра. Запусти и сам смотри. Это твои субъективные впечатления, практика ничего подобного не показывает. 1С официально рекомендует для х64 1 рабочий процесс, на х86 несколько только по причине ограничения памяти на процесс. Для многосокетных систем может быть кривое распределение по ядрам, потому для них есть рекомендация использовать несколько рабочих серверов.
#62
by MrStomak
32-разрядный сервер может упираться в лимит по памяти. Это грозит ошибкой "Недостаточно памяти на сервере". В случае, если памяти для отчетов достаточно, они будут формироваться чуть-чуть быстрее, чем на х64 за счет более быстрой адресации памяти.
#63
by ЛучшаяДевушка в СССР
+ при таком раскладе подключить второй магазин вообще не представляется возможным... не будут же они посменно работать, одни днем, другие ночью... вообще, имеет права на существование такая схема - один рабочий комп, на котором развернут веб-сервер, и два-три магазина, которые подключаются через тонкий клиент со своих компов из розницы (не через браузер)? и какой должен быть комп основной, чтобы он это потянул? (сорри, надо, наверное, отдельную ветку)
#64
by MM
Это о NUMA? Разве система сможет правильно разделить одно адресное пространство процесса на несколько узлов NUMA, каждый со своей памятью, даже если разные потоки будут честно разделены между ядрами?
#65
by MrStomak
"Следует иметь в виду, что поддержка NUMA в кластере серверов 1С полноценно пока не реализована. Сервер 1С не управляет распределением ресурсов по NUMA узлам, полностью полагаясь в этом на операционную систему, что не всегда даёт оптимальный результат."
#66
by MM
Вот только 8.3 не позволяет точно указать количество rphost, потому и приходится так исхитряться.
#68
by IamAlexy
хм.. субъективизм вещь такая.. как бы вы не рассказывали что "на самом деле" - на практике все же разница очевидна, и пользователи ее видят.. но вы поколебали мою уверенность что "1с сама нихрена не умеет многопоточность и надо делать количество процессов по количеству ядер" как раз у меня сейчас новый сервак почти настроился, скуль ставится - как доставится запущу тесты фрагстера и гилева - в режиме нескольких процессов и в режиме одного процесса- посмотрим попугаи какие будут..
#69
by MM
не сказал бы. В 8.2 этот параметр был явным, а по ссылке предлагается завести кучу рабочих процессов кратную числу узлов, если число пользователей известно. 8.3 умеет переносить сеансовые и др. данные в rphost, когда он один? В 8.1 это был веский аргумент не ставить флаг много процессов.
#70
by MrStomak
Сеансовые данные в клиент-серверной архитектуре все же находятся в ведении процесса rmngr
#71
by MrStomak
Тесты рассчитаны на работу с данными, что немного уводит нас от анализа работы самого rphost (параллельность будет ограничена блокировками sql). Намного проще написать обработку с кодом вида Пока Истина Цикл КонецЦикла.
#72
by IamAlexy
ну... если не верить тестам то чему верить ? Пользователям? ну так они однозначно говорят что когда много процессов - работать быстрее и комфортнее и в целом "и не такое уж гомно эта ваша 1С" но мы решили пользователям не верить же.. так что остаются тесты..
#73
by MrStomak
Мне вот сложно в таком стиле вести дискуссию. Кажется очевидным, что следует получать объективные данные. Когда анализу подвергается возможность использования нескольких ядер одним rphost, разумно анализировать именно этот аспект, а не запускать, к примеру, тесты PCMark. Упомянутые тесты показывают производительность записи в базу данных. Процесс записи данных в базу физически выполняется процессом сервера СУБД, а не rphost. Т.е. влияние rphost там будет видно только тогда, когда процесс записи будет достаточно быстрым и перестанет быть узким местом - то есть не на каждой инсталляции. Т.е. результаты тестов скорее будут примерно одинаковыми, но влияние многопоточности на стороне rphost там может быть минимально. А если нагружать математику без привязки к СУБД, то это отвечает на вопрос загрузки ядер одним процессом rphost совершенно однозначно.
#74
by Провинциальный 1сник
Когда несколько РП - то тормозит инициализация фоновых процессов. Оптимально один рабочий рпхост и один резервный. Плюс наши любимые повторные вызовы и хранилища значений с COM-объектами намного приятнее работают с одним процессом, чем с кучей.
#75
by Fram
Мне кажется, у вас все в диск упирается. Помониторьте счетичик. Первый шаг - это замена ХДД на быстрый ССД. Второй - вынос темп файлов на отдельный ССД.
#79
by vde69
64х сервер - замечательно умеет работать по всем ядрам, для него несколько рхостов делать надо только в отдельных и весьма специфических случаях (вроде резервирования нагрузки)
#80
by MM
В статье 1С речь не о ядрах, а о NUMA-узлах. , там тормоза на файловой базе через однопоточный веб-сервер.
#81
by ЛучшаяДевушка в СССР
может и проще, но тут "При появлении тормозов при работе с SQL", а у нас нет sql-сервера именно в данном случае...
#82
by Fragster
если файловая через веб сервер, то: 1: всех пускать через веб (даже локальных и терминальных) 2: если активных пользователей больше 3-х воспользоваться заляпухой, например
#84
by Провинциальный 1сник
Я в том смысле, что для современных процессоров нет никакого смысла учитывать эту самую нуму. Всё равно снаружи они - обычные SMP, с общей памятью. А нюансы кэширования - внутренннее дело ядра.
#87
by uno-group
Это только у меня 1с чаще упирается в дисковые операции, а не количество процессоров и их мощность. Локальный комп с ССД диском сделает нацатипроцесорный сервак, если тестить 1-2 экземпляра 1с. Если их с полсотни запустить то уже буде видна разница
#88
by Провинциальный 1сник
Есть, конечно. И что? Два сокета в режиме SMP. В точности так же как и многоядерный проц.
#89
by Провинциальный 1сник
В том и суть, что если не углубляться в тонкости и не ловить проценты - то можно с чистой совестью на это забить, принимая все ядра равноценными.
#90
by Fragster
в smp системах у тебя по пропускной способности памяти будет более узко, чем в NUMA системах (коих среди относительно новых многосокетных - большинство). Эмуляция SMP в NUMA - это еще бОльший затык в производительности по шине памяти, так как ось не знает, как привязать процессы и их память к физическому размещению и может быть так, что процесс крутится на процессоре одной ноды, а память у него - на другой, и процессор обращается к "дальней" памяти, тратя намного больше тактов на эти обращения, чем в NUMA режиме при поддержке его осью.
#91
by MrStomak
все ядра используют один контроллер памяти. Мультисокетные же системы либо содержат несколько контроллеров (они уже давно переехали в процессор) либо вынуждены конкурировать за доступ к 1. Второй случай - чистый smp. Первый - либо smp без аппаратного решения по доступу к чужой памяти и как следствие не позволяющий без специально разработанного софта иметь доступ к чужой, который будет все равно медленный, либо NUMA, в котоом эта задача решена на аппаратном уровне. Тут есть и оборотная сторона - доступ к удаленной памяти может быть не таким медленным, а из-за того, что ОС пытается этого избежать, получаем проблему с rphost, который грузит только один сокет с ближней памятью, остальные простаивают.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Сервер 2003 и компы в сети, Раб. станции видят, но не могут зайти на сервер
- Определение сервера под сервер приложений и сервер SQL
- Ключ защиты установлен на сервере 1, а сервер 1С 8.1 на сервере 2
- Можно на один сервер ставить терминал, сервер предприятия и sql сервер
- ЗУП - больничные и внутреннее совместительство (теория)
- переносим сервер 1с на другой сервер, можноли оставить ключи на старом сервере?
- Как оптимальнее расселить сервер терминалов, сервер СУБД и сервер 1С на 2 сервера
- Сервер 1с + Postgresql + Терминальный сервер
- 1С8.2: Оптимальное размещение SQL сервера, сервера 1С, терминального сервера
В этой группе 1С
- Выгрузка и загрузка данных XML (2.1.8)
- Настройка двух СКД в одном отчете
- v7: Что за проблема в Sqlite с укладкой отрицательных чисел, методом УложитьТЗ?
- Не активна галка Использовать плановую себестоимость
- Вернуть ссылку из формы
- Выгрузить колонку ТЧ и загрузить в ТЗ Кто подскажет, что не так?
- Вывод состояния при изменении варианта отчета
- 1С8.3. Запись данных в Excel файл
- Ошибка сетевого доступа к серверу (10054)
- 1С Документооборот - прикрепленные файлы
- Нужно узнавать долг по Реализации и счет-фактуре в бухгалтерия 8.3 КОРП
- Запретить пользователям 1с вход в базу с чужого компьютера
- Поле объекта недоступно для записи (начдата ) БП 3.0
- Получить число из строки в запросе.
- Печать Qr кода в чеке Fprint55ПТК 1с Розница 1.0
- Структура предприятия в УНФ
- Как сделать чтобы ФабрикаXDTO.ЗаписатьJSON выводил норм. JSON а не в стиле 1с?
- другой расчетный счет у платежных поручений при перегрузке из ЗуП
- Поступление ТМЦ на склад в 1C:ERP
- Переход с файловой базы на SQL