• SATAIII 600MB - это на все диски или на каждый?

    @edo1h
    Если материнка имеет 4 порта SATAIII 6Gbps - это на каждый порт или на все диски делится?
    На каждый

    Спрашиваю потому как подключил 4 диска к ПК и при копировании с диска на диск получаю 100-120МБ\с
    А что за диски? Может быть для них это нормальная скорость.

    При копировании между двумя sata ssd скорости выше 400 мегабайт в секунду вполне достижимы.
    Ответ написан
    Комментировать
  • Как уменьшить нагрузку на Mysql запрос на очень нагруженной базе?

    @edo1h
    Без каких-то серьёзных ахитектурных изменений вас спасёт только партицирование на несколько серверов, чтобы на каждом была только часть таблицы.
    Ответ написан
    Комментировать
  • Какое железо лучше для нагруженного веб-сервера?

    @edo1h
    На LA вообще смотреть не стоит.
    Если время генерации страничек устраивает, то всё нормально (но учитывайте, что у вас нет запаса мощности на случай наплыва пользовтелей, неудачных обновлений прграммистами и т. п.).
    Если не устраивает — увеличивайте число ядер. Можно увеличить число ядер (не важно, intel или amd), но лучше смотреть в сторону горизонтального масштабирования (увеличения числа серверов). Так проще обеспечивать отказоустойчивость, дальнейший прирост производительности.
    Ответ написан
    Комментировать
  • Keenetic Mash как настроить переключение между устройствами по порогу сигнала?

    @edo1h
    насколько я понимаю, окончательное решение о переключении за клиентом. точка может «намекнуть» клиенту, может даже сбросить его, но даже после этого клиент может упорно пытаться переподключиться к той же точке.

    можете прочитать серию статей тут:
    https://wi-cat.ru/category/wi-fi-roaming/
    Ответ написан
    Комментировать
  • Как сделать дамп базы mariadb имея только доступ к файлам?

    @edo1h
    а зачем вам дамп? копируете каталог БД на новый сервер, запускаете там mariadb и всё должно заработать.
    Ответ написан
    Комментировать
  • Как правильно считать место в ZFS?

    @edo1h
    zpool показывает свободное место без вычета контрольных блоков (их же пока там нет).
    zfs же показывает (примерно) то, что вам нужно.

    если бы не было никаких накладных расходов, то вы бы увидели 3.6T:
    ((500 ⋅ (10^9)) ⋅ (10 − 2)) / (1024^4) ≈ 3.637978807091713
    Ответ написан
    Комментировать
  • Как посмотреть скрипт бд Postgresql?

    @edo1h
    pg_dump -s database
    Ответ написан
    Комментировать
  • Какова степень надежности RAID0 при условии хорошего железа?

    @edo1h
    Рационально ли мое решение?

    Для MVP подойдёт, конечно.

    Только вместо raid0 я бы порекомендовал иметь по отдельной файловой системе на каждый диск, а потом при необходимости можно «слепить» их с помощью mergerfs. В этом случае смерть одного диска приведёт к потере только хранившихся на нём файлов.
    А ещё raid0 с малым размером блока не особо хорош в многопоточной нагрузке.
    Ответ написан
    Комментировать
  • Как написать драйвер на C для UART для Raspberry Pi для общения с устройствами по RS485?

    @edo1h
    драйвер вам не надо писать, поддержку MARK/SPACE я добавил в драйвер много лет назад (хотя и без неё можно было обойтись, переключая нужным образом ODD/EVEN, но …)

    в новых малинках по умолчанию наружу смотрит mini UART, который не умеет 9 бит, а полноценный UART (ttyAMA0) занят блютусом, это настраивается, больше деталей тут:
    https://www.raspberrypi.org/documentation/configur...

    после этого ничего raspberry-специфичного в этой задаче нет, мы имеем обычный полноценный UART, который умеет 9 бит.

    остаётся написать/взять готовую реализацию RS-485. уверен, что гугл по запросу «CMSPAR RS-485» выдаст кучу примеров/реализаций на разных языках.
    Ответ написан
    1 комментарий
  • Почему доступ к MySQL такой медленный?

    @edo1h
    Вопрос: из-за чего такая фантастически низкая скорость и как это изменить?

    а вы уверены, что она фантастически низкая? 1000 пишущих транзакций в секунду — отличная производительность.

    mysql (как и большинство БД) по умолчанию считает транзакцию завершённой после успешного fsync.
    https://www.percona.com/blog/2018/02/08/fsync-perf...
    https://docs.google.com/spreadsheets/d/1E9-eXjzsKb... (колонка journal iops)

    так что да, писать в базу не по одной строчке, а пачками (уменьшать число транзакций). или отключать fsync, если данные не особо важны.
    Ответ написан
  • Данные в дб запрашиваются до их появления, как заставить ждать?

    @edo1h
    Или приспосабливать LISTEN/NOTIFY, или использовать внешний по отношению к базе механизм очередей.

    BTW, в статье обсуждали LISTEN/NOTIFY, но в комментариях не особо тепло отнеслись к этому подходу.

    Моё мнение: если речь именно о «подождать прихода данных в базе», то LISTEN/NOTIFY отлично подходит (и сам не раз использовал), если же нужны многие нагруженные очереди — лучше взять готовые реализации.
    Ответ написан
    Комментировать
  • Конкретная разница между multi_accept on и off?

    @edo1h
    Здесь указывается

    ну там же ответили: один воркер может проснуться и «схапать» все ожидающие входящие соединения, в результате будет дисбаланс ну и вообще не очень хорошо.

    Как стоит поступить на многоядерной системе Debian 11 x64?

    правила простые: если что-то не понимаете — не меняете, дефолт нжинкса достаточно хорош для большинства применений.

    Говоря простым языком, на сайте может быть онлайн более одного человека при multi_accept off?

    ИМХО проще взять и проверить, чем тут спрашивать.

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

    @edo1h
    в таймзоне смещение указывается с другим знаком
    https://unix.stackexchange.com/questions/104088/wh...
    Ответ написан
    Комментировать
  • Большое потребление SWAP в работе KVM?

    @edo1h
    «Потребление swap» нужно в первую очередь смотреть не в гигабайтах, а в операциях в секунду, если у вас нет никакого мониторинга, то можно с помощью iostat -mxzp 10
    Если у вас много IOPS на разделе со свопом — тогда и нужно что-то предпринимать, если же нет — радуйтесь, у вас там осели неиспользуемые данные, можно сказать бесплатно память добавилась (хотя для заметного эффекта размер свопа должен быть одного порядка с размером памяти, конечно).

    «Много IOPS» — это сколько? Можно считать в процентах от производительности диска, условно HDD умеет 100 IOPS, так что менее 10 обращений к свопу в секунду (менее 10% от потенциала диска) не окажут существенного влияния на производительность системы. Для SSD цифры будут куда выше, там и тысячи IOPS на своп могут быть нормальными (но для десктопных SSD надо помнить про ресурс дисков/забивание SLC кэша).

    что будет при увеличении кол-ва машин (боюсь увидеть 100%)?

    Само по себе это не не страшно. Но вот если приложениям (виртуальным машинам в вашем случае) не хватит общей памяти (физическая+своп), то у ядра не остаётся выбора кроме OOM killer.

    Повторюсь, особого смысла в свопе, размером на порядок меньшим, чем объём физической памяти, я не вижу.
    Обычно я настраиваю размером или с RAM (там, где он нужен, как в вашем случае), или вообще без swap (если на хосте, скажем, только postgresql или elsaticsearch).

    Резюмируя:
    - если у вас всё нормально с производительностью, IOPS, связанных со свопом мало — то ничего не делать, разве что рассмотреть возможность увеличения раздела со свопом «на вырост»;
    - если дисковая система тормозит, то увеличивать объём оперативной памяти (или умерять аппетиты приложений).
    Ответ написан
    Комментировать
  • Влияет ли кол-во файлов в директории на скорость записи (создания новых файлов) в ext4?

    @edo1h
    а взять и проверить сложно?
    root@testserver:/test# test() { for A in `seq 1 10000`;  do touch $RANDOM.$RANDOM.$A; done }
    root@testserver:/test# time test
    
    real    0m5.772s
    user    0m4.419s
    sys     0m1.684s
    root@testserver:/test# for A in `seq 1 100`; do test ; done
    root@testserver:/test# time test
    
    real    0m5.898s
    user    0m4.495s
    sys     0m1.817s


    после записи в каталог миллиона файлов скорость создания новых файлов осталась той же
    Ответ написан
  • Как удаленно подключиться к Rasberry Pi 4?

    @edo1h
    в последних сборках

    в последних сборках чего? raspbian или ubuntu?

    raspy-config

    во-первых, raspi-config
    во-вторых, это утилитка из raspbian, в unbuntu её, подозреваю, нет

    ваш вопрос не имеет никакого отношения к raspberry. у вас стоит обычный linux (ubuntu) и вы хотите подключаться к нему — вот и гуглите в на эту тему.

    что бы использовал я:
    1. для повседневного доступа — ssh, конечно. если потребуется запускать графические приложения на raspberry (зачем?) — есть ssh -X;
    2. для доступа к рабочему столу если не нужно, чтобы отображалось на дисплее, подключенном к raspberry, то xserver-xspice. ну или vncserver, если хочется именно vnc.
    3. если нужно смотреть именно то, что сейчас показывается на мониторе raspberry, то x11spice или x11vnc соответственно.
    Ответ написан
    1 комментарий
  • Как с помощью ps найти основной дочерний процесс?

    @edo1h
    плюс принцип "Не делай то, что не нужно делать"

    ну так и надо использовать уже имеющуюся инфраструктуру, а не устраивать «закат солнца вручную»

    вариант 1:
    первая ссылка в гугле по «python pid file»:
    https://pypi.org/project/python-pidfile/

    вариант 2:
    Да и условия эксплуатации скрипта - только cron.

    независимо от нашего отношения в systemd, нам с ним жить. и этот функционал там из коробки:
    https://unix.stackexchange.com/questions/203254/do...
    так что если скрипт linux-only, я бы просто сделал запуск не из крона, а таймерами systemd, и пусть уже сам systemd следит завершился предыдущий экземпляр или нет.
    Ответ написан
    Комментировать
  • Как выбрать записи с максимальным значением поля для параметра с группировкой?

    @edo1h
    select id from orders o where
        ( select status from order_statuses os 
              where os.order_id = o.id order by time desc limit 1
        )='NEW'

    если в orders записей намного меньше, чем в order_statuses, и производительность важна, то этот вариант будет быстрее того, который предложил Константин Цветков.

    по order_statuses нужен индекс по order_id, time.
    в mssql вместо limit 1 в конце подзапроса будет top 1 сразу после select.

    ещё быстрее завести отдельную таблицу с текущим статусом заказа, но это может стать узким местом при активной записи.
    Ответ написан
    1 комментарий
  • Почему скорость копирвоания с локального диска на локаьный так скачет?

    @edo1h
    Потому что накопитель бюджетный.

    https://www.overclockers.ua/storage/kingston-ssdno...
    В реальных сценариях копирования большого массива информации, контроллер не успевает справляться с интенсивной нагрузкой, что приводит к кратковременному проседанию скорости записи вплоть до 3–5 Мбайт/с.
    Ответ написан
    3 комментария
  • Как добавить заголовок в NGINX только для определенного IP?

    @edo1h
    Что-то вроде этого:
    map $http_x_forwarded_for $cachefile_header {
        "8.8.8.8"    $cachefile;
        default      "";
    }
    …
    
    server {
        …
        location "/" {
            …
            add_header X-Cache-File $cachefile_header;
        }
    }


    P. S. неплохая статья про map (там упоминается и про "if is evil")
    Ответ написан
    8 комментариев