• Как исправить ошибки Postgres deadlock в Minitest?

    gohdan
    @gohdan
    Системный администратор
    Дедлоки возникают, когда одна транзакция что-то блокирует (например, строки для апдейта) а другая транзакция слишком долго ждёт освобождения блокированного ресурса. Такое бывает, когда базе не хватает ресурсов, либо sql запросы сделаны не оптимально, работают слишком долго и блокируют слишком много. Решить можно следующим образом:

    1) на уровне инфраструктуры - добавить ресурсов базе (CPU и RAM серверу, диск поменять на более быстрый, в конфигах постгреса добавить памяти в разных местах и сделать пореже запись на диск);
    2) на уровне приложения - оптимизировать sql запросы, чтобы они создавали меньше блокировок, либо больше, но попроще, чтобы они быстрее проходили;
    3) на уровне архитектуры - запускать тесты не в параллель, а последовательно, чтобы они друг друга не блокировали.
    Ответ написан
    Комментировать
  • Какой движок выбрать для онлайн курсов?

    gohdan
    @gohdan
    Системный администратор
    Уже есть такие сервисы по онлайн курсам, вот например skillcup.ru. Курсы размещаете там, под продажи курсов делаете лендинги, человек покупает у вас курс - даёте ему доступ к платформе.
    Ответ написан
    Комментировать
  • Какая утилита подобна wget, но умеет делать upload дерева файлов по https?

    gohdan
    @gohdan
    Системный администратор
    lftp (lftp.yar.ru) в режиме reverse mirror (mirror -R /local/dir dir), она умеет https в том числе.

    Только обязательно хорошо оттестируйте перед применением, если ошибиться в путях/флагах - легко рекурсивно поудалять то, что удалять не нужно. Например, непонятно, нужно ли вам удалять с сервера файлы, которых нет локально, а для этого есть отдельный флаг (по умолчанию, кажется, удаляет). Ну и лучше проверять наличие каталога на удалённом сервере и возможность в него зайти, а то отзеркалирует в корень (с потерей файлов, которые там могли уже быть).
    Ответ написан
    Комментировать
  • В чем проблема Certificate has expired в REST API?

    gohdan
    @gohdan
    Системный администратор
    Очевидно приложение идёт само на себя не через сервер с nginx, а напрямую, так что вы ошибаетесь, когда пишете, что сертификаты на проде и тесте не нужны - получается, нужны и нужно их обновлять.
    Ответ написан
    Комментировать
  • Не могу отловить процесс нагружающий Linux процессор?

    gohdan
    @gohdan
    Системный администратор
    В нагрузке на процессор учитывается нагрузка на диск, при этом в top на процессах вы этой нагрузки не увидите, нужно смотреть параметр wa (это iowait). Также есть утилита iotop. В заббиксе на графике CPU Utilization нагрузка от приложений выделяется синим, нагрузка на диск - жёлтым. Так что если видите жёлтый пик - это диск. В целом такие скачки не являются чем-то из ряда вон выходящим, ОС может свопить, например. Или скрипты сбрасывают результаты работы на диск блоками, при этом диск нагружается. Ещё, если это виртуалка (а это с большой вероятностью виртуалка), на гипервизоре может тормозить диск, тогда и у вас будет тормозить диск, но причину этих тормозов из виртуалки вы не увидите.
    Ответ написан
    Комментировать
  • Как вытягивать сайты?

    gohdan
    @gohdan
    Системный администратор
    Современные сайты сейчас в основном - не просто html-странички, а приложения на javascript. Всё делается через него - подгрузка ресурсов, отображение контента и т. д. А качалки типа wget его обрабатывать не умеют, поэтому ничего и не скачивается, кроме практически пустого index.html с сообщением "включите javascript".

    Чтобы нормально что-то скачать с современных сайтов, нужно автоматизировать работу через браузер. Например, chrome может работать в headless режиме и по запросу сохранять отображение страниц, уже прогнав на них javascript. Кажется, даже были какие-то обёртки, которые эти возможности используют.
    Ответ написан
    Комментировать
  • Обновление php 7.2 до 7.4 remi Centos 8?

    gohdan
    @gohdan
    Системный администратор
    У вас CentOS 8.5, а в требованиях remi release стоит 8.6, о чём он вам и сообщает. Надо сначала обновить всю ОС до более свежей версии.
    Ответ написан
  • Linux fedora для ноутбука?

    gohdan
    @gohdan
    Системный администратор
    На федоре сижу с первых выпусков, последние годы - на ноутбуках, сейчас уже третий сменил (lenovo, acer). Ставится нормально, работает нормально. Те, кто пишут, что она не стабильная, не разбираются. С драйверами действительно может не повезти и что-то работать не будет - но это касается любого линукса, правда, в последнее время с этим тоже проблем не встречал.
    Ответ написан
    Комментировать
  • Как перенести контейнер Docker на другую машину?

    gohdan
    @gohdan
    Системный администратор
    Если нужно перенести прямо контейнер как есть, то есть команда docker save, она позволяет сохранить текущую файловую систему хранилища в tar-архив. Потом на другой машине можно сделать docker load этого архива, он подгрузится как docker image. На базе этого docker image можно запустить другой контейнер. Параметры запуска можно взять из docker inspect старого контейнера.

    Но, как уже написали выше, это плохое решение для плохой ситуации. Не надо держать в контейнерах базы данных и конфиги, они должны лежать отдельно на файловой системе хоста, тогда можно просто остановить контейнер, всё это скопировать на другую машину и там запустить контейнер аналогично старому.
    Ответ написан
    Комментировать
  • Как правильно составить небольшой bash скрипт по созданию пользователей?

    gohdan
    @gohdan
    Системный администратор
    Лучше не используйте useradd, она выдаёт слишком расширенные права на home директорию (доступ не только пользователю, а всей его группе). Используйте adduser.
    Ответ написан
    Комментировать
  • Почему полностью зависает компьютер?

    gohdan
    @gohdan
    Системный администратор
    Обычно такие внезапные мёртвые зависания происходят при проблемах с жёстким диском. Система не может что-то записать или прочитать, и всё уходит в таймаут. Таймауты наслаиваются друг на друга, получаем мёртвое зависание.

    В других ответах писали про другие проблемы - на них не похоже, так как при проблемах с ОЗУ компьютер обычно внезапно перезагружается или программы падают по отдельности, при проблемах с перегревами компьютер выключается и включается только через некоторое время, при проблемах с драйверами обычно получаешь синий экран и перезагрузку.
    Ответ написан
    Комментировать
  • Как грамотно изолировать сервисы на linux-сервере?

    gohdan
    @gohdan
    Системный администратор
    "Каждый проект / сайт в отдельный контейнер" - в корне неверный подход. Контейнеризация - способ изоляции процессов, а не проектов. Т. е. на проекте у вас будет несколько контейнеров (один для ноды, один для реббита, один для постгреса и т. д.), и в основной системе вы будете видеть сразу всю эту кучу контейнеров со всех проектов. Поэтому, если Вы хотите изолировать друг от друга проекты, Ваш выбор - не контейнеры, а виртуалки на KVM (и вот там уже внутри виртуалок можно будет проект разбивать на контейнеры попроцессно). Так у вас будет нормальная изоляция проектов друг от друга, и проблемы в одном проекте будут по минимуму затрагивать другие.
    Ответ написан
    Комментировать
  • Что такое ohio8.vchecks?

    gohdan
    @gohdan
    Системный администратор
    Это сервис защиты от DDoS, его использует, например, variti.com.
    Ответ написан
    Комментировать
  • NGINX. Как правильно настроить rewrite?

    gohdan
    @gohdan
    Системный администратор
    как-то так:
    location /wwd/ {
    rewrite ^ https://site.com/www/index.jsp permanent;
    }
    Ответ написан
    Комментировать
  • Как рассчитывать мощности серверов?

    gohdan
    @gohdan
    Системный администратор
    Потребности у всех разные и практика использования разная.
    Виртуалку берёте минимальную, потом смотрите по мониторингу, чего не хватает, добавляете.
    Железный сервер берёте максимальный, насколько позволит бюджет. Даже если мощности будут лишними - всегда найдётся, чем загрузить. Чтобы оценить потребности, можно перед покупкой погонять задачу на виртуалке.
    Ответ написан
    Комментировать
  • Где в файле HTML код трояна?

    gohdan
    @gohdan
    Системный администратор
    Бегло посмотрел файлы - ничего явно троянского нет. Касперский и ESET никаких троянов уже тоже не находят - https://www.virustotal.com/#/file/0cd07ede7698b84f... , https://www.virustotal.com/#/file/4c390f961903e809... . Находит только ZoneAlarm, но он находит это один и не сказать чтобы у них был какой-нибудь особенно хороший антивирус. Скорее всего, это ложноположительное срабатывание.

    Я думаю, атаку с подменой данных в платёжном поручении провёл сам бухгалтер, а теперь просто валит всё на вирусы.
    Ответ написан
    Комментировать
  • Как запустить скрипт с docker-контейнера?

    gohdan
    @gohdan
    Системный администратор
    Зайдите из контейнера на хост по SSH и дайте эту команду.
    Ответ написан
    Комментировать
  • Как добавить условие в apache и nginx?

    gohdan
    @gohdan
    Системный администратор
    По апачу я бы сделал не в настройках хоста, а реврайтом в .htaccess.
    Для nginx - через location:
    location /catalog/ {
    root /home/user/web/site.ru/public_html/my/xxx
    ....
    }
    Ответ написан
    Комментировать
  • Кеширование nginx для часто обновляемого сайта?

    gohdan
    @gohdan
    Системный администратор
    Там, насколько я помню, кешируется не отдача HTML, а статика (js, css, картинки). Так что смело можно ставить хоть неделю. Но лучше мне не верить, а уточнить, как именно конфиг меняется после этой галочки.
    Ответ написан
    Комментировать
  • Гугл блокирует сайт за вирусы размером в 0 байт - как победить?

    gohdan
    @gohdan
    Системный администратор
    Насколько я понимаю, "гугл" - это конкретно Adwords. Я много занимаюсь вирусами, и Adwords в этом плане совершенно неадекватный сервис. Вы - не единственный, кому он шлёт такие ложноположительные срабатывания. У меня ещё ни разу не получалось убедить их в неправильном подходе, остаётся только переписываться и надеяться на удачу, что когда-нибудь их алгоритм перестанет срабатывать. Можно в каком-то смысле обойти проблему, если купить ещё один домен, сделать его на хостинге алиасом к существующему и продвигать в Adwords как раз его.
    Ответ написан
    2 комментария