company_banner

Об учёте оперативной памяти в облаке

    Продолжаем подробный разбор того, как учитываются ресурсы.

    Перед тем, как мы обсудим, как учитывается память, сначала посмотрим, как эта память виртуальной машине выделяется, и что такое вообще «память виртуальной машины».


    Реальная память виртуальных машин

    Гипервизор Xen, являющийся основой XCP, являющийся основой облака Селектел, контролирует несколько аспектов работы виртуальных машин. Из интересующих нас с точки зрения учёта — процессор и память. Процессор мы обсудили, теперь очередь оперативной памяти.

    С точки зрения Xen'а выделение памяти домену (виртуальной машине) означает, что домен имеет право писать в указанную страницу памяти. Попытка домена записать в запрещённую для него страницу памяти вызовет исключительную ситуацию и с большой вероятностью прекращение работы домена, так что ядро гостевой системы тщательно следит за тем, чтобы не выйти за пределы разрешённой памяти (ровно так же, если программа попытается обратиться к несуществующей странице памяти, то ядро программу аварийно завершит или вызовет обработчик ошибок). В любом случае, виртуальной машине разрешено использовать только ту память, которую ей разрешили использовать. Таким образом, Xen всегда точно знает, сколько страниц памяти выделено той или иной виртуальной машине. (Да, минимальная градация учёта памяти — это 4кб кусочек памяти, называющийся «страница»). Я опущу раздел, связанный с трансляциями адресов, поскольку это одна из самых… м… затруднительных областей. Если вкратце — пририсуйте к обычной схеме трансляции виртуальной памяти на i386 ещё две таблицы дескрипторов — получится примерно оно.

    Когда домен создаётся (то есть виртуальная машина стартует), программа под названием domain_builder говорит Xen'у, сколько страниц нужно выделить домену. Эту же информацию сообщают ядру гостевой системы, чтобы оно знало, сколько ей памяти выделено.

    Внутри виртуальной машины запущен modd (memory on demand dæmon), который посредством xenstore (специфичный для зена метод взаимодействия между доменами) сообщает управляющему сервису о том, в каком состоянии находится память домена. В реальности это просто запись содержимого /proc/meminfo, не более. Сервер смотрит на настройки виртуальной машины и решает, сколько памяти нужно добавить или убрать. И отдаёт команду на изменение памяти.

    И вот тут начинается самое интересное. В Xen'е существует понятие передача страниц памяти. Это, в буквальном смысле, означает «взять страницу памяти от одного домена и передать другому». Соответственно, когда отдаётся команда на отдачу/приём памяти, Xen забирает у гостевой системы память, или отдаёт ей эту память. В силу общей (полезной) параноидальности Xen'а, все отдаваемые из домена страницы предварительно обнуляются (чтобы случайно не отдать ценные данные посторонним соседям по виртуализации).


    Понятно, что память имеет границы уменьшения — ядро и базовые программы (init, getty и т.д.) хотят себе какой-то объём памяти. Ниже него спускаться нельзя, а приближаться опасно (можно «чуть-чуть» пережать и вызвать OOM или другие неприятные проблемы). Именно это объясняет довольно высокий нижний лимит памяти.

    С верхним лимитом всё сложнее. При создании домена (старте виртуальной машины) задаётся верхняя граница памяти, и запускающаяся машина резервирует себе определённый объём служебных данных под возможные «будущие» страницы. Это не очень большой объём, но он всё-таки есть, и высокая верхняя граница памяти увеличивает потребление памяти. Потому официальная рекомендация не делать соотношение минимум/максимум больше 8-10. В теории, когда будет полностью стабильно отлажена работа memory hotplug этот лимит будет снят, но в настоящий момент технология слишком экспериментальная, чтобы брать за неё деньги.

    Таким образом, память меняется автоматически в заданных пределах. О MOD мы поговорим ещё, после того, как наши программисты таки доделают возможность клиентам менять настройки MOD.

    Но, в рамках общего любопытства, отвечу о том, что произойдёт, если MOD выключить. Память просто перестанет регулироваться (она зафксируется на том объёме, который был, и на этом всё успокоится). Учёт памяти никак не связан с MOD.

    Учёт памяти

    Понятно, что классическое VDS'ное «XXX мегабайт в месяц» (прямая линия на картинке справа) не подходит — сейчас это 256 мегабайт, а через десять секунд — уже 500, а то и пара гигабайт.

    Вместо этого мы учитываем величину под названием Гб*ч, то есть гигабайт в час. На самом деле, внутренней единицей учёта у нас является kb*ns (килобайт-наносекунда), но цена килобайт-секунды слишком маленькая, и писать её в прайсе — сбивать людей с толку, не говоря уже о бухгалтерах, пугающихся цифр вида «цена 1.3*10-19руб», или, ещё лучше, «количество: 10e+23», так что в интерфейсе мы приводим эту величину к разумной цифре (Гб * ч). Но внутренний учёт аналогичен тому, как мы делаем с процессором — деньги за память снимаются, как только набежала копейка или более.

    Гб*ч — величина синтетическая. Это может быть 128 Мб, растянутые на 8 часов, или 4 Гб за 15 минут, или комбинация изменяющихся объёмов памяти, сложенная соответствующим образом. На картинках показаны разные случаи использования памяти. Во всех картинках показан интервал в час астрономического времени.

    Теперь о том, как мы суммируем. Раз в небольшой интервал времени мы берём значение памяти, умножаем на длительность интервала, получаем количество kb*s за этот интервал. Эти величины суммируются, вне зависимости от того, на каком хосте находится машина. Кстати, там же собирается и статистика (для графиков), но нам очень не хватает программистов (мы серьёзно — у нас открыты вакансии программистов и мы ждём вас), так что в интерфейсе у клиентов это появится позже. По сути, это простейшее числовое интегрирование кривой выделения памяти, аппроксимированное прямоугольниками. Для избежания неприятных эффектов мы отбрасываем первое и последнее значение, так что можете считать, что 2 секунды использования памяти за весь срок жизни машины мы вам дарим.

    Дисковый кеш, свободная память и своп


    Ещё одним вопросом, часто возникающим, является вопрос о том, какую память мы считаем. Если внимательно присмотреться к данным /proc/meminfo или выводу ps, можно увидеть кучу разных значений. К счастью, все эти значения, включая размер адресного пространства, это лишь «собственные выдумки» ядра гостевой системы. Есть величина выделенной памяти (totalmem), она указывает на то, сколько физических страниц памяти выделено виртуальной машине.

    Кстати, я забыл сказать. В Xen'е нет оверселла. Что такое оверселл? Это когда 10 виртуальным машинам говорят «вот тебе 500 Мб», а на ноде (сервере, делающем виртуализацию) есть всего 2Гб. Смешно? Но так живёт любой хост под openVZ. Так как программы редко забивают 100% оперативной памяти, остатки «перепродаются» (англ. oversell) ещё раз. В большинстве случаев это хорошо, но что делать, если все десять машин заняли по 400Мб? Беда. Так вот, Xen не имеет режима оверселла, и более того, модель работы с памятью в Xen'е в принципе не допускает ситуации «обещанной, но не выделенной» оперативной памяти. Есть весьма специфичные ситуации «общих» страниц памяти (они используются в драйверах и счёт идёт на единицы килобайт), но ситуаций, чтобы страницы памяти приложений (а не драйверов) были общими между разными виртуальными машинами не бывает. Вся выделенная память для виртуальной машины принадлежит ей и только ей. Даже если эта память не используется.

    Собственно, возвращаемся к свободной памяти. Ядро линукса известно своей жадностью к памяти — вся свободная память занимается дисковым кешем. Мы об этом поговорим чуть позже, но дисковый кеш в облаке — очень полезная штука, так как позволяет существенно уменьшить количество дисковых операций (особенно, чтения). Свободная память может быть только на очень простаивающей машине с избыточным запасом памяти. Мы стараемся обеспечить такой режим работы, чтобы «совсем свободной» памяти не было. Хотя, если виртуальная машина простаивает, ситуация, когда занято 60 из 128 Мб вполне возможна. Мы учитываем всю выделенную память домену — и да, свободная и простаивающая память учитывается, поскольку она была выделена в эксклюзивное пользование домену.

    Теперь немного о swap-файле, файле подкачки (точнее, чаще всего это раздел подкачки). swap очень полезен для гостевой системы — он позволяет ядру увеличить размер виртуальной памяти. При влюченном MOD единственное назначение файла подкачки — увеличение виртуальной памяти (фактически, это «оверселл», который устраивает ядро для процессов в гостевой машине). Кроме того, он страхует от внезапных скачков памяти. MOD реагирует довольно шустро (время реакции меньше секунды), однако, в определённых условиях (например, кто-то попросил много памяти) может не успеть. В этом случае файл подкачки позволит разрулить ситуацию, запрос будет успешен, а подоспевший MOD обеспечит нужный объём памяти). Кроме того, ситуация, когда у работающей машины часть процессов оказывается вытеснена в swap-файл нормальна — это естественная оптимизация использования памяти. Например, CentOS (на мой взгляд, довольно толстая и перегруженная фенечками система) запускает довольно много демонов, приличная часть которых не используется большую часть времени. Такие демоны вытесняются в файл подкачки и лежат там неделями без движения.

    Отключение файла подкачки мы очень не советуем, так как денег это существенно не сэкономит, а вот риски нарваться на сообщение MemoryError в момент некрасивого взбрыка с запросом памяти от толстого приложения сильно увеличиваются. Более того, если оказывается так, что много процессов резервируют себе много виртуальной памяти, мы советуем, наоборот, увеличить объём файла подкачки (например, создав и подключив второй) — это даст больше свободы для операционной системы по управлению адресным пространством.
    Selectel
    ИТ-инфраструктура для бизнеса

    Comments 85

      –15
      все ровно не купим
        +10
        А мы не продаём, мы сдаём в аренду.
          +2
          Кстати спасибо! Вчера занёс немного денег на баланс, создал машину и обрадовался, что деньги тратятся достаточно медленно. Такой формат пользования услугами очень удобен :) Останусь с вами
          +1
          а я купил, очень доволен выбором.
          сервис шикарный — за очень не большие деньги практически неограниченное пространство действий и экспериментов.
          +2
          Кстати, я забыл сказать. В Xen'е нет оверселла. Что такое оверселл? Это когда 10 виртуальным машинам говорят «вот тебе 500 Мб», а на ноде (сервере, делающем виртуализацию) есть всего 2Гб. Смешно? Но так живёт любой хост под openVZ. Так как программы редко забивают 100% оперативной памяти, остатки «перепродаются» (англ. oversell) ещё раз. В большинстве случаев это хорошо, но что делать, если все десять машин заняли по 400Мб?

          Наши виртуальные серверы построены на базе технологии виртуализации OpenVZ.
          selectel.ru/vds

          хотелось бы узнать величину oversell в данном конкретном случае
            +3
            Точную цифру не скажу, вот текущие цифры с нескольких нод:

            1) Всего памяти — 12Гб, 8.1Гб кеш
            2) 12Гб, кеш 8.3 Гб
            3) 24Гб, кеш 16.19 Гб
            4) 24Гб, кеш 19.31 Гб
            5) 24Гб, кеш 17.82 Гб
            и т.д., всё постить тяжко.

            В существующих объёмах памяти диски становятся узким местом раньше, чем память.
            +2
            Толи я не уловил, толи вы не описали толком, как высвобождается память? Например у меня скачек и мое приложение заняло 4 гига вместо обычных 256. Затем идет спад, за какую память я буду платить?
              +1
              Подробно то, как именно происходит удаление/добавление памяти я напишу позже, когда буду описывать MOD.

              Пока что примерно могу сказать, что у вас (если все процессы угомонятся) останется «занятая память + 96Мб». По итогу у вас будет график почти как фиолетовая картинка, с поправкой на другие цифры. Оплатите вы размер «закрашенной» области на графике.
                0
                вот эти +96М — можно будет настраивать?
                  +1
                  (сливаю инсайд килограммами)

                  Да, всё со стороны XCP/mod-server настроено и готово, отлажены вызовы в API. Осталось только приделать это в клиентскую панельку и подумать о том, как бы его нарисовать так, чтобы люди «из экономии» не стали себе там +0 делать (это приведёт к… хм… феерическим проблемам, причём не у нас, а на клиентской машине). Но у нас категорически не хватает программистов. Те, которые есть — нарасхват (потому что у нас кроме моего любимого облака ещё куча задач) — и всё сделать не успеваем.
                    0
                    Написать в админке предупреждение? В конце концов, попробовав, и получив проблемы люди смогут и назад вернуть.
                      0
                      проще минимальную планку оставить какую-нибудь.
                        0
                        ну, мы думаем. Там вопрос не в том, «как запретить», а как нарисовать интерфейс, в котором будет понятно, что «0 — это почти гарантированная смерть».
              0
              Эх, в Москве бы предоставляли — купил бы может… Придётся ждать «несколько месяцев»…
                +5
                Вот чего я точно не буду — это разворачивать облака в другом городе в новогодние праздники. Прошу понять.
                  0
                  ПРосто хочется чуть больше конкретики… А именно, «несколько месяцев» — это сколько?
                    +1
                    3±6 месяцев с точностью в одну сигму. Точнее не могу, извините.

                    Если серьёзно — там такой неподъёмный фронт работ, что я ничего не могу говорить. Само развёртывание облака в нашей инфраструктуре займёт около дня, а если меня не будут отвлекать на сложные тикеты, то даже меньше.

                    Но облако нужно интегрировать с биллингом. Как? Полагаться на связь с Москвой? Я не рискну. Делать распределённый биллинг? Это исследовать и программировать. Делать геокластер? Ещё больше проблем. Отдельный счёт с отдельным биллингом? Опять же, куча программирования.

                    Это всё нужно думать и делать, А ведь это лишь один вопрос, а самих вопросов пачки. Да и областей, которые нужно делать тоже много. Так что сроки называть просто бесполезно.
                      0
                      Ладно, спасибо.
                0
                Кстати, возвращаясь к предпредыдущему топику — модули ядра подключены по NFS, а не лучше ли было подключить ко всем машинам второй диск (/dev/xvdb ?) с обычной FS и на нём разместить модули? Отпадает необходимость держать там NFS.
                  0
                  А теперь вопрос — как мы будем класть туда новую версию модулей для обновлённого ядра? И ещё вопрос: что мы будем делать с клиентами, которые не хотят перезагружаться для смены версии ядра? Они имеют право. И модули им нужны от текущей версии.

                  Если кто-то открыл файловую систему на чтение, то нам туда писать будет проблемно. Есть вариант, конечно, с ISCSI-target и какой-нибудь кластерной файловой системой на ней… Но мне почему-то кажется, что mount.nfs это наименьшее из комбинации iscsi-initiator, iscsiadm, gfs2 или ещё какой clusterfs.

                  Идеальным решением была бы xenfs или xensockets, но они все в стадии «надо бы дописать до рабочего состояния».

                  Если я найду более красивое решение — я его использую. Пока что это — наименее корёжащее клиентские ОС.
                    0
                    То есть это для случая, когда исправили ошибку в одном из модулей, и чтобы не перегружаться полностью — перегрузить только модуль?
                      0
                      Если вам удастся его перегрузить. Если это что-то вроде nfs-kernel-server, то да. Если это модуль, используемый для работы, то есть вероятность, что его выгрузка чревата.
                        0
                        Ну — то есть такая ситуация редка. А если уж перезагружать — то после перезагрузки можно подсунуть вместе с ядром и другой образ ФС с модулями.
                          0
                          М… Я пока вам писал ответ, подумал про одну интересную возможность, если получится, будет здорово.

                          В предложенном вами варианте основная проблема в невозможности одновременного подключения одного VDI к нескольким VM даже в r/o.
                            0
                            Такого ограничения я не ожидал.
                  0
                  На сайте что-то не нашёл, какой у вас выбор операционных систем?
                    +1
                    Debian, Centos, Ubuntu
                      0
                      … и если кому-то нужно, то можно SUSE. Там ещё не очень хороший инсталлятор, так что мы его в публичный список не включили.
                        0
                        Ясно.
                        Вообще всё хорошо у вас, но вот траффик дороговат.
                          0
                          слушай, а что надо, что бы там генту поднять?
                          я созрел на машинку в облаке, но это должна быть гента.
                            +1
                            В качестве вип-сервиса, можешь бутстрапнуть её на диск, а я его (административными методами) сделаю системным для виртуалки. Кроме того, нужно будет установить xe-guest-tools и modd. (rpm/deb). Ядро будет наше, нужно будет подцепить шару с модулями. Бутлоадер не нужен.
                              0
                              я не понял последовательность действий.
                                0
                                Берёшь любую систему (например, debian mini). Цепляешь второй винт. Делаешь там root на обычном разделе (не LVM), делаешь файловую систему. Ставишь любым удобным способом (вплоть до тарбола) нужную ось. Груб не нужен, ядро не нужно. Копируешь из существующей системы настройки сети, inittab или его заменитель, строчку с модулями из fstab, устанавливаешь modd и xe-guest-tools (если нужно, пришлю ссылку). Пишешь тикет, я выключаю систему, меняю местами винты (1-2), всё, грузимся в неё.
                                0
                                что делать то?
                                создавать виртуалку с вашей осью?
                                  0
                                  хм. давай я поставлю дебиан, подключу второй диск (можно там?), чрутнусь на него и поставлю туда генту. сработает?
                                    0
                                    Ага, см. выше. Главное, с настройками сети не ошибись и не клади рут на LVM.
                                      0
                                      ты меня смутил словом «бутстрапнуть». я даже погуглил. сказал бы чрутнуть — я бы среагировал быстрее :)
                              0
                              Поставить можно почти любую. Во например Gentoo habrahabr.ru/blogs/personal/110978/
                              0
                              Ну вот, собрался подключиться — на сайте нет договора оферты, который надо подтвердить галкой «Я принимаю условия договора».
                              В саппорт сообщил.
                              Интересно, сколько людей «приняло» договор, когда его реально не было выложено?
                                0
                                письмо о зачислении суммы пришло с сабжем в utf, но без указания кодировки -> сабж нечитаем.
                                как-то все выглядит, будто я первый кто пользуется услугой :)
                                  0
                                  Мне письма от Селектела приходят нормально. Правда, я не облаком пользуюсь пока что, но думаю, что почтовая система там одна.
                                    0
                                    кодировка указана единственный раз в заголовке. в начале сабжа — не указана.
                                    часть почтовых клиентов отображает сабж нормально, часть — нет.
                                    0
                                    Убери в конце ссылки на договор слеш — обновляли движок сайта, косяк. Завтра поправим.

                                    Относительно кодировок — только что проверил, два письма, у обоих вот такой заголовок:

                                    Return-Path: <www-data...selectel.ru>
                                    X-Original-To: amarao...desunote.ru
                                    Delivered-To: amarao...desunote.ru
                                    Received: from www.selectel.ru (mail-odin.selectel.ru [188.93.16.22]) by
                                    home.desunote.ru (Postfix) with ESMTP id A972EFC47E for
                                    <amarao...desunote.ru>; Wed, 29 Dec 2010 22:56:03 +0300 (MSK)
                                    Received: by www.selectel.ru (Postfix, from userid 33) id 0ED3135E585; Wed,
                                    29 Dec 2010 22:54:55 +0300 (MSK)
                                    To: amarao...desunote.ru
                                    Subject:
                                    =?UTF-8?B?U2VsZWN0ZWw6INCS0LDRiCDQsNC60LrQsNGD0L3RgiDQsNC60YLQuNCy0LjRgNC+0LLQsNC9?=
                                    From: Selectel <info...selectel.ru>
                                    Content-Type: text/plain; charset=UTF-8; format=flowed
                                    MIME-Version: 1.0
                                    Content-Transfer-Encoding: 8bit
                                    Message-Id: <20101229195455.0ED3135E585@www.selectel.ru>
                                    Date: Wed, 29 Dec 2010 22:54:55 +0300 (MSK)
                                      0
                                      У меня вот такой:
                                      Return-Path: <www-data@selectel.ru>
                                      X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on relay.anime.spb.ru
                                      X-Spam-Level:
                                      X-Spam-Status: No, score=0.5 required=4.0 tests=AWL,BAYES_20,
                                      SUBJECT_NEEDS_ENCODING,SUBJ_ILLEGAL_CHARS autolearn=no version=3.2.1
                                      Received: from relay.kawai.spb.ru (localhost [127.0.0.1])
                                      by relay.kawai.spb.ru (Postfix) with ESMTP id 96121A59C
                                      for <john@kawai.spb.ru>; Wed, 29 Dec 2010 22:47:06 +0300 (MSK)
                                      Received: from www.selectel.ru (mail-odin.selectel.ru [188.93.16.22])
                                      by relay.kawai.spb.ru (Postfix) with ESMTP
                                      for <john@kawai.spb.ru>; Wed, 29 Dec 2010 22:47:06 +0300 (MSK)
                                      Received: by www.selectel.ru (Postfix, from userid 33)
                                      id 18F7735E585; Wed, 29 Dec 2010 22:47:05 +0300 (MSK)
                                      To: john@kawai.spb.ru
                                      Subject: Selectel: Пополнение баланса
                                      From: Selectel <info@selectel.ru>
                                      Content-type: text/plain;
                                      charset=utf-8
                                      Message-Id: <20101229194706.18F7735E585@www.selectel.ru>
                                      Date: Wed, 29 Dec 2010 22:47:05 +0300 (MSK)
                                      X-Length: 1280
                                      X-UID: 3873
                                        0
                                        не помогает и без слеша:
                                        $ wget selectel.ru/media/files/form/contract_offer_telecom_fiz.pdf
                                        --2010-12-29 23:12:45-- selectel.ru/media/files/form/contract_offer_telecom_fiz.pdf
                                        Resolving selectel.ru (selectel.ru)… 188.93.16.18
                                        Connecting to selectel.ru (selectel.ru)|188.93.16.18|:80… connected.
                                        HTTP request sent, awaiting response… 302 FOUND
                                        Location: selectel.ru/media/files/form/contract_offer_telecom_fiz.pdf/ [following]
                                        --2010-12-29 23:12:45-- selectel.ru/media/files/form/contract_offer_telecom_fiz.pdf/
                                        Reusing existing connection to selectel.ru:80.
                                        HTTP request sent, awaiting response… 404 NOT FOUND
                                        2010-12-29 23:12:45 ERROR 404: NOT FOUND.
                                          0
                                          Да, косяк. Человек, который за это отвечает в оффлайне. Значит, завтра поправим, я в багтрекере баг поднял с critical.

                                          PS С пополнением баланса (с кодировкой темы) действительно был косяк. Поправили, спасибо за сообщение. (Отлаживать пополнение балланса сложнее, чем регистрацию -_-''')
                                            0
                                            без паники, что ж в этом критического?
                                            тем более я ж говорил, что в саппорт уже позвонил.
                                              0
                                              404 на сайте — это critical. Хуже только если «всё пропало, шеф».
                                                +1
                                                … я не имел в виду ник.
                                            0
                                            А если письмо не дойдёт, сообщение о недоставке уйдёт на www-data@selectel.ru?
                                              0
                                              Да. А куда оно должно ещё прийти и что мы должны по факту непрошедшего письма делать?
                                                0
                                                подразумеваю, что переслать на сервисный центр.
                                                адрес то уже валидированный.
                                                значит или временные проблемы или там вообще адрес сменился и надо просить обновить.
                                                  0
                                                  а кто его там прочитает? оно вообще сможет доставиться или зависнет?

                                                  я для такого случая убрал Return-Path, и письма с отлупами просто не создаются.
                                          0
                                          Хотел уточнить про дисковый кэш в памяти. Не совсем понял из текста: если количество памяти, реально используемоем на виртуальной машине больше минимального порога, то под дисковый кэш не будет отдано памяти вообще?

                                          И, попутно. Заметил, что на моей текущей виртуалке (не у вас) не используется память под кэш вообще. Абсолютно (== 0). Т.е. вся свободная память (не занятая процессами) из выделенного мне объема, она реально свободна (unused). Это может быть специально настроено хозяивами сервиса, чтобы экономить физическую памть сервера?
                                            0
                                            > Это может быть специально настроено хозяивами сервиса, чтобы экономить физическую памть сервера?
                                            сомнительно, без кеша будет больше запросов к диску, а это более ценный ресурс.
                                            наверно дисковый кешь просто где-то уровнем выше?
                                            там openvz?
                                              0
                                              пардон, криво написалось. Реальной памяти будет столько, сколько занято программами, плюс сколько-то мегабайт.
                                                0
                                                Parallels™ Virtuozzo Containers
                                                  +1
                                                  ага, это то же самое, только коммерческое.
                                                  как ниже написали, кешь там общий и он уровнем выше.
                                                    0
                                                    Отлично, ясно, спасибо
                                                +1
                                                Э… нет. Минимальное-максимальное — это «руководство» для MOD, не более. Если реально используемое на виртуальной машине будет больше минимального порога, то памяти будет занято + 100-90Мб. Вот эта память и будет дисковым кешем. А вот если в максимальное упрётесь, то да, придётся сначала от дискового кеша отказаться, потом и в своп по-настоящему полезть.

                                                По второму. Вероятнее всего вы сравниваете openvz и xen. У openvz общий файловый кеш на всех, так что пользователям контейнера он не показывается. А в зене вся память виртуалки — в эксклюзивном пользовании у клиента и содержимое файлового кеша не зависит от действий соседей по хостингу.
                                                0
                                                Всё понял. Не понял только на счёт кэша :) Так кто и когда освобождает кэш. По тексту получается, что никто и никогда. Под виртуальной машиной есть некий демон, который регулярно принудительно уменьшает объём дискового кэша?
                                                  0
                                                  у машины отнимается память, которая не занята под ядро/программы (не вся, остается небольшой процент). вот этот процент и уходит по кэши.
                                                    0
                                                    Нет, кешем занимается ядро ОС. Оно уменьшает и увеличивает кеш по наличию свободной памяти. А мы всего лишь следим, чтобы свободная память таки была. Демон вообще ничего не делает, он тупо тырит пароли шлёт содержимое /proc/meminfo в xenstore.
                                                    –1
                                                    Несмотря на то, что это уже очередная рекламная заказная статья, надо признать, что люди предлагают более чем вменяемый сервис. Никаких «безлимитов» и прозрачная система учета ресурсов — и это правильно, так как бесплатно ничего не бывает. Установка и создание машины просходит бесплатно (!!) и за всего пару минут. И вы получаете полноценный сервер с рутом по цене копеечного дряного хостинга (при этом без невменяемых соседей и тормозящих вордпрессов и друпалов и без ограничений на число потоков или память).

                                                    Также, Xen по моему ощущению получше OpenVZ — например VDS на OpenVZ (гораздо более дорогой, чем на селектеле) при долгом бездействии какие-то злодеи выталкивают в своп, и при обращении он еще несколько секунд оттуда вылезает, ужасно. У меня даже мысль была написать какой-нибудь крон скрипт, который будет специально дергать виртуалку, чтобы ее не вытолкнли в своп, но все лень.

                                                    Но, их сервис по моему выгоден только для маленьких ненагруженных дешевых серверочков, при более-менее серьезных масштабах цены будут такие, что выгоднее арендовать/поставить свой сервер. Неудивительно, ведь «облако» — очередной придуманный маркетологами (с майкрософт видимо берут пример) термин для развода больших богатых корпораций на деньги.

                                                    Кто не верит последнему заявлению — сами сравните например стоимость хостинга на амазоне со своим VDS. А если вам нужен кластер? Разоритесь же.
                                                      +9
                                                      Она не может быть «заказной», потому что писал её я, и я же облако делал. Соответственно, если не считать моей личной заинтересованности в успехе проекта, других причин для появления этой статьи нет (писал от всей души, хм).

                                                      Теперь по поводу экономической обоснованности. Разумеется, если кто-то решит использовать ВСЁ облако на 100%, то ему дешевле поставить свой сервер или взять dedicated. Но в этом случае _каждая_ секунда простаивающего процессора, каждый килобайт памяти, который не используется, каждый диск, который не хрустит — тратит деньги в пустую (даже colocation стоит денег).

                                                      Основная идея облака (как минимум, нашего) в простой идее — я повышаю эффективность использования ресурсов (то есть делаю меньше ресурсов простаивающими). Это приводит к двум последствиям: 1) Повышение числа клиентов на одном и том же количестве киловатт (ага, тут даже вопрос не в цене железа). 2) Соответствующее этому снижение «месячной» стоимости обслуживания для клиента 3) Повышение прибыльности каждого киловатт-часа электричества и килобакса в оборудовании.

                                                      Грубо говоря, облака позволяют делать прозрачный для клиента общественный транспорт вместо своего авто. Билет дешевле, стоимость перевозки пассажира меньше. ОДНАКО, при этом пассажир прололжает считать, что он сидит за рулём и даже может бибикать в индивидуальный руль.
                                                      +1
                                                      всегда с осторожностью относился к манере комментирования amarao, но по крайней мере судя по данному проекту, уровень у него вполне себе, снимаю шляпу.

                                                      по топику: все вроде прозрачно, но гонять голос в питер и обратно я пока не буду. действительно ждем москву.
                                                        0
                                                        не вижу большой разницы куда «гонять», иногда бывает что далекий территориально провайдер быстрее и надежнее по сети, чем кто-то близкий.
                                                          +1
                                                          да у меня дедик на М9, там их несколько… вопрос в желании использовать облако. Будет в москве — будем думать.
                                                            0
                                                            а реально то какая разница в трейсах клиент-сервер до селектела и m9 :)
                                                              0
                                                              а реально у меня несколько междугородних L2-каналов, тянуть в питер намного тяжелее, чем на девятку
                                                        –4
                                                        подкачка — отстой
                                                        она нужна только когда в компе меньше 768 мб памяти
                                                          +1
                                                          В случае отключенного оверкоммита она используется для расширения адресного пространства.
                                                            0
                                                            что произойдет, когда ваше приложение сожрало 2 гига памяти и нет швопа?
                                                            какая вообще связь между наличием швопа и размером (768) памяти?
                                                              –1
                                                              я выключил подкачку когда увеличил память с 256 до 768 мб на своем компе пять лет назад
                                                              теперь я вспоминаю подкачку исключительно как страшный сон
                                                                +1
                                                                Мы не предоставляем услуг «облачного размещени домашних компьютеров», так что ваши… м… оценки не относятся к предоставляемой нами услуге.
                                                                  0
                                                                  хорошо, у вас стоит 768. внимание, еще раз вопрос: что произойдет, когда вашему приложению потребуется 1 гб памяти.
                                                                    0
                                                                    надо купить больше памяти
                                                                      0
                                                                      1 вы не ответили на вопрос — что произойдет.
                                                                      2 сколько уходит времени на закупку больще памяти.

                                                                      и что бы хоть как-то попытаться понять вашу атипичную логику — о каких системах вообще вы говорите? десктопы, сервера? классисеские x86 или что-то другое?
                                                              0
                                                              А почему минимум для 64 битных систем 512 мб памяти?
                                                              Я ожидал будет 384 или 256, неужто так много под систему уходит при 64 битах?
                                                                0
                                                                Это частично административное решение: для 32-битных систем разрешённый диапазон меньше, для 64-битных — больше. Так как верхний диапазон диктует нижний, то нижняя планка для 64-бит получается выше.
                                                                  0
                                                                  Мне казалось верхний диапозон диктует пользователь, а может все таки сделать бегунок как у clodo.ru
                                                                  www.clodo.ru/hosting/vps-resources/#scale
                                                                  Два подвижных бегунка, которые могут влиять друг на друга
                                                                    0
                                                                    Снижение памяти все таки будет для х64?
                                                                    А то собираюсь развернуть резервные сервера у вас на всякий пожарный, хочется по минимум денег в холостую тратить, так чтобы заплатил за два года и живешь спокойно пока основной сервер не лег.
                                                                      0
                                                                      Если вам понадобится x64 машина с низкими лимитами (вверх и вниз), то пишите в саппорт, я ручками поменяю для конкретной машины.
                                                                  –2
                                                                  Было бы неплохо если бы ресурсы дешевели если ты их потребляешь больше.
                                                                  Скажем если там первый террабайт трафика 20 копеек за гб, а свыше по 15 копеек, было бы полезно для больших проектов.
                                                                    0
                                                                    Вопрос бонуса крупным клиентам обсуждается, и если будет, то не в виде снижения цены, а в виде начисления бонусных средств за существенное потребление.

                                                                  Only users with full accounts can post comments. Log in, please.