Как умирал Foursquare

топ 100 блогов alexmoskalyuk08.10.2010

4 сентября сервис Foursquare ушел в довольно длительный даун. На следующий день компания опубликовала пост-мортем касательно проблем, которые испытывал сервис, разрешив заодно заглянуть в инфраструктуру весьма крупного проекта. Foursquare использует MongoDB в качестве базы данных, которая до этого работала всего на двух серверах в амазоновском EC2. В какой-то момент потребление памяти одним из серверов начало расти бешеными темпами, компания приняла решение расширить MongoDB на третий сервер, однако проблемы с памятью на этом не закончились.

СТО компании 10gen, которая производит и продает коммерческую поддержку к MongoDB (сама база доступна бесплатно), сегодня предоставил подробное описание проблемы:

  • Foursquare разбила данные на 200 секторов, и пока масштабирование между двумя серверами происходило по принципу "пятьдесят на пятьдесят"
  • MongoDB все держит в памяти, каждый из серверов Foursquare содержал 66 гигов памяти
  • Чек-ины пользователей – дело случайное, и в какой-то момент их количество на один из серверов серьезно превысило количество чек-инов на другой сервер
  • В какой-то момент MongoDB переросла за 66 ГБ, и начала сохранять данные на жесткий диск, с соответствующим торможением
  • Подключение третьего сервера и последующий передел чек-инов должен был помочь, однако
    • все еще требовалось время на миграцию
    • MongoDB не освобождала память – чек-ины от Foursquare весьма миниатюрны (300 байтов в среднем), одна страница оперативки в конфигурации сервера занимала 4КБ, итого даже если базе данных говорили, что какие-то из чек-инов теперь будут обслуживаться третьим сервером, количество оставшихся чек-инов в секторе на 4 килобайта все равно поддерживало его в рабочем состоянии
  • Сервис пришлось убить для того, чтобы за 4 часа завершить миграцию нужных чек-инов на третий сервер. После этого на старых серверах MongoDB прогнали repairDatabase(), которая дефрагментировала секторы, освободив нужную память
оригинал: http://moskalyuk.name/3070

Оставить комментарий

Архив записей в блогах:
На землю приземлилась летающая тарелка. Из нее выходят гуманоиды.форма как у наших офицеров только как фольга блескучая,а вместо звезд на погонах бриллианты,по которым легко можно определить кто главный.В принципе как у наших военных у кого бриллианты крупней и их больше тот и ...
В следственном отделе административного района Арабкир Ереванского следственного управления СК РА инициировано уголовное производство по 1-й части 297-й статьи УК РА. Об этом сообщил пресс-секретарь ведомства Гор Абрамян, отметив, что в действиях мужчины есть признаки хулиганских ...
1)Злодей ли Сталин? Несомненно. 2)Действовал ли он в интересах всего народа? Да, но с оговорками. 3)Почему иногда злодей лучше святого? Потому что мы живём не в Раю, а скорее всего в Аду. А Ад плохо управляем праведниками. 4)Как мы должны относиться к Сталину? Как к ...
Когда-то форты, бастионы и крепости обороняли приграничные города России от кочевников и армий соседних государств, служили монастырями и убежищами для местных жителей и ...
Такой интересный вопрос. Курс евро по ЦБ достиг сегодня уже почти 77 рублей (!), а доллар перевалил за 68. Но если в середине декабря 14-го по этому поводу была страшная паника в блогах и настоящая давка в магазинах бытовой техники и автосалонах, то сейчас - тишина и олимпийское спокойстви ...