Недавно я настроил memcached для своего проекта (только начал работать над ним, поэтому у меня пока нет сложных запросов к БД). Я использую его с Doctrine2 и Symfony 3.3 на моей локальной бродячей машине (Ubuntu 16). Я знаю, что он работает, потому что я вижу, что он записывает данные в память:
Чего я не понимаю, так это почему производительность такая плохая. Согласно этому:
Я должен получить значительное увеличение производительности.
Как настроить memcached?
Версия: 1.4.25
config.yml:
metadata_cache_driver:
type: memcached
host: 127.0.0.1
port: 11211
instance_class: Memcached
query_cache_driver:
type: memcached
host: 127.0.0.1
port: 11211
instance_class: Memcached
result_cache_driver:
type: memcached
host: 127.0.0.1
port: 11211
instance_class: Memcached
И тогда я делаю что-то вроде этого:
$posts = $this->getEntityManager()->createQuery($dql)->useQueryCache(true)->useResultCache(true);
Мои вопросы/беспокойства:
- Почему так много подключений? (1-й скриншот, средняя колонка - статистика Кластера)? Я уже видел это, но моя реализация отличается.
- Большое количество подключений делает его медленнее?
- Должен ли я использовать большой набор данных/множество запросов, чтобы протестировать его? В настоящее время я использую один запрос в качестве теста и получаю более 100 сообщений из базы данных. Однако, насколько я понимаю, прирост скорости и производительности должен быть настолько большим, что я смогу увидеть это даже с этим набором данных.
- Когда я попадаю в свою конечную точку без кеша (через почтальона/инсомию), я могу получить ~ 300-400 мс, но с memcached это всегда выше 1 с. Я надеялся на что-то вроде ~ 100 мс.
Может ли кто-нибудь рассказать мне больше о том, что может быть проблемой здесь? Я буду рад каждому намеку, который смогу получить.
С уважением, Роб