Назад | Перейти на главную страницу

Требуется ли кэширование в памяти для веб-приложения, работающего на SSD?

Мой хостинг-провайдер предлагает мне увеличить память моего сервера с 8 ГБ до 24 ГБ по той же ежемесячной стоимости 3x 120 ГБ SSD.

Выбор SSD мне кажется более разумным; но мне любопытно, потребуется ли моему веб-приложению кеширование в памяти после запуска на SSD.

Спасибо.

При выборе между ОЗУ и твердотельным накопителем следует задать вопрос: «Сколько действительно нужно моему приложению для использования диска?».

Если у вас есть приложение, которое в основном представляет собой сценарии, выполняющие вычисления и отправляющие пользовательские версии страниц пользователям и обрабатывающие одни и те же запросы по не очень большому количеству данных снова и снова, тогда RAM - это то, что вам нужно.

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

Там, где я работаю, у нас есть приложение, которое каждые несколько минут записывает несколько ГБ данных на десятки тысяч RRD. Обновление сервера до сервера с быстрым SSD, улучшенная производительность резко. Вероятно, этого нельзя сказать о сервере, который, скажем, обрабатывает базу данных аутентификации. Хотя эта база данных велика, запросы к ней часто похожи (одни и те же люди заходят в одни и те же приложения снова и снова), поэтому кэширование в ОЗУ намного выгоднее.

В принципе, если вы обслуживаете одни и те же запросы снова и снова, используйте RAM. ОС будет кэшировать часто используемые данные, и вы увидите хорошую производительность. Если ваше приложение выполняет много операций ввода-вывода для «случайных» файлов, вы будете перегружать кеш и увидите больше преимуществ от быстрого SSD.

Флэш-SSD (о которых я так понимаю, мы говорим здесь) быстрые, но они не заменяют ОЗУ. Типичная полоса пропускания ОЗУ сервера измеряется в много гигабайт / сек, а задержки для чтения и записи находятся в диапазоне низких наносекунд - тип SSD на основе флэш-памяти, который вы ищете, имеет пропускную способность в лучшем случае в диапазоне сотен мегабайт / сек и задержки в микросекундном диапазоне.

Это может не иметь значения для вашего приложения, если есть другие факторы, но любой доступ к данным с SSD все равно будет на пару порядков медленнее, чем чтение напрямую из ОЗУ.

Возможно, ему все еще потребуется кеширование. Вы будете использовать 24 ГБ памяти, сколько памяти? Если у вас есть проблемы с производительностью, помогает память, но это также может быть том или место, в котором ваши приложения кэшируют свое пространство.

Вам необходимо измерить производительность вашей существующей системы, чтобы определить узкие места.

Предположим, у вас нет серьезных узких мест (кстати, плохое предположение). Вопрос в том, хотите ли вы 24 ГБ сверхбыстрого чтения, скорость записи на диск или 120 ГБ довольно быстрого чтения и записи. Если у вас есть более 24 ГБ данных для обслуживания или они часто меняются, вам нужны твердотельные накопители.

С другой стороны, если у вас есть только 10 ГБ статических данных для обслуживания, а ваш серверный процесс занимает всего 2 ГБ ОЗУ, вы можете поместить корень документа на RAM-диск с 24 ГБ ОЗУ и уйти.

Если есть узкие места (своп, пропускная способность чтения дискового ввода-вывода, пропускная способность записи дискового ввода-вывода, количество операций ввода-вывода в секунду), вам необходимо решить их специально. Оба варианта могут помочь, но какой из них лучше, зависит от ситуации.