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

Мембрана кошмар слишком много связей

У нас есть группа из четырех веб-приложений (C #, ASP.NET, NHibernate) и несколько служб, которые использовались для совместного использования экземпляра Northscale. С тех пор мы обновились до Membase, и с этого момента мы действительно смогли начать эффективно использовать кеш второго уровня NHibernate. Однако, как только мы запустили приложения в производство, служба memcache перестала прослушивать telnet на порту 11211, а интерфейс управления показал, что он использует 9,99 тыс. Соединений. Судя по трафику, поступающему в нашу базу данных, мы полагаем, что должно произойти одно или несколько следующих шагов. В обоих случаях сервер располагался на сервере Windows 2008.

1) Мы должны разрешить больше подключений к серверу. Предположительно это делается путем вызова исполняемого файла с параметром -c. На практике на нашем компьютере мы получаем ошибку, указывающую, что он не может загрузить default_engine.so, когда мы пытаемся это сделать. 2) Мы должны уменьшить размер пула, который используют наши приложения. В настоящее время основное веб-приложение (которое имеет множество экземпляров, запускаемых для разных клиентов) имеет размер пула от 10 до 100 подключений. 3) Нам нужно подумать, не было ли это проблемой насыщения сети. Судя по консоли управления, оперативной памяти у нас было более чем достаточно. Возможно ли, что весь трафик перегружал какое-то оборудование в Rackspace?

Есть ли другой очевидный источник проблем, который мы могли бы упустить из виду?

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