Sergei
и почему же она тормозит?
Evgeny
не вынесеный наружу сторадж?
Sergei
ссзб.
Dan
iotop что пишет?
Sergei
https://github.com/docker-library/mariadb/blob/5faca097859879a9629312ee1d31fb22a06c6bf3/10.1/Dockerfile#L83
Sergei
как бы в официальных образах вынесено.
Виталий
Виталий, вы до сих пор не рассказали, почему БД в контейнере тормозит.
вопрос конкретно не исследовал, супер, если не тормозит, буду пробовать
Evgeny
iotop что пишет?
я б для начала vmstat посмотрел
Dan
а, ну да, iotop это уже глубоко. vmstat конечно
Sergei
вопрос конкретно не исследовал, супер, если не тормозит, буду пробовать
дисковое io мимо layered fs не тормозит. точнее, тормозит не более, чем mount --bind
Sergei
а вот сеть... Коллеги, никто не сталкивался с недостаточной производительностью linux bridge + veth?
Evgeny
многие советуют --net=host
Sergei
это да :)
Aleksandr
многие советуют --net=host
судя по исследованию percona при таком варианте оверхеда нет
Sergei
это факт. но это не всегда решение.
Evgeny
переключения контекста растут нелинейно btw, больше занятой памяти, 3 копирования запроса и ответа (мы же говорим про производительность, да?). продолжать?
Sergei
это все понятно. вопрос - как ускорить bridge + veth. особенно интересно это в связи с тем, что судя по симптомам, оно тормозит в районе генерирования прерываний, потому что hw-карточки создают много очередей, а бридж - одну.
Evgeny
это факт. но это не всегда решение.
у меня оверлей мультихост - просадка не особая
Sergei
теперь умножьте это на 1Mpps
Evgeny
но у меня и трафик судя по всему сильно меньше - в hw очередь я не упирался
Evgeny
теперь умножьте это на 1Mpps
афаик без вариантов - --net=host
Sergei
я думаю сходить в сторону ovs в надежде, что у него data-plane другой
Evgeny
ovs - это ж оверлей мультихост?
Sergei
необязательно. это вообще коммутатор виртуальный. то что он умеет full-mesh gre - это побочный эффект.
Виталий
переключения контекста растут нелинейно btw, больше занятой памяти, 3 копирования запроса и ответа (мы же говорим про производительность, да?). продолжать?
Про контекст процесса? Но при этом 200 контейнеров на ноду не перебор? Надо на ноду не больше количества ядер запущенных контейнеров? Аргумент про копирование запроса и ответа хорош, при каких объёмах он начинает оказывать влияние? (2000 RPS).
Виталий
Чтобы нивелировать переключение контекста?)
Evgeny
Тобишь явно привязываем процесс к ядру + одно ядро для системы? то есть в ожидании io процесс-ядро будет простаивать?
Виталий
Абсолютно верно. Во всех остальных случаях переключение контекста происходит, и, как было сказано, растёт нелинейно с ростом процессов, которые нужно переключать.
Виталий
Вопрос в тему производительности - кто-то настраивал PHP-FPM на dynamic и ondemand?
Evgeny
У меня возникает ощущение неэффективного расходования ресурсов. с другой стороны мой компания не может себе позволить держать 172 сервера только для стейджинга, а ваша может, поэтому мне нечего сказать дальше, мы - дно :(
Виталий
ondemand не даёт новых процессов (смотрел по PID), но по проиводительности система провисает в 4 раза.
Виталий
Есть задача повышения производительности. Есть подозрение, что чем быстрее грузится страница, тем лояльнее пользователь. Соответственно бизнес получает больше денег, из них можно часть запланировать на железо.
Mihail
Вопрос в тему производительности - кто-то настраивал PHP-FPM на dynamic и ondemand?
насколько я понял, разница между ними только в том, что динамик сразу стартует сколько то там воркеров, а ондеманд их стартует только при нужде. я использовал динамик
Виталий
насколько я понял, разница между ними только в том, что динамик сразу стартует сколько то там воркеров, а ондеманд их стартует только при нужде. я использовал динамик
Это я тоже понял. dynamic, поставил соединение с БД в режиме PERSISTENT и превысил лимит (70 процессов, 10+ контейнеров). Ondemand нет такой проблемы, но производительность хуже.
Mihail
о. тут еще и докер замешан ) ну я докер с пхп не гонял. нечего сказать
Виталий
Тобишь явно привязываем процесс к ядру + одно ядро для системы? то есть в ожидании io процесс-ядро будет простаивать?
Как замерить процессорное время, затрачиваемое на переключение и полезное время?
Evgeny
сколько тысяч запросов в секунду делается?
Виталий
2000 RPS pm = ondemand pm.max_children = 200 pm.process_idle_timeout = 30s pm.max_requests = 4096
Виталий
По данным ps aux количество процессов не поднимается выше 20
Виталий
в 1 контейнере, всего контейнеров 8 на разных нодах
Evgeny
разные ноды общаются друг с другом? так проверьте скорость сети
Виталий
pm = dynamic pm.max_children = 200 pm.min_spare_servers = 60 pm.max_spare_servers = 80 pm.max_requests = 4096 работает в 4 раза быстрее
Виталий
разные ноды общаются друг с другом? так проверьте скорость сети
Если только Swarm это делает. Балансер сам обращается к нодам, страница весит ~10 КБ
Виталий
2 000 * 10 КБ < 20 Мбайт в секунду при сети от 1 Гбит/c
Evgeny
ondemand по моему опыту нормально живет при 6к рпс на ноду
Evgeny
так что проблема где-то еще
Sergei
6 krps в php на сервере? о_О
Evgeny
а что такое?
Sergei
признаться, я давно не видел php (лет пять). но последние цифры, которые я помню из фреймворков тогдашних мод (yii), были в районе 100rps на ядро.
Sergei
поэтому, я, признаться, немного в шоке.
Evgeny
yii - медленный как капец мамонта, охотно верю.
Evgeny
мы делали на самописном фреймворке с агресивным кешированием
Evgeny
ну и собьсно там не было традиционных трейсов на 10 экранов - 6-15 строчек обычно
Evgeny
я уже не помню
Evgeny
памяти наверняка много было, как я люблю. проца скорее всего пара ксеонов
Evgeny
Точно могу сказать что сетевуха была с несколькими параллельными очередями скорее всего интеловая, рейд 10 апаратный от адаптека
Виталий
Кеш был на nginx или нужно было стучаться в nginx?
Evgeny
Что?
Evgeny
ит депендс. либо в своей памяти, либо в мемкешеде
Vladimir
Всем привет! Помогите плизз решить проблему. Есть стационарник и ноутбук и там и там windows 10 64bit Pro. На стационарнике докер запускается и работает. А вот на буке висит в трее и все время висит надпись is starting...
Виталий
то есть при 6 000 ещё успевали сделать запрос по сети?
Evgeny
нет, кеши локально
Maksim
Привет Кто-то юзает Докер по виндой?
Maxim
Да.
Vladimir
да
Maksim
Есть какие-то подводные камни еще, кроме того, что нельзя маунтить файлы?
Maxim
Можно маунтить.
Maksim
Как? 😳
Maksim
У меня сразу ошибку выдает и говорит, что "это не папка"
Maxim
А, ты в этом плане. Тогда не. Маунтит весь диск.
Maxim
Подводные камни есть, но в целом всё достаточно гладко.
Maksim
Хмм... то есть построить набор контейнеров для разных сервисов не получится, как под линуксом? (
Maksim
Почему нет? Вроде ничто не мешает.
Так если нет возможности примаунтить файл, то как прокидывать конфиги в тот же php.ini? Там же еще куча всяких файлов. Что с этим делать? Выкачивать все нужные файлы из контейнера? Или я что-то не понимаю?