Здравствуйте, коллеги!
Ситуация следующая: есть сервер с CentOS6 + OpenVZ
На сервере хардварный рейд на много террабайт.
В виртуалке на севере хранится видео-контент, который раздается nginx через псевдо-стримминг.
Когда пустили пользователей на ресурс, причем, небольшое достаточно количество, взлетела нагрузка на диск до 100%, что привело к жутким тормозам.
Экспериментами с nginx исправить ситуацию ощутимо не удалось, нагрузку снизили примерно до 85%
Об безысходности решили попробовать странную штуку: потушили контейнер, подняли nginx прямо на физической машине и рутовой директорией указали путь прямо внутрь потушенной виртуалки (/vz/private/1/srv/www/)
Нагрузка упала до 5-10% при такой же посещаемости.
Подскажите, пожалуйста, неужели OpenVZ дает такой оргомный оверхед по жесткому диску при высоких нагрузках на файловую систему?
Возможно ли это исправить? Виртуализацию хочется использовать все же.
* ради интереса поставьте proxmox(это реально 10 минут) и попробуйте там создать виртуалку. ребята очень хорошо оптимизировали работу, допилили ядро… есть смысл посмотреть на реальный оверхед
еще посоветовала бы спросить в официальной рассылке, если не помогут, забить баг в багзиллу опенвз.орг, хотя у меня такой проблемы как у Вас не возникало, но я и контейнеры без лимитов не запускала.
Перед тем, как напишите в рассылку, поставьте последнее ядрышко, и запостите версии утилит и ядра в рассылке.
А отключить определенно стоит все, что выходит за рамки нестандартной ситуации: это поможет найти редкий баг. Вообще создайте контейнер по факу из вики, совсем по-умолчанию, без всяких NOATIME и т д, и посмотрите, что будет.
Вот раньше тоже такого не возникало даже при очень высоких нагрузках.
Спасибо за советы!
Попробую все по-очереди, хотя уже много всего перепробовано из перечисленного.
Только с нагрузкой поэкспериментировать сразу не удастся, к сожалению.
Если всплывет причина бага — обязательно отпишусь.
Пробовали на другой машине.
Пытались сделать кеширование сделать на отдельном сервере на ssd дисках.
На самом деле, полностью эксперимент провести не удалось полностью, потому как даунтаймы кричны.
С этим вариантом не получилось сделать хоорошо, но, возможно, просто нужно было лучше подготовиться.
Нет у меня около 15 виртуалок, на одной иногда раздаю файло через apache и таких проблем с производительностью не вижу, хотя и раздаю файло всего 100 мегабит.
У вас диск внутри как simfs?
посмотреть можно командой df -h
Лучше ядро другой версии поставьте. Если не поможет, покажите, пожалуйста, ваши настройки контейнера.
Не может быть такого оверхеда в OpenVZ. это 99% что какая-то ошибка в конфигурации, и 1%, что баг в этой версии ядра, какая-то регрессия.
3) У Вас лимиты на шелл какие-то же стоят? Я про ulimit, а может и cgroups, В том числе шелл, под которым крутится nginx, если без контейнеров?
В Ваших настройках ограничений нет вообще никаких, поэтому вероятно, что nginx может разогнаться гораздо в контейнере OVZ сильнее, чем вне контейнера.
запустите контейнер с nginx с каким-нибудь конфигом из тех, что в комплекте идут, или простой пример с wiki.openvz.org
1) пробовали уже, стояло более старое ядро.
2) оно вродебы не должно влиять на данную ситуацию. Советуете отключить?
3) Попробуем. Спасибо!
Хотя, конфиг используется уже очень давно, а такая ситуация впервые возникла.