Size: a a a

Aerokube Support

2021 January 20

BP

Bezpalko Pavel in Aerokube Support
Александр Андряшин
ессли объясните в чем проблема, мы сможем помочь найти решение...
Еду уже домой, не очень удобно писать. Чуть попозже опишу, какая проблема была
источник

АА

Александр Андряшин... in Aerokube Support
Bezpalko Pavel
Еду уже домой, не очень удобно писать. Чуть попозже опишу, какая проблема была
конечно...
источник

MM

Mariia Martyniak in Aerokube Support
/tmp
источник
2021 January 21

Р

Ренат in Aerokube Support
Всем привет.

Вводные: контейнер chrome:87, тестовое приложение на одной вкладке на react.
Browsers.json:
"87.0": {
 "image": "<repo-url>/selenoid/browsers/vnc_chrome:87.0",
 "port": "4444",
 "path": "/",
 "tmpfs": {"/tmp": "size=512m", "/var": "size=128m"},
 "shmSize" : 268435456,
 "cpu" : "2.5",
 "mem" : "1.5g"
}
Подскажите, пожалуйста, в связи с чем может быть высокая утилизация CPU в контейнере с Chrome:87?

Такая высока утилизация CPU не всегда, но достаточно часто.

Есть ли смысл далее увеличивать смягчить лимит по CPU с 2.5?
источник

Р

Ренат in Aerokube Support
Возможно у меня неоптимальный конфиг в browsers.json. Подскажите, коллеги, у кого какие есть трюки в этом плане :)
источник

АА

Александр Андряшин... in Aerokube Support
Ренат
Возможно у меня неоптимальный конфиг в browsers.json. Подскажите, коллеги, у кого какие есть трюки в этом плане :)
Это зависит только от того, что в браузере открывается, это и утилизирует ресурсы...
источник

Р

Ренат in Aerokube Support
Т.е. с точки зрения составленного конфига browsers.json все +- легитимно?
источник

АА

Александр Андряшин... in Aerokube Support
Ренат
Т.е. с точки зрения составленного конфига browsers.json все +- легитимно?
Вообще в browsers.json ограничения по памяти и цпу задать нельзя, их можно только глобально опциями командной строки... Но и в этом особого смысла нет лучше просто лимитом управлять... Ограничения по цпу будут срабатывать даже при доступных ресурсах, а этого не всегда хочется...
источник

Р

Ренат in Aerokube Support
Т.е. правильно ли понимаю, что можно выставить лимит чуть побольше, чем в среднем потребляется в контейнере и посмотреть как будет вести себя система в целом?
источник

N

Nikolai in Aerokube Support
Доброе утро
подскажите пожалуйста с поддержкой GPU в образах android-a

перечитал ишую на гитхабе и тут в чате, но решения не нашёл

в целом ситуация следующая, на хосте ставил видео драйвер nvidia и cuda
в ваш образ selenoid/android:8.1 добавлял nvidia/cuda:11.2.0-base-ubuntu18.04
чтобы работала видеокарты внутри контейнера (без модификаций докерфайла, тоже прбовал)

в entrypoint.sh в ANDROID_AVD_HOME менял параметр -gpu на on/auto/host
и через automate_android.sh создавал образ
в browsers.json
           "8.1": {
               "image": "selenoid/android:8.1-custom",
               "port": "4444",
               "path": "/wd/hub",
               "privileged": true,
               "runtime": "nvidia"

при этом когда тестируешь андроид, нагрузка значительно растёт на CPU, а GPU не растёт
CPU i5-8400 GPU nvidia 1060 6 Gb RAM:16 Gb

может были уже подобные кейсы и можете подсказать как лучше это реализовать
или стоит пробовать другой эмулятор (вместо appium) и на его основе делать свой образ?
источник

IK

Ivan Krutov in Aerokube Support
Ренат
Т.е. правильно ли понимаю, что можно выставить лимит чуть побольше, чем в среднем потребляется в контейнере и посмотреть как будет вести себя система в целом?
да
источник

Р

Ренат in Aerokube Support
Спасибо!
источник

BP

Bezpalko Pavel in Aerokube Support
Александр Андряшин
ессли объясните в чем проблема, мы сможем помочь найти решение...
Привет. Наконец-то добрался до описания проблемы.
Чтобы было понятно, расскажу в чём состояла задача
Нужно было протестировать клиента написанного на electron на 4 платформах
Windows 64/32 bit
Red Hat
Debian/Ubuntu
Обновление клиента на машинах делает ansible после сборки
На все машины скопировал бинарник selenoid и написал конфиг с драйвером браузера нужной версии
Всё работало хорошо, тесты гонялись, но вчера обнаружил, что тесты стали падать или вовсе не могли запуститься. Оказалось машины стали работать очень медленно и закончилась ОП. Машинки не очень шустрые, 4 ГБ ОП и по 2 ядра
Поэтому решил пойти путём перезагрузки раз в неделю и отсюда возникли все эти проблемы и вопросы
Понимаю, что это не самое правильное решение и есть решение лучше, но заняться переделкой архитектуры для тестирования клиента займусь чуть позже.
Если направите на правильный путь буду очень благодарен)
источник

АА

Александр Андряшин... in Aerokube Support
если память кончается это значит в приложении есть утечка, об этом надо сообщать и разработчики должны поправить, не надо утечки рестартами чинить...
источник

BP

Bezpalko Pavel in Aerokube Support
Александр Андряшин
если память кончается это значит в приложении есть утечка, об этом надо сообщать и разработчики должны поправить, не надо утечки рестартами чинить...
Спасибо
источник

ИН

Ильшат Низамов... in Aerokube Support
Привет всем!
Возникла необходимость подключить аппиум-сервер к селеноиду. Сначала по гайду на гитхабе (https://github.com/appium/appium-docker-android) собрал себе докер-образ для аппиума. Пробовал через --privileged, потом подключил 2 телефона и поднимал контейнер для каждого отдельно, прокидывая usb-порт куда телефон подключен (к примеру: docker run -d -p 4723:4723 --device /dev/bus/usb/001/004:/dev/bus/usb/001/004 -v ~/.android:/root/.android --name device1 appium/appium). Локально все работало, поднято одновременно 2 контейнера, в каждом демон adv видит только ту мобилу, который к этому порту подключена.
Потом попробовал сделать подобное на селеноиде, получил 2 ситуации:
1. В описании browsers.json описал аппиум, в volumes добавил конкретный порт(по типу "/dev/bus/usb/001/005:/dev/bus/usb/001/005") и так сделал 2 версии для 2ух мобил. В итоге когда запускаются тесты, какой контейнер успеет раньше запустить демона adb - тот будет видеть оба телефона.
2. Если для селеноида использовать аргумент "-disable-privileged" - тогда оба контейнера при старте не будут видеть вообще ни одного телефона.
Можете подсказать, пожалуйста, в 1ом случае прокидываются все порты потому, что все контейнеры стартуют с "--privileged" по дефолту? И почему тогда во 2ом при явном указывании волюма мобилу контейнер не видит?
источник

DI

Dmitriy Inshakov in Aerokube Support
Ильшат Низамов
Привет всем!
Возникла необходимость подключить аппиум-сервер к селеноиду. Сначала по гайду на гитхабе (https://github.com/appium/appium-docker-android) собрал себе докер-образ для аппиума. Пробовал через --privileged, потом подключил 2 телефона и поднимал контейнер для каждого отдельно, прокидывая usb-порт куда телефон подключен (к примеру: docker run -d -p 4723:4723 --device /dev/bus/usb/001/004:/dev/bus/usb/001/004 -v ~/.android:/root/.android --name device1 appium/appium). Локально все работало, поднято одновременно 2 контейнера, в каждом демон adv видит только ту мобилу, который к этому порту подключена.
Потом попробовал сделать подобное на селеноиде, получил 2 ситуации:
1. В описании browsers.json описал аппиум, в volumes добавил конкретный порт(по типу "/dev/bus/usb/001/005:/dev/bus/usb/001/005") и так сделал 2 версии для 2ух мобил. В итоге когда запускаются тесты, какой контейнер успеет раньше запустить демона adb - тот будет видеть оба телефона.
2. Если для селеноида использовать аргумент "-disable-privileged" - тогда оба контейнера при старте не будут видеть вообще ни одного телефона.
Можете подсказать, пожалуйста, в 1ом случае прокидываются все порты потому, что все контейнеры стартуют с "--privileged" по дефолту? И почему тогда во 2ом при явном указывании волюма мобилу контейнер не видит?
я в свое время убил пару дней, разбираясь, в чем дело. Все дело в adb, которая есть внутри контейнера и есть снаружи
источник

DI

Dmitriy Inshakov in Aerokube Support
если работает снаружи- внутри ничего не увидишь, если не работает, то нет доступа до девайсов изнутри
источник

DI

Dmitriy Inshakov in Aerokube Support
в итоге получается, чтобы реальные девайсы работали, надо селеноид только с privileged запускать
источник

ИН

Ильшат Низамов... in Aerokube Support
Хостовой adb я убиваю нон-стоп. И перед тестом на всякий тоже, у меня локальная машина не видит ничего, и во 2ом случае оба контейнера тоже
источник