Anonymous
То сунь в java_opts -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -
Anonymous
И можешь ограничивать память как любой другой докер контеинер
Anton
1.8.0_141
Anonymous
Сойдёт
Anonymous
В env JAVA_OPTS засунь
Anonymous
Ток убедись что они будут браться
Anonymous
Я бы ограничил память непосредственно в настройках Jirы - в файле /opt/atlassian/jira/bin/setenv.sh добавить JVM_MAXIMUM_MEMORY=800M
Anonymous
Это xmx xms
Anonymous
Эт плохо работает в докере
Anonymous
Точнее не оптимально
Anonymous
Ну xmx никак не связан с ограничение докера
Anonymous
Ну как сказать
Anonymous
Эт ограничение именно джава хипа
Anonymous
А там ещё есть неитив память и все такое
Anonymous
Оом будешь ловить пока не подберёшь нормальный xmx
Anonymous
В общем даже в доке к openjdk советуют юзать те ключи что я дал
Anonymous
И память ограничивать уже докер контеинеру
Anton
ок, спасибо... щас попробую) правда в java не силен)
ill-ya
Привет всем!
Alex
Привет всем!
привет тебе.
ill-ya
я поднимаю docker-compose up service1
Vladimir
никто не сталкивался? mounting shm tmpfs: invalid argument
ill-ya
или docker-compose up service2 но хочу чтобы с ним запускался сервис wrk(он задан) и запускал нагрузочное на этот сервис
ill-ya
Можно слинковать так? через compose
Vladimir
когда вводишь docker start <name>
ill-ya
Но тогда мне надо: links - service2 - service3 - service10000
ill-ya
и как определит wrk какой хост тестить
Anonymous
Вопрос - 2 разных контейнера в одной сети. Нужно ли делать expose tcp порта для того, чтобы они могли общатся друг с другом?
ill-ya
Как ты бы хитро это сделать
Alex
они будут видеть друг друга.
Alex
expose это вообще метаданные вроде, и не более того.
ill-ya
links: - wrk для каждого сервиса поднимет его для этого сервиса - но ничего не даст в информации для wrk
ill-ya
depends_on тоже не поможет
Alex
как это не даст
Alex
для wrk service будет конкретным хостом
ill-ya
А каким?
ill-ya
service1
Anonymous
они будут видеть друг друга.
не вариант, они не являются частью одного приложения. Это прокси + апач. Запускаются через разные docker-compose файлы. Можно конечно в один засунуть, но это будет не совсем корректно с архитектурной точки зрения
Alex
что значит каким?
ill-ya
круто бы было если бы для wrk: service1 -> service когда запустил docker-compose up service1 service2 -> service когда запустил docker-compose up service2
ill-ya
тогда я могу задать command: wrk load --host=service (напрмиер)
Anonymous
Если они не являются частью одного приложения, то почему они общаются?
Потому-что впереди стоит Haproxy, который является проксёй для остальных контейнеров.
Alex
тогда я могу задать command: wrk load --host=service (напрмиер)
а почему тебе нужно именно автоматически это запускать?
ill-ya
потому что их много
ill-ya
и я хочу тетсить определенный по одному алгоритму
Alex
потому что их много
ты вебсервер разогреть пытаешься?
ill-ya
типа того
ill-ya
а можно задать глобал host?
Alex
типа того
для warmup'а я бы пошел в разрез с принятой практикой, и запустил в одном и том же контейнере два процесса
Alex
либо пиши wrk чтобы он сам периодически опрашивал докер на новые контейнеры
Anonymous
значит это часть одного приложения )
Ну может я неправильно понимаю идею. У меня есть контейнер с haproxy+letsencrpyt. Который проксирует траффик на определённые контейнеры. Т.е. мне нужно всё делать в одном композ-файле?
Anonymous
а почему у тебя haproxy не является частью приложения?
а зачем? Это всего-лишь фронт, который занят тем, что парсит URL и в зависимости от URLа отправляет на разные контейнеры с разными веб-серверами
Alex
раз это разные приложения.
Alex
через хостовую сеть?
я, кстати не специалист, поэтому относись к моим советам со здоровым скептицизмом. Но если это разные приложения, то в один день может оказаться что они будут работать на разных континентах. Поэтому пускай посредством domain + tcp общаются.
Anonymous
я, кстати не специалист, поэтому относись к моим советам со здоровым скептицизмом. Но если это разные приложения, то в один день может оказаться что они будут работать на разных континентах. Поэтому пускай посредством domain + tcp общаются.
Мне просто не хочется через domain:port общаться, потому-что тогда придётся открывать кучу портов наружу. Я потому и решил поставить haproxy впереди планеты всей, чтобы обращались по одному порту (443 внешний), а он уже форвардил внутрь куда нужно.
Anonymous
У меня сейчас по сути проблема в том, что 2 контейнера в одной сети не видят друг друга по TCP портам. по именам я друг-друга пингую
Alex
хз, на мой взгляд у тебя это либо единое приложение либо нет.
Anonymous
Может так будет понятней, сейчас конфиг дам
Anonymous
Вот конфиг бекенда:
Anonymous
version: "2" networks: frontend: external: true services: proxy-handler: container_name: handler networks: - frontend image: jaels/proxy-handler ports: - "41320:80"
Anonymous
у фронта та-же сеть. в композе. Как мне из фронта обратится к беку? по имени контейнера+порту ,верно? Т.е. handler:80
Alex
т.е ты хочешь сделать высокую связность двух разных приложений?
Alex
я вот вообще кстати не уверен что композ им одну и туже сетку выдал, даже если имя одинаковое. Но я докеромакака.
Anonymous
т.е ты хочешь сделать высокую связность двух разных приложений?
Что имеется в виду под "высокой связностью"?
Alex
это значит что у тебя два разных приложения зачем то друг на дружку жестко завязаны.
Anonymous
я вот вообще кстати не уверен что композ им одну и туже сетку выдал, даже если имя одинаковое. Но я докеромакака.
точно одну. Они пигнуют друг-друга успешно. compose в данном случае не занимается сетью, он видит что она external и скипает часть конфигурации сети
Alex
значит композ какие то правила прописывает в iptables чтобы они не могли общаться.
Alex
ибо контейнеры должны быть изолированы.