Подскажите, на что стоит обратить внимание при выборе сервера, который предназначен для раздачи большого кол-ва статики (изображения, 90% коннектов за картинками до 20кб, около 10% коннектов за картинками 30-100кб).
Предполагаю, раздачей будет NGINX заниматься.
SATA/SAS/SATA диски?
Необходимо ли большое количество оперативной памяти?
Важен ли процессор для этой задачи?
Процессор не сильно важен. Лучше с меньшим количеством ядер, но с частотой побольше.
Диски лучше sas. Оперативки побольше.
Узким местом легко окажется сетевой интерфейс при правильной настройке.
Если не пережимать картинки этим сервером, то будут узким местом диски либо канал, как и сказали предыдущие товарищи.
Судя по опыту того же flickr, я бы вам посоветовал взять и процессор не самый слабый, и повесить ресайзинг картинок (создание превьюшек и т.д.) на него, чтобы освободить основной для других задач — так будет эффективнее и процессор файлового сервера не будет простаивать. Это конечно если вам нужен ресайзинг (либо любая другая чуткая к процессору задача).
По оперативной памяти затрудняюсь сказать, но сильно много по идее не нужно будет.
Кроме того, если я правильно помню, у flickr, например, есть система кеширования часто запрашиваемых картинок на быстрые SSD, а остальное хранится на обычных raid дисках (SAS скорее всего).
Кэширование в оперативку явно быстрее будет.
Если гигабайта 64 оперативки установить и ~60 из них выделить на виртуальны раздел в разделяемой памяти (shmfs/tmpfs), куда и забросить все кэши (nginx'а, squid'а, sql'я и т.п.), явно будет хороший прирост производительности.
Я думаю идеальным вариантом было бы сделать многоуровневый кеш: RAM < — SSD < — HDD.
Другой вопрос в эффективности — надо считать зависимость скорости отдачи из рам по сравнению с ssd от повышения стоимости сервера с большим кол-вом памяти. В идеале надо пробовать и на основании метрик применять решение об окончательной конфигурации сервера, но думаю что в большинстве случаев ssd хватит вполне.
В современных *nix системах давно уже существует page cache и при достаточном количестве оперативной памяти все часто запрашиваемые файлы будут им закэшированы. Незачем городить огород с shmfs/tmpfs, может получиться только хуже.
Узким местом скорее всего будет дисковая подсистема в данном случае. Выбирайте шустрые диски + фс без журналирования и расчитанную на работу с мелкими файлами.
100 мбит картинок без ресайзинга вы любым тазиком раздадите. Памяти побольше воткните, только.
На гигабите лучше ставить SSD.
Если картинок много — то правильно пишут про хранение горячих кешей в памяти, а холодных на ssd.
Вообще тут главное будет обдумать, как оно на ФС валяться будет, дабы seek много времени не кушали.