Ответы пользователя по тегу Системное администрирование
  • Можно ли роутер и коммутатор соединить двумя и более проводами, для увеличения скорости?

    Melkij
    @Melkij
    PostgreSQL DBA
    trunk/bonding/teaming/LACP
    https://ru.wikipedia.org/wiki/%D0%90%D0%B3%D1%80%D...

    Для вашего коммутатора заявлен LACP (802.3ad), микротик его тоже имеет. Попробуйте настроить.

    Если просто включите второй кабель без настройки - получите петлю и сеть ляжет.
    Ответ написан
    Комментировать
  • Почему nextcloud не может писать в папке home?

    Melkij
    @Melkij
    PostgreSQL DBA
    У www-data нет x прав на директорию /home/username/
    Ответ написан
    Комментировать
  • С чего начинать тестирование двухюнитовых серверов с 16 планками U-DIMM и 24 хардами в Linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    CPU(s):                          256
    On-line CPU(s) list:             0-255
    Thread(s) per core:              2
    Core(s) per socket:              64
    Socket(s):                       2

    Я не понял проблематику ситуации. 40 ядер, несколько сотен гигов RAM да пара десятков дисков - средняя железка, какие там у вас специфические проблемы такие? 40 ядер нынче не проблема даже одним сокетом получить.

    Что касается памяти тут отдельная история, поступила жалоба, что U-DIMMы работают только при полной сборке (все 16), либо подключенные последовательно (с1 по 4 место например), но подключая в 1,3,7,12(например) места некоторые планки не определяются, либо сервер работает не корректно (не запускается, не стартует).

    См. документацию к материнке. Там будет описано, в каком порядке необходимо заполнять слоты. Да, это стандартное требование JEDEC для DIMM'ов, что серверных, что десктопных. Технически связано с терминаторами. Затем, после требований стандарта, идёт логика как не повесить всю имеющуюся память на один и тот же канал памяти одного и того же CPU. NUMA всё-таки.
    Вы правда занимаетесь серверами?
    Ответ написан
  • Реален ли хостинг на процессорах с частотой 5ггц?

    Melkij
    @Melkij
    PostgreSQL DBA
    Уже очень давно больше не существует понятия "процессор работает на постоянной частоте". Это величина динамическая по усмотрению самого процессора. Максимум того что осталось доступным - можно попросить более или менее агрессивную политику энергосбережения. А частотой всё равно будет управлять сам процессор.

    CPU с базовой частотой в 5ггц банально не представлено серийных, а Turbo Boost или аналоги - у них нет постоянной частоты. CPU загружен? CPU сбрасывает частоту чтобы уложиться в заданное тепловыделение или чтобы избежать перегрева. CPU не загружен? Понижаем частоту до минимума вплоть до обесточивания части ядер. CPU загружен умеренно - ок, повысим частоту сверх насколько захочется самому CPU. CPU загружен короткими всплесками (то есть типичная нагрузка от веба, что бекенда, что на стороне баз данных) - да ну нафиг частоту повышать, думает процессор. И не повышает.
    Ответ написан
    1 комментарий
  • Как перенести bd Mysql c частично неработающего жесткого диска, примонтированного к работающей Linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    • перепроверяете, что СУБД остановлена и не запущена
    • находите datadir (например, /var/lib/mysql/ )
    • ставите на рабочей системе mariadb (или mysql - выясните, какая именно была установлена) той же самой версии
    • копируете целиком всё что есть в datadir в новое место жительства
    • запускаете СУБД и смотрите в лог
    Ответ написан
    6 комментариев
  • Как уведомлять в телеграмм от mdadm?

    Melkij
    @Melkij
    PostgreSQL DBA
    PROGRAM в mdadm.conf можно задать
    PROGRAM
    The program line gives the name of a program to be run when
    mdadm --monitor detects potentially interesting events on any of
    the arrays that it is monitoring. This program gets run with
    two or three arguments, they being the Event, the md device, and
    possibly the related component device.

    There should only be one program line and it should be give only
    one program.
    Ответ написан
    6 комментариев
  • Почему команда curl -I (--head) отдает код 404, а curl -i отдает код 200?

    Melkij
    @Melkij
    PostgreSQL DBA
    curl 127.0.0.1 -I
    melkij@melkij:~$ nc -l 8081
    HEAD / HTTP/1.1
    Host: 127.0.0.1:8081
    User-Agent: curl/7.64.0
    Accept: */*


    curl 127.0.0.1:8081 -i
    melkij@melkij:~$ nc -l 8081
    GET / HTTP/1.1
    Host: 127.0.0.1:8081
    User-Agent: curl/7.64.0
    Accept: */*


    И что мешает веб-серверу на разные запросы реагировать по-разному?
    Ответ написан
    Комментировать
  • Centos7, как обновить postgresql с 9.2 до 10 версии?

    Melkij
    @Melkij
    PostgreSQL DBA
    Если база большая - pg_upgrade в link mode. В документации шаги вполне описаны. Желательно иметь реплику на всякий случай.
    Если база маленькая - pg_dumpall и импортировать в новую версию из дампа. Собственно всё просто: запустить новую базу на отдельном порту, снять дамп, залить дамп, остановить старую базу,, перезапустить новую на нужном порту.

    Просто запустить бинарники одной major версии на datadir другой major версии - не получится.

    Для обновления в пределах одного сервера нужны бинарники обеих версий СУБД. Инструкцию по установке уже расписал Alexey Dmitriev

    не ниже 10.1(на локалке у меня 10.1) или лучше ставить последнюю 12?

    10.11 минимум. Нечего тестировать давно закрытые ошибки.
    Ответ написан
    Комментировать
  • Где взять полный ликбез и роадмап по серверам nginx apache php-fpm и настройки сети и тд?

    Melkij
    @Melkij
    PostgreSQL DBA
    какие настройки имеет как управляется, что от чего зависит

    изучить вопрос от А до Я

    Непонятно почему вам для плана по оптимистичной оценке на 20 лет вперёд чем-то не нравятся ещё актуальные материалы 2014 года. Через 20 лет будет без разницы, изучали вы материалы 2019 или 2014 года, если вы все эти 20 лет не будете параллельно следить по крайней мере за release notes всего перечисленного.

    Начните с прочтения официальной документации. Настройки там должны быть все. Если вычеркнуть туманный пункт "настройки сети и тд" - то читать там уже и так достаточно надолго.
    Ответ написан
    Комментировать
  • Есть ли смысл ставить Linux, если локального админа на Винде легко взломать?

    Melkij
    @Melkij
    PostgreSQL DBA
    можно через LiveCD

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

    Melkij
    @Melkij
    PostgreSQL DBA
    чтобы они были согласованные

    при сбое одного из серверов, БД смогла работать и не нужно было руками проверять согласованность.

    У пользователя 100 рублей на счету. У вас упала сеть между серверами баз.
    Пользователь хочет потратить 100 рублей.
    Что дальше?
    - запрещаем тратить пока не починим - вот это CP система. Мы в readonly, но все данные корректны, к какой базе бы не обратились. Синхронная репликация в основном
    - разрешаем потратить только на одной базе, вторая - readonly и соответственно может показывать отстающие данные. Но работает. Это любая СУБД умеющая master-slave репликацию. Реплика догонит состояние мастера непротиворечиво и самостоятельно когда почините сеть
    - разрешаем запись на обоих серверах. Пользователь нажал "купить" дважды, запросы случайно попали на разные сервера. Сеть починили - как соединять данные? Две покупки и -100 на счету? Какая-то одна покупка? Как это решать автоматически, да ещё на уровне СУБД, а не бизнес-логики?
    Ответ написан
    1 комментарий
  • Как расширить файловую систему на RAID томе mdadm?

    Melkij
    @Melkij
    PostgreSQL DBA
    Так у вас под массив и выделена только половина тома.
    Выкидываете диск из массива
    mdadm /dev/md0 -f /dev/vda
    mdadm /dev/md0 -r /dev/vda
    переразбиваете диск на всю ёмкость и добавляете обратно
    mdadm /dev/md0 -a /dev/vda
    Следите за процессом синхронизации, когда закончится повторяете с другим диском.

    Впрочем, через parted resizepart должно быть возможно расширить раздел без пересинхронизации массива.

    Потом
    mdadm --grow /dev/md0 --size=max
    resize2fs /dev/md0

    И вопрос в сторону: vda/vdb - обычно обозначают виртуалку. Вы уверены, что вам вообще рейд в госте нужен? Обычно рейд на хост-системе делают.
    Ответ написан
    5 комментариев
  • Как интерпретировать load average?

    Melkij
    @Melkij
    PostgreSQL DBA
    и какой диапазон считать нормой?

    Смотрите на график. Если не выделяется на общем фоне и система работает нормально - значит это и есть норма для вашей системы.
    Абстрактного значения нормы LA нет.

    https://www.zabbix.com/forum/zabbix-troubleshootin...
    Template OS Linux uses normalized CPU load (percpu), while top shows total load. Normalized load = total load divided by online CPU count.

    У вас действительно 8-сокетная железка? 32 ядра в сумме? Вычисление немного не сходится просто.
    Ответ написан
    Комментировать
  • Как по очереди вытащить диски из mdadm RAID1 и вернуть обратно без потери данных выключения питания?

    Melkij
    @Melkij
    PostgreSQL DBA
    Поднять где-нибудь рядом реплику. Потому что операции на дисках - это всегда опасно.

    проверяете по dmesg что аномалий нет.
    mdadm /dev/md1 -f /dev/sda
    mdadm /dev/md1 -r /dev/sda
    echo 1 > /sys/block/sda/device/delete
    проверяете dmesg
    отключаете диск физически. Если перепутаете - будет очень плохо.
    втыкаете куда надо, проверяете по dmesg что система его нормально увидела
    mdadm /dev/md1 -a /dev/sda
    ждёте по /proc/mdstat синхронизацию. Затем повторяете со вторым диском.
    Ответ написан
    Комментировать
  • Как узнать, какие модули памяти сбоят (в каких слотах материнской платы они находятся)?

    Melkij
    @Melkij
    PostgreSQL DBA
    Раскурить спецификации на контроллер памяти и разводку материнской платы.
    Если верить самоидентификации ядром - сбоят первые модули на 1 и 3 каналах первого сокета.
    Ответ написан
    2 комментария
  • Как максимально быстро перенести бд mysql (MariaDB) на другой сервер?

    Melkij
    @Melkij
    PostgreSQL DBA
    Версия MariaDB отличается, но только на минорную версию.

    Это major релиз.
    Изучайте upgrading часть мануала: https://mariadb.com/kb/en/library/upgrading-from-m...

    По идее между ближайшими major версиями репликация у mariadb работает, поэтому самое быстрое - поднять реплику, затем promote до мастера.
    А, не ваш случай. Да, перенести физически диски - это будет быстрее, просто обычно нет такой возможности. Смотрите инструкцию к major обновлению, inplace upgrade возможен.
    Ответ написан
    Комментировать
  • Может ли блок питания влиять на скорость работы компьютера?

    Melkij
    @Melkij
    PostgreSQL DBA
    На стабильность - да. На производительность - нет.
    От блока питания нет обратной связи по типу "не могу дать столько мощности, ограничь нагрузку"
    Ответ написан
    4 комментария
  • Как смонтировать .raw диск от виртуалки?

    Melkij
    @Melkij
    PostgreSQL DBA
    Задача минимумум: прочитать файлы, содержащиеся в образе.

    mount -o loop,offset=$((512*start_сектор_нужного_раздела)) file mountpoint
    или losetup с параметром модуля ядра loop.max_part в какое-нибудь адекватное значение - тогда будут loop устройства с разделами как обычное блочное устройство.

    Задача максимум: и прочитать файлы и засунуть виртуалку в Proxmox, в качестве хранилища использующий LVM на CephFS.

    Сделать LV по меньшей мере такого же размера, скопировать весь файл поблочно через dd
    Ответ написан
    1 комментарий
  • Postgresql как ограничить общий размер WAL-файлов?

    Melkij
    @Melkij
    PostgreSQL DBA
    Один сегмент WAL обычно имеет фиксированный размер 16мб (опция компиляции postgresql with-wal-segsize, если вы её указывали - вы должны об этом знать, плюс она требует initdb делать заново). Поэтому их количество пересчитывается в объём банальным умножением.

    Ограничить максимальный занимаемый объём wal сверху - нельзя. Такой единой гайки нет, даже если вас устраивает переход базы в readonly по достижении этого лимита. И есть довольно много гаек, которые при своём использовании могут попросить базу не вычищать старые wal ещё какое-то время.

    Гайки, на которые надо обращать внимание:
    wal_keep_segments - база оставляет на диске не меньше этого числа wal, что позволяет реплике штатно на некоторое время терять мастера и затем догонять
    replication slots - если вы сделаете слот репликации и его никто не будет читать - база будет сохранять wal пока не закончится диск. Если вы используете слоты репликации, то у вас в мониторинге обязана быть отдельная проверка что слот вычитывается
    max_wal_size - несмотря на название - объём wal, по накоплению которого происходит checkpoint. (либо по таймеру checkpoint_timeout смотря что случится раньше). Реально объём wal может быть выше, т.к. автоматический checkpoint намеренно не выполняется моментально, а размазан во времени.
    min_wal_size - этот объём wal всегда будет на диске занят и будет переписываться по кругу. Как гарантия того, что на диске есть место под столько wal
    archive_command - если включен и команда возвращает ненулевой статус возврата - то будет накапливать wal без ограничений. wal будут удалены (если только ещё не нужны какой из других настроек) когда archive_command получает от команды 0 код возврата.

    Если не хочется много денег тратить на резерв свободного места на хороших SSD - разместите на SSD саму базу данных, а WAL перенесите (симлинком директории pg_xlog (до 10.0) или pg_wal (10.0 и выше)) на отдельные HDD. WAL пишутся строго последовательно, вполне возможно жить с WAL на механических дисках и держать хорошую нагрузку.
    Плюс если работаете не с деньгами, можно сделать synchronous_commit = off. Что увеличит производительность всех пишущих транзакций. Но в случае фатального краха железа вы потеряете последние 3*wal_writer_delay транзакции (т.е. до 3*200мс = 600мс).
    Ответ написан
    2 комментария
  • Е5-2640v4 6 ядер ощутимо мощнее, чем Е5-1650v3 6 ядер или нет?

    Melkij
    @Melkij
    PostgreSQL DBA
    Странные участники вопроса.
    https://ark.intel.com/compare/82765,92984
    E5-1650V3 - 6 ядер + HT. Ну ладно, пусть в маркетинговом языке будет 12 ядер
    Но у E5-2640V4 ой как далеко не 6 ядер, а 10 + HT. Потому он и дороже.

    Ну а дальше вопрос к задачам. Еслии нужны высокочастотные ядра в малом количестве или побольше памяти - то конфиг с 1650V3 выглядит интереснее. Если надо побольше ядер на вычислительные задачи, но не так много памяти требуется - 2640V4 интереснее. (плюс учитывать, а сколько именно надо переплачивать)
    Ответ написан
    7 комментариев