- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Задача: понять, сколько реальной памяти на VPS в данный момент.
Наваял я скрипт, может кто-то покритикует, или другую методику предложит? Идея в том, чтобы, забивая память мусором, проверить замедление чтения предыдущего заполненного фрагмента памяти, который при недостатке реальной памяти будет читаться из свопа. Размер блока и таймаут следует выбирать исходя из скорости процессора и скорости диска.
test-mem.pl
1800 MbOut of memory! когда на ноде изпользуется всего лишь 2 ГБ из 8 :)
У OpenVZ интересная методика подсчета памяти внутри VE, так как занятой там считается та, которую поаллокейтили скриптом, а не ту, которая реально занята, поэтому вполне подобное сообщение можно наблюдать.
Кажется, лучше будет постоянное случайное чтение из всего массива, чтобы поддерживать в памяти весь массив. Первые элементы могут в своп уйти, а вы читате только последних 10.
и use Time::HiRes; он в стандартной поставке в нормальных дистрибутивах.
Кажется, лучше будет постоянное случайное чтение из всего массива, чтобы поддерживать в памяти весь массив. Первые элементы могут в своп уйти, а вы читате только последних 10.
и use Time::HiRes; он в стандартной поставке в нормальных дистрибутивах.
Да, что именно читать - это большой вопрос. Я и над случайным чтением думал, и над чтением нескольких случайных блоков данных, но там возникает элемент случайности. Идея в том, чтобы уловить момент попадания в своп первых же блоков. В идеале надо рисовать график, чтобы не вычислять производительность системы.
Time::HiRes использовать смысла нет - из-за случайных посторонних нагрузок на систему я 5 секунд выбрал, там миллисекундная точность не поможет.
Pilat добавил 15.03.2009 в 11:35
1800 MbOut of memory! когда на ноде изпользуется всего лишь 2 ГБ из 8 :)
И что этот результат значит? Наверно, что память вся реальная ?
Раслабтесь, нормальные ноды обычно не уходит в своп. Точную проблему скажет только администратор ноды. График отработавшей год ноды. (Она уничтоженна, при первой перегрузке изчезнет.)
Pilat, случайности неслучайны. нужно читать в случайном порядке постепенно увеличивая диапазон этих случайных чисел. 1 секунда все же очень грубо.
Хорошо, вот другой скрипт. Читается 10 случайных блоков, таймаут выбирается как удвоенное время первого прохода. Вообще результата можно ждать только на нагруженной ноде, где реально используется своп - если до этого ещё не дошло, VM получают реальную память. То есть можно детектировать оверселлинг только если он есть. Скрипт возник по мотивам /ru/forum/327715 - чтобы в подобных случаях отлавливать использование свопа.
Чето не очень. Но нужно проверять на практике. Возможно, даже так точность уже нормальная.
Во-первых, 10 случайных считываний кажутся слишком малым числом. Для такой принципиальной цели как выбор хостинга, стоит увеличить.
Во-вторых, чтение должно быть всего блока. Например, поиск в этой строке символа, которого нет изначально через функцию index. Иначе перл просто оперирует с указателями на блок ( вот это однозначно ляп)
И что этот результат значит? Наверно, что память вся реальная ?
Видимо да. Но скорее всего то, что это не способ проверять качество VPS. Не память на данный момент проблема, а другие ресурсы.
А качество видно просто по первому заходу по SSH, а перед заказом - по цене ;)
Например, поиск в этой строке символа, которого нет изначально через функцию index. Иначе перл просто оперирует с указателями на блок ( вот это однозначно ляп)
Вот в этом я не уверен - я специально вывел номера читаемых блоков, и номера не мгновенно выводятся, как можно было бы ожидать при указателях. К тому же мне надо минимизировать загрузку процессора, чтобы отловить обращение к свопу. В общем, я немного доделал скрипт, и на моей машине он отлавливает обращение к swap.
Pilat добавил 15.03.2009 в 15:55
Видимо да. Но скорее всего то, что это не способ проверять качество VPS. Не память на данный момент проблема, а другие ресурсы.
А качество видно просто по первому заходу по SSH, а перед заказом - по цене ;)
Ну вообще да, видно - только надо же знать что является нормой, а что отклонением. Моя же цель - понять сколько памяти. Например, мой vps показал, что из 2407124k памяти только 1900 попадает в реальную (я и на HN это отслеживал, так что результат правильный), остальное идёт в своп, и это хорошо заметно по падению скорости.
Хотя оверселлинг может быть заметен не сразу, так что практическая ценность моего скрипта сомнительна :( - только в тяжёлых случаях даст результат, который и так очевиден...