У нас есть 22 HTTP-сервера, каждый из которых имеет собственный кэш ASP.NET. Они читают из БД только для чтения, которая обновляется только в часы пик.
Мы используем файловую зависимость для аннулирования кэша, предлагая серверам «обновлять» свои кэши ... Если это происходит случайно в часы пик, это может привести к выходу из строя нашего кластера БД из-за внезапного затопления открытых соединений. .
Кто-нибудь использовал memcached с ASP.NET в этой распределенной форме? Мне кажется, что это могло бы дать огромное преимущество, заключающееся в необходимости создания только одного кэша (и попадания в БД в 21 раз меньше), тогда как memcached будет обрабатывать его распределение по каждому блоку.
Если у вас есть, вы помещаете его в тот же блок, что и блоки HTTP, или вы запускаете отдельный уровень кэша? Насколько хорошо он масштабируется, можем ли мы ожидать, что ему понадобятся мощные серверы? Наш рабочий набор данных невелик (мы отлично вписываем его в 4 гигабайта памяти на каждом HTTP-боксе).
Как вы справляетесь с недействительностью?
В поисках опыта и военных историй.
РЕДАКТИРОВАТЬ: Win2k3, IIS6, 64-разрядные серверы ... 4 гигабайта на коробку (я думаю, мы могли увеличить его до 16 гигов, когда мы изменили на 64-битные серверы).