Имя: Пароль:
1C
1С v8
intel core i7 CPU Multi-Threading - Disabled VS Enabled
,
0 Повелитель
 
20.11.12
09:31
В продолжение вчерашней темы (тема упала и не поднимается):
v8: intel core i7, как сделать 4 процессора вместо 8.
Провел эксперимент:

Не смог дождаться выходных. Провел эксперимент.
Windows Server 2008 R2
SQL Server 2008 R2
ОЗУ 16 Гб.
Сеть отключил, чтобы никто не мешал.
Кроме 1с ничего не запускал.

Всего крутиться на машине 4 активных процесса, терминала нет:
1cv8.exe*32
rphost.exe*32
sqlservr.exe
kavswp.exe*32

1. 8 процессоров отображается в диспетчере задач.
Перезагрузил компьютер.
Запустил в 1с отчет продажи за 2011 год.
Загрузка процесса 1cv8.exe*32 = 13%
Загрузка процесса rphost.exe*32 = до 13% (пару секунд).
Загрузка процесса sqlservr.exe до 60% (не долго пару секунд)
1 раз сформировал = 47,8 секунд.
2 раз сформировал = 34,6
3 раз сформировал = 34,3
4 раз сформировал = 34,3

1. 4 процессора отображается в диспетчере задач.. (В БИОСе выключил CPU Multi-Threading = Disabled)
Перезагрузил компьютер.
Запустил в 1с отчет продажи за 2011 год.
Загрузка процесса 1cv8.exe*32 = 25%
Загрузка процесса rphost.exe*32 = до 25% (пару секунд).
Загрузка процесса sqlservr.exe до 60% (не долго пару секунд)
1 раз сформировал = 57,4 секунд.
2 раз сформировал = 35.5
3 раз сформировал = 35.7
4 раз сформировал = 35.4

Результат Multi-Threading со своими 8 процами победил :) При первичном формирование отчета на 10 секунд, при повторных на 1 секунду.

Если честно ожидал других результатов.
1 mikecool
 
20.11.12
09:35
Загрузка процесса 1cv8.exe*32 = 13% - это один процессор
Загрузка процесса 1cv8.exe*32 = 25% - это один процессор
так что 1с пох на трейдинг, время имхо от чего то другого варьировалось
2 MrStomak
 
20.11.12
09:37
Есть мнение, что основное время тут занял вывод табдока.
3 Повелитель
 
20.11.12
09:37
(1) Так вот я когда первую тему создавал и думал что вот эти 13% и 25% будут влиять, тем более что 50% времени работает именно 1с.
(2) Да, ну и 50% времени - Расчет ширины колонок.
4 mikecool
 
20.11.12
09:39
(3) трейдинг имхо поможет, если запускать по раб.процессу на процессор, тогда они работают все
5 DayDreamer
 
20.11.12
09:42
(4) так у ТС один пользователь и количество запущенных процессов в данном случае никак не повлиют - один пользователь все равно будет работать в однмо процессе
6 DayDreamer
 
20.11.12
09:43
вот если попробовать запустить 2 процесса и формировать отчет от двух пользователей одновременно, было бы интересно посмотреть на результат
7 DayDreamer
 
20.11.12
09:44
и еще Windows Server 2008 R2 и SQL Server 2008 R2 32 битные или 64 битные? И какие настройки у SQL или они стоят "по умолчанию"
8 DGorgoN
 
20.11.12
09:45
(5) Причем не 2 пользователя, а сразу куча.
9 Повелитель
 
20.11.12
09:49
(7) Windows Server 2008 R2 и SQL Server 2008 R2 64 битные.
А вот 1с и сервер 1с - 32 бит.
10 DayDreamer
 
20.11.12
09:54
(9) попробуй запустить формирование отчета от 2 пользователей одновременно с одним и двумя запущенными процессами 1С
11 Повелитель
 
20.11.12
09:58
(10) (6)
Запустил 3 1с, Отчет тот же.
Правда чистота эксперимента нарушена, на этом компьютере сейчас люди работают.

Нажал "Сформировать" отчет в 3 разных окнах 1с.
1 раз все три сформировались примерно в одно время = 46,6 сек
2 раз все три сформировались примерно в одно время = 46,1 сек
12 MrStomak
 
20.11.12
09:58
(5) Всё было бы так, если бы MS SQL не распараллеливал выполнение запросов по потокам (эту таблицу сканим первым процессором, одновременну вот эту вторым..)
13 Повелитель
 
20.11.12
10:00
(12) Да я тоже это заметил, как раз во время этого экспремента, SQL, зажирал до 60% от общего объема процессоров, то есть сразу несколько процессоров.
Хотя раньше не замечал чтобы SQL много занимал процессоров :)
14 Midaw
 
20.11.12
10:07
(0) зачем тестировать время выполнения одной задачи на многопроцессорной системе? попробуй хотя бы тесты Гилёва...
15 MrStomak
 
20.11.12
10:07
(13) Вообще, видимо, гипертрейдинг не такой дурак, когда полная нагрузка идёт на 1 виртуальное ядро, он пытается использовать все ресурсы физического ядра и в этом случае процент загрузки в винде показывает неверно.
16 DayDreamer
 
20.11.12
10:08
(13) сколько рабочих процессов серевера предприятия запущено?
17 DayDreamer
 
20.11.12
10:09
и кстати - а какой план электропитания настроен в винде?
18 Повелитель
 
20.11.12
10:09
(14) Тестировал под конкретную задачу. Играл бы на нем в игры, тестил бы под игры.
(15) Видимо да.
(16) Всех по одному, в том числе 1 сервер 1с
19 Повелитель
 
20.11.12
10:09
(17) Максимальная производительность.
20 DayDreamer
 
20.11.12
10:11
Попробуй запустить несколько процессов сервера предприятия
21 Повелитель
 
20.11.12
10:15
(20) Боюсь сейчас это делать на работающей машине.
Читал про это статью, действительно выигрыш должен быть, но только в том случае если сервер 1с постоянно загружен.
У меня сейчас он почти всегда на 0.
22 MrStomak
 
20.11.12
10:16
(20) Зачем? ТС пишет об основной загрузке от 1cv8.exe, а не rphost
23 DayDreamer
 
20.11.12
10:16
и еще - сколько и каких дисков на тестовой машине? где лежат файлы базы данных и файл TempDB?
24 MrStomak
 
20.11.12
10:18
(23) неважно, загрузку даёт не чтение данных...
25 Повелитель
 
20.11.12
10:19
(23)
3 HDD по 500 Гб
TempDB на диске С.
База на вместе с логом на диске D
И один диск для архивов.

Самое главное я узнал, как мне и говорили что уменьшение количество процессоров с 8 до 4, не увеличит производительность.

Протестировал, так и есть. Хитро эти технологии работают :)
26 MrStomak
 
20.11.12
10:22
(25) там же еще turbo boost даёт жару в 1 ядро если остальные стоят. Производительность увеличит распараллеливание отчета по 8 потокам :)
27 Jump
 
20.11.12
10:31
(0)Вполне ожидаемые результаты, непонятно по чему должно быть иначе?
28 Jump
 
20.11.12
10:32
(25)Вообще бред какой-то. На i7 четыре ядра. И не добавить не убавить ты их не можешь.
29 ansh15
 
20.11.12
10:40
http://support.microsoft.com/kb/322385/en-us
Пишут, что может помочь, но как-то осторожно пишут.
http://www.sql.ru/forum/actualthread.aspx?tid=825203
Нет единого мнения.
30 Jump
 
20.11.12
10:52
(29)Вот именно  - "может" и "осторожно"
Гипертрединг это не дополнительные процессоры, это те же самые четыре железных процессора, только они могут одновременно держать два потока.
Держать в смысле быть готовыми к работе с ними. Но в один момент времени работает один поток на одном физическом процессоре.
Польза гипертрединга проявляется только тогда, когда у работающего потока кончается кэш, и он ждет данных, вместо простаивания ядра, оно переключается на работу с другим потоком.
С одной стороны это явно ускоряет вычисления в общем. Однако конкретный процесс у которого кончился кэш, дождавшись данных вынужден еще ждать когда завершит работу другой поток. Поэтому вполне вероятно что он выполнится медленнее.

И в конкретной ситуации нереально сказать какому потоку повезет больше, он может как немного замедлится, так и немного ускориться.
Но общая скорость вычислений с включенным гипертредингом всегда будет выше.
31 Midaw
 
20.11.12
14:04
(30) испоганил тему )
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший