L3 кеш как сильно бустит производительность игровому серверу?
Да сильно. Вот формулы я не знаю. Да и никто не знает. Это как в симуляции.
Чтоб узнать сколько - ты просто берешь две конфигурации. Запускаешь бенчмарк
и смотришь как было ДО и как стало ПОСЛЕ. И ничего лучше пока не придумали.
Компьютерное железо - это практическая наука. И здесь эксперимент - важнее теории.
По какому алгоритму игровой сервер использует кеш процессора?
Насчет алгоритма я не знаю. Возможно разновидность LRU. Я помню смотрел одно
видео где один С++ ный маг и колдун (кажется Ulrih Drepper) рассказывал об алгоритмах
кешей в железе.
Алгоритм оперирует обычно кусочками памяти в блоках по 64 байта. Кеш-линии.
И если тебе надо прочитать 1 байтик то будет прочитан кусок кратный кеш-линии.
Зато при последующих попытках читать второй и третий байтики алгоритм будет
оперировать с пирамидой кешов. Обычно L1 - самый быстрый и другие медлненее.
Хорошо прогретые кеши обычно содержат 100% нужную информаицю для текущего
ядра процессора. Или для thread.
Кеш придумали для геймеров или для серверов тоже?
Нет. Его создавали просто для эффективного использования железа еще в 20м веке.
Мы его увидели начиная кажется с первых Pentium-ов.
Да. Разумеется игры этим пользуются. А программист game-разработки должен думать
об устройстве кешей. Например планировать размер структур данных чтоб они были кратны
кеш-линиям.
Как хорошо будет жить сервер с основной нагрузкой на одно ядро без кеша L3?
Я не очень себе представляю подобную конфигурацию. Расскажи как ты этого достигнешь.
Если в процессор дать кеша 2gb L3 то его IPC вырастет?
Ну это ты загнул. Обычно кеши L3 стоят внутри процессора и их размер в десятки мегабайт.
Цена их тоже пропорционально дороже. Поэтому здесь нет таких безкомпромиссных
решений типа
сделать кеш на сто гигов. Вот и делают такую эконом-пирамиду. Опираясь
на такое предположение что вся память в один момент тебе все равно не нужна.