На удаленном тесте гоняю серверы по сшивке панорам большого размера.
Конфиг: 2 проца по 8 ядер с НТ (зионы из последних), 128 ецц рамы, 0-й рейд из 4 дисков на крутом железном адаптеке.
Софтинка шьет 684 кадра по 36мп.
Одна из целей тестов - понять на скольки ядрах лучше всего шить.
Выяснилось, что:
1. Включение НТ конкретно в этом случае дает проседание на 10-15% (при этом при сшивке мелких панорам НТ дает прирост 30%);
2. На стадии сшивки (т.е. где работа с гометрией, еще до блендинга) память не выжирается полностью. Даже за вычетом «кэшированной» памяти (дисковый кэш?) остается еще 20-30гб свободной; (но на стадии блендинга память выжирается моментально, свободной - не более 100мб)
3. Загрузка процессора ни в одном конфиге (речь о количестве активных ядер) не превышает 80-90%.
Казалось бы - включи все 16 ядер (оперативка все равно полностью не выжирается, т.е. оверхеда на запись кэшей на диск не будет) - и радуйся. Так нет же! Если оставить только 12 ядер, то шьется быстрее примерно на 20%.
Из-за чего такое может быть?! Ну в теории. Ясень пень это вилами по воде.
Добавлено:
Еще гоняли тесты на конфигурации с жипегами не по 36, а по 200мб. Там оптимально было 8 ядер. Но... ввиду полного выжирания оперативки. На большем числе потоков свопилось слишком сильно.
Кэши пишутся в любом случае, но тут ситуация следующая:
а) в любом случае записывается 53гб кэша - на одной из первых стадий сшивки;
б) во время самой сшивки, дляшейся около часа записывается еще порядка 15гб, и считывается порядка 10гб. т.е. нет упирания в и\о дисков. Пишется\читается на 99% блоками по 64к.