Sun
В общем, профилируй это дело. Смотри на загрузки. Прямо разворачивай тмух на весь экран в три окна: htop, iftop, iostat
Sun
а потом уже смотри более детально по подозрительным процессам.
Sun
У меня был подобный косяк с рельсами — там я сам объебался: включил дебаг-лог в файл на подключаемом волуме, который на USB-винте лежал. Вот это были просто *эпические* тормоза.
🏴‍☠️ Alexey
В общем, профилируй это дело. Смотри на загрузки. Прямо разворачивай тмух на весь экран в три окна: htop, iftop, iostat
ох, у меня уже появилось желание вернуться к стандартному конфигу без докера 🙂 слишком много приходится трахаться 🙂 я могу для сравнения запилить что-то на go или elixir и проверить, но блин - врядли меня это спасёт 🙂
Sun
Не, докер ок, не в нём дело 100%. Проблема либо в приложении, либо в настройках руби
Sun
Добавь иостат в конт с руби и подключись к нему на старте
Sun
и посмотри что происходит
Anonymous
Не, докер ок, не в нём дело 100%. Проблема либо в приложении, либо в настройках руби
вы попробуйте бахнуть в пару десятков мегабайт поток логов внутри контейнера на stdout/stderr, вы много что узнаете ))
Sun
вы попробуйте бахнуть в пару десятков мегабайт поток логов внутри контейнера на stdout/stderr, вы много что узнаете ))
Если у тебя столько логов с одного контейнера, то твоя консерватория с ума сошла. Это слишком много запросов для одного инстанса — расширять надо
Sun
Ну или совершенно сумасшедший аутпут по логам — по 10 строк на одно событие
Anonymous
тут все очень просто, убрать докер из этой связки). Ну или писать логи другими методами.
Sun
зачем например расширять, когда вертикально все справляется?
реданданси хотя бы. У нас тут у клиента очень высоконагруженный проект и там щаз 60+ контейнеров обслуживают примерно 45к запросов в минуту.
Sun
можно было бы сделать, конечно, 4 инстанса самых толстых и ими всё обрабатывать, но негибко получается. Не отскалировать по требуемым ресурсам
Anonymous
понятие количества запроса не показатель, от слова Совсем. В запросе может быть как обычное echo, так и куча транзакций)
🏴‍☠️ Alexey
мужики - приложение самое простое, это только созданный скелет
🏴‍☠️ Alexey
через rails new
Sun
мужики - приложение самое простое, это только созданный скелет
Если там нет секретов — дай гит, мы у себя запустим и проверим.
🏴‍☠️ Alexey
Чуть позже, ок? Надо отъехать по делам, я ближе к вечеру или утром выложу в паблик
🏴‍☠️ Alexey
пока что можно взять докерфайл и докеркомпоз
🏴‍☠️ Alexey
и воткнуть обычный скелет
Рашид
/
Anonymous
ребята)) помогите, я не ка кне могу вьехать , я написал вот такой docker-compose.yml
Anonymous
version: '3.3' services: db: image: mysql ports: - 3306:3306 volumes: - ./db:/var/lib/mysql restart: always environment: MYSQL_DATABASE: db_ferst MYSQL_USER: root MYSQL_PASSWORD: root MYSQL_ROOT_PASSWORD: root adminer: image: adminer restart: always ports: - 8080:8080
Anonymous
язахожу через firefox 127.0.0.1:8080
Anonymous
появляется админка
Anonymous
Anonymous
ну и вобщем то все
Anonymous
и вобщем то вопролс
Anonymous
как мне подключится к бд из хост машины ( Debian9 )
Anonymous
и что я делаю нетак
Anonymous
цель просто научится пользоватся докером, ну и для начала подключится к бд и поработать с ней
a1eXei
попробуй —link
Anonymous
щас попробую
Anonymous
попробуй —link
а где сервер там надо писать 127.0.0.1 или localhost они просто разные ошибки выдают
Anonymous
дополнил предыдущий файл вот так:
Anonymous
adminer: image: adminer restart: always ports: - 8080:8080 links: - db
Anonymous
если localhost то ошибка : SQLSTATE[HY000] [2002] No such file or directory
Anonymous
если 127.0.0.1 то ошибка : SQLSTATE[HY000] [2002] Connection refused
Aleksandr
И в логи поглядывая. Может у тебя не завелась что
🦠
links уже устарело
Anonymous
а как линковать хост дб а то чет я не понял , и логи имеется ввиду логи docker смотреть
Anonymous
?
Aleksandr
links уже устарело
Дока об этом не знает
🦠
docker-compose logs db не?
Anonymous
я только эту команду знаю sudo docker logs
Anonymous
но я так понял разницы нет
Anonymous
да e vtyz ьныйд не собирается
Anonymous
mysql*
Anonymous
db_1 | Initializing database db_1 | 2017-10-02T18:33:35.168152Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use —explicit_defaults_for_timestamp server option (see documentation for more details). db_1 | mysqld: Can't create/write to file '/tmp/ibMqh8im' (Errcode: 13 - Permission denied) db_1 | 2017-10-02T18:33:35.171243Z 0 [ERROR] InnoDB: Unable to create temporary file; errno: 13 db_1 | 2017-10-02T18:33:35.171249Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error db_1 | 2017-10-02T18:33:35.171253Z 0 [ERROR] Plugin 'InnoDB' init function returned error. db_1 | 2017-10-02T18:33:35.171255Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. db_1 | 2017-10-02T18:33:35.171257Z 0 [ERROR] Failed to initialize plugins. db_1 | 2017-10-02T18:33:35.171258Z 0 [ERROR] Aborting
🦠
ну типа директория защищена от записи
🦠
ты походу с правами намудрил
🦠
вон иннодибишка бедная пытается в темп свопнуться
Anonymous
я тоже про это подумал: но я запускаю вроде все через sudo docer-copose up -d
Anonymous
наверно надо настроить как то сам docer-campose
🦠
а чо за судо
Anonymous
ну sudo docer-compose up -d
Roman
Убери volumes если хочешь потестить и в админке там где server пропиши db
Roman
Так docker-compose создает сеть и внтури сети контейнеры резолвятся по имени контейнера
Roman
Соответсвенно с adminera будет хост db доступен по имени db можешь проверить пингом ping db
Roman
попробуй —link
Это устарело так как внутри сети контейнеры резолвятся по хостнейу на через /etc/hosts как было при линковании
Anonymous
но я так понимаю что если я хочу чтобы данные которыя я запишу в бд сохранились то надо volumes,
Roman
Линк прописывал в /etc/host ip контейнров и передавал переменные окружения. Сейчас в одной сети имя отдается внутренним днсом
Roman
и при запуске с одноко композа можно обращаться напрямую по имени контейнра. Или да, по дефолту
Aleksandr
version: '3.3' services: db: image: mysql ports: - 3306:3306 restart: always environment: MYSQL_DATABASE: db_ferst MYSQL_USER: root MYSQL_PASSWORD: root MYSQL_ROOT_PASSWORD: root adminer: image: adminer restart: always ports: - 8080:8080
Aleksandr
работает без проблем, через db
Anonymous
сейчас пишу запускаю у себя ...
Anonymous
db_1 | Initializing database db_1 | 2017-10-02T19:28:30.003599Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use —explicit_defaults_for_timestamp server option (see documentation for more details). db_1 | mysqld: Can't create/write to file '/tmp/ibyMXkeM' (Errcode: 13 - Permission denied) db_1 | 2017-10-02T19:28:30.006932Z 0 [ERROR] InnoDB: Unable to create temporary file; errno: 13 db_1 | 2017-10-02T19:28:30.006944Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error db_1 | 2017-10-02T19:28:30.006949Z 0 [ERROR] Plugin 'InnoDB' init function returned error. db_1 | 2017-10-02T19:28:30.006955Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. db_1 | 2017-10-02T19:28:30.006958Z 0 [ERROR] Failed to initialize plugins. db_1 | 2017-10-02T19:28:30.006960Z 0 [ERROR] Aborting db_1 |
Anonymous
logi adminer вроде нормальный: adminer_1 | PHP 7.0.24 Development Server started at Mon Oct 2 19:28:26 2017
Anonymous
sudo docker-compose ps выводит
Anonymous
dockermysql_adminer_1 entrypoint.sh docker-php-e ... Up 0.0.0.0:8080->8080/tcp dockermysql_db_1 docker-entrypoint.sh mysqld Restarting
Anonymous
блин, я все, на сегодня здаюсь...(
Dmitry
блин, я все, на сегодня здаюсь...(
Попробуйте почистить все контейнеры и запустить docker-compose up без sudo
Dmitry
mysql должна быть доступна по имени хоста, в данном случае db_1
Anonymous
Попробуйте почистить все контейнеры и запустить docker-compose up без sudo
А почистить это имеется ввиду остоновить и удалить sudo docker-compose stop и sudo docker-compose rm
Roman
sudo docker-compose down