46.
Gilev.Vyacheslav
191721.02.13 07:50 Сейчас в теме
(1) Fialka88, лучше всего такие вопросы решать путем переписывания кода
ну или обсудить детали на специализированных форумах по производительности типа нашего http://www.gilev.ru/forum/
(5) Fialka88,
никак. Алгоритмы расчета по сути своей последовательны, поэтому выполняются в рамках одного потока. Единственный вариант увеличения производительности на расчетных задачах (при условии, что нет затыков с диском и СУБД, как у вас, похоже и есть) - увеличение тактовой частоты процессора и скорости работы с памятью. Т.е. либо процессоры Xeon 5690 с памятью 1333 Мгц, либо E5-2643, на котором память можно уже 1600 МГц использовать
оттестировал на серверной 1с + субд, грузит по полной только одно ядро, видимо нужно сделать какие-то настройки в ос для распараллеливания процеса по ядрам
у сервера 3 ядра. Процесс 1сv8.exe*32 грузит одно ядро на 100%, соответственно общая нагрузка 33%. Знаю только что стоит win server 2008 x64. Вобщем для понятия почему не раскидывает по ядрам нужна полная картина того, что стоит и как работает, а я не обладаю этой информацией.
(11) Сервер виртуальный что ли?
1cv8 - это клиентский процесс. Он всегда работает в одном потоке.
А rphost? А процесс сервера СУБД? Сколько они занимают процессорной мощности?
Ага получил ограниченный доступ на физическую машину, процесы посмотреть не могу. В быстродействии на графике грузяться все ядра(8шт) более менее равномерно.
Причем здесь физическая машина? На ней может быть несколько виртуалок, которые грузят процессор. Какая загрузка процессоров (виртуальных) в вашей машине?
(21) edzz, возник вопрос ......... в терминальном режиме вы друг другу не мешаете например когда идет перепроведение документов (восстановления последовательности) могут ли другие пользователи проводить документы создавать новые и т.д
Так это только терминальный сервер с клиентскими рабочими местами 1С. Одно рабочее место полностью грузит процессорный поток, в производительность которого вы и упираетесь. Остальные работающие процессы слегка грузят другие ядра. Что вы хотите распараллелить?
коль скорость обработки поднять не получается тогда как можно работать одновременно т.е. когда идет перепроведение документов (восстановления последовательности) могут ли другие пользователи проводить документы создавать новые и т.д как не мешать ДРУГ ДРУГУ
(24) Fialka88, ну если проведение документов за рамками восстанавливаемой последовательности - не вижу причин, почему бы не работать параллельно. Ну а если в рамках той же последовательности - то пардон, целостность данных никто не отменял.
вот и как это сделать пытались сегодня в терминальном режиме перепроводить документы и создавать новые получается так новые проводит создает а перепроведение рвет т.е если переод с 01.03.12 по 01.04.12 может 11.03.12 не перепроводить а 12.03.12 проводит дальше соответственно база востановлена по 11.03.12
У меня вопрос в том как можно ускорить перепроведение документов или восстановление последовательности (не меняя железа), доступ к базе(файловой) монопольный? Я подозреваю, что - никак...
Ну почему же никак - можно процессу выполняющему работу,и\или процессу виртуальной машины поставить "высший приоритет".
Существует интересный параметр реестра HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation
В этом параметре 3 2-х битных поля.Первая пара бит(старшая) определяет короткие\длинные кавнты,вторая переменные\фиксированые значения квантов,третья пара - динамическое выделение более длинного кванта.
(30) Проверено, база на ssd (загружен на 7%), проц. Xeon 16 ядер - в работе только одно, оперативки 16 гб, загружено лишь 2,5 потому что одному ядру больше и не нужно.
Fialka88 проблема у вас скорее всего в дисковой подсистеме. Если стоят не ssd-ки в рейде, то 100 процентов проблема в этом. И даже если стоят ssd-ки то еще на каком контроллере какая у них прошивка и вообще какие они сами.
И проблему эту программно не решить, только сменой железа.
Ну дык 1С только и умеет, как работать только с одним потоком (файловая версия). Ставьте SQL. Здорово помогает. SQL задействует многопоточный режим процессоров. Уже ж все описано: 1С файловая система - меньше ядер, больше частота, SQL - больше ядер, меньше частоты проца, больше частота шины.
посмотрите очередь диска при проведении документа, если стабильно больше единицы, то необходимо ускорение работы дисковой подсистемы, в зависимости от количества пользователей это либо 10 райд на SAS, либо внешний массив (дорого), либо базу на ssd или RAM (для экстремалов)
Выбирая SSD следует учесть ,что процент выхода из строя у них немногим меньше чем у жестких дисков,но характер возникающей неисправности обычно не позволяет восстановить данные.То есть к бекапу нужно отнестись тщательней.
У нас как правило проблема в скорости проведении/заполнении конкретного документа. Брал на тесты разное оборудование, везде тестировалось как с файловым вариантом так и с сиквелом. Результат - максимальная частота проца - максимальное быстродействие, на втором месте скорость памяти, на третьем менее значительное - скорость подсистемы хранения. Так простой САС диск с 15000 оборотов и 10 рейд на таких же винтах - разница практически незаметна на документе который заполняется 20 минут.
Возможно при параллельном заполнении 5 таких документов и будет разница в связи с файловой подсистемой, но у нас это не реально из-за блокировок объектов при проведении/заполнении одного этого документа.
Так же интересно, что в однопользовательском тестировании файловый вариант быстрее чем с сиквелом.
А многопоточность нужна только при большом количестве поьзователей, там действительно есть смысл подобрать оптимальное количество запускаемых rphost.