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

Лучшая производительность с кластером memcached или локальным memcached?

У меня есть небольшой кластер серверов, балансирующих веб-приложение Java. В настоящее время у меня есть 3 сервера memcached для кеширования данных, и все веб-приложения используют все 3 экземпляра memcached.

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

Мне интересно, блокируют / замедляют ли мои правила iptables (или какое-то другое системное ограничение) соединения. Я подумываю перенастроить веб-приложения так, чтобы они запрашивали процесс memcached только на своем собственном локальном хосте.

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

И подумайте, когда дешевле подождать (потенциально медленного) удаленного кэша памяти или просто пересчитать данные.

Вы можете найти несколько шаблонов кактусов для memcached здесь http://dealnews.com/developers/cacti/memcached.html. Одна вещь, на которую вы захотите посмотреть, - это количество подключений, разрешенное memcached, по умолчанию установлено 1024. Вы можете увидеть соответствующий раздел документации здесь http://code.google.com/p/memcached/wiki/NewConfiguringServer#Connection_Limit. Если ваш клиент неправильно закрывает соединения, это может вызвать такие симптомы, как замедление работы.

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