Зависимость производительности от размера Кэша

max44
Дата: 14.10.2003 11:02:19
Кто ни будь, знает или может, подскажет, где можно почитать о следующем.
Как зависит производительность SQL Servera от размера кэша второго уровня процессора(ов). Стоит дилемма взять с каким размером кэша процеесорв брать сервак(512кб/1 Мб). Сами понимаете финансы ...
max44
Дата: 16.10.2003 10:10:04
Господа товарищи, есть какие ни будь комментарии?
Roust_m
Дата: 16.10.2003 10:42:34
Зависит и здорово зависит. Тут даже дело не в сиквеле, любая вычислительная задача выиграет от большего кеша. Оценивать нужный размер кеша стоит по числу процессоров. Есть такая норма: 2 проц. - достаточно 512КБ (но больше не помешает), 4 проц. - 1Мб, 8 проц. - 2Мб. Эта оценка была построена довольно давно. Сейчас, когда частоты до 3ГГц и выше, можно эту оценку сдвинуть на одну величину больше.
В качестве примера можно использовать сервера какого-нибудь бренда, например Хьюлетт сейчас делает 2-х процессорные сервера с 1Мб кеш, а 4-х процессорные с 1-2Мб кеш (1Мб для меньших частот процессоров, 2Мб для более высоких частот ~2,8ГГц)
/* им тоже нет особого смысла повышать цены на свои сервера, но и проигрывать по производительности тоже. */
Glory
Дата: 16.10.2003 10:50:32
Хм, а разве КПД L2 кэша не зависит напрямую от количества оперативной памяти ?
Roust_m
Дата: 16.10.2003 11:30:14
IMHO: зависит от числа процессоров, по крайней мере так учили на курсах Compaq.

Processor Tuning
Selecting a processor with enough level 2 (L2) cache.
• A larger cache size reduces bus latency.
• A larger cache size is more important than faster processor speed.
...

Depending on the workload of the server, an L2 cache that runs at
processor speed might be necessary to keep the processor “fed.” If the L2 cache is
not large enough or fast enough, the processor will be forced to retrieve

When choosing an L2 cache size and speed, consider that:
• As processor speed increases, the performance improvement obtained by an
increase in L2 cache size also increases.
• As the number of processors increase, the performance improvement
obtained from an increase in L2 cache size should also increase.
Glory
Дата: 16.10.2003 11:38:31
Ну это понятно, это объясняет для чего L2 кэш нужен вообще.
Но данные то в него откуда попадают ??
Если с диска, по причине недостаточного количества оперативной памяти для кэширования данных, то грош цена такому L2 кэшу. IMHO.
Copyright
Дата: 16.10.2003 13:17:13
Кэш L2 по большому счету служит именно для кэширования ОЗУ и выборки команд...
Т.е на СУБД для 2х процессорных, где работа работа идет в основном с большими обьемами информации по схеме
Винчестер<->RAID<->ОЗУ<-> Процессоры L2 кэш будет играть меньшее значение, а вот ОЗУ на RAID и в системе гораздо большее...

Про частоту процессора вообще ничего не говорю - всем и так все понятно...

Про многопроцессорные 8 и более системы только слышал, но никогда не тестировал ;-)). Предполагаю что в них рекомендации по использованию больших размеров кэшей L2 обьясняется тем, что накладные расходы по межпроцессорному взаимодействию очень увеличиваются(выборка команд именно), поэтому кэширование очень сильно в данном случае помогает

Т.о мой совет - не тратить деньги на кэш, а потратить их на ОЗУ и возможно купить более высокочастотные процессоры, но с меньшим кэшем

P.S Все вытекает из теории, подтверждаемой на практике
Copyright мой
Copyright
Дата: 16.10.2003 13:21:47
Думаю что высказанное мной подтверждает высказанное Glory (вроде он то же самое имел ввиду) ;-))

Copyright мой
Glory
Дата: 16.10.2003 13:27:57
Да, Copyright, именно это я и имел ввиду.
Roust_m
Дата: 16.10.2003 14:23:00
2Glory:
автор писал:
Если с диска, по причине недостаточного количества оперативной памяти для кэширования данных, то грош цена такому L2 кэшу. IMHO.


Когда сиквелу не хватает ОЗУ, это отдельный вопрос. Про то как лучше потратить деньги: на ОЗУ или на кеш, не знаю, все зависит от конкретного объема ОЗУ, числа процессоров, задач, выполняемых на сервере и т.д. Система должна быть сбалансирована.
Я вопрос понял так: стоит или нет покупать процессоры с большим кешем. Думаю, что ответ звучит так: все зависит... от их числа, прочих параметров сервера, типа выполняемых задач.
Есть задачи, больше расчетные, которые забрав данные в ОЗУ долго их обсчитывают, поэтому нельзя сказать что лучше кеш или ОЗУ... Все зависит.


автор писал:
Ну это понятно, это объясняет для чего L2 кэш нужен вообще.
Но данные то в него откуда попадают ??

Буквально здесь говориться: больше процессоров, выше частота -> нада больше кеша:


...
• A larger cache size is more important than faster processor speed.
...
As the number of processors increase, the performance improvement
obtained from an increase in L2 cache size should also increase.


Во всем баланс нужен! Вот.




2Copyright:
автор писал:

Т.о мой совет - не тратить деньги на кэш, а потратить их на ОЗУ и возможно купить более высокочастотные процессоры, но с меньшим кэшем

Спорить не буду, предлагаю посмотреть тесты сиквелов на ксеонах и итаниумах: 4xItanium II 1500MHz 6MB Cache чуть быстрее чем 8xXeon 2000MHz 2MB Cache
/* Конечно тут важную роль сыграла и 64- битность итаниумов, но 6MB кеш, тоже не зря туда поставили */
IMHO: Больший кеш лучше чем более высокая частота /* в разумных пределах, естессно */, для серверов с 4 и более процессорами. Иногда бывает лучше и для 2-х процессорных систем. Опять же все зависит...