Синхронизация Rsync в реальном времени между средой Live и DR

Эти 3 числа являются , а не номерами для разных процессоров.

Эти числа являются средними значениями(см. примечание)за последние 1, 5 и 15 минут.

Нагрузка означает следующее: :если в системе с одним процессором -несколько процессов, они выполняются параллельно. Но это неправда. Что происходит на практике :ядро ​​отдает процессу 1/100 секунды, а затем прерывает его выполнение прерыванием. Затем отдает следующую 1/100-ю секунду другому процессу. Иногда эта 1/100 может быть 1/1000 или даже постоянно меняющимся ограничением по времени, это не имеет значения.

Практически вопрос, "какой процесс должен получить наш следующий интервал в 1/100 секунды?", будет решаться сложной эвристикой. Это называется планированием задач.

Конечно, процессы, которые заблокированы, например, они ожидают свои данные, которые они считывают с диска, освобождаются от этого планирования задач.

What load говорит :, сколько процессов в настоящее время ожидает своего следующего таймфрейма 1/100 секунды. Конечно, это среднее значение. Это потому, что вы можете увидеть несколько чисел в файле cat /proc/loadavg.

Ситуация в многопроцессорной -системе более сложная. Существует несколько процессоров, временные рамки которых могут быть заданы нескольким процессам. Это усложняет планирование задач немного -, но не слишком -. Но ситуация такая же.

Ядро интеллектуальное, оно пытается разделить системные ресурсы для оптимальной эффективности, и близко к этому (есть мелкие оптимизации, например, лучше, если процесс будет выполняться дольше всех возможное время на том же процессоре из соображений кэширования, но там они не имеют значения ). Это потому, что если у нас есть загрузка 8, это означает :, что на самом деле 8 процессов ожидают своего следующего временного интервала. Если у нас 8 процессоров,мы можем дать эти кванты времени процессору от -до -, и таким образом наша система будет использоваться оптимально.

Если вы видите top, вы можете видеть, что количество фактически запущенных процессов на удивление мало :это процессы, отмеченные там R. Даже в не особо хардкорной системе оно часто бывает ниже 5. Отчасти это связано с тем, что процессы, ожидающие свои данные с дисков или из сети, также приостанавливаются (, помеченные Sвверху ). Нагрузка показывает только загрузку процессора.

Многоядерные процессоры — это фактически несколько процессоров на одном кремниевом кристалле. Нет никакой разницы с этой точкой зрения.

В случае процессоров с гиперпоточностью существует интересный побочный эффект :при загрузке процессора его пары с гиперпоточностью замедляются. Но это происходит на более глубоком уровне, чем обычное планирование задач, хотя оно может (и должно )влиять на процесс -перемещения решений планировщика. Процессоры с гиперпоточностью сегодня широко не используются.

В Windows для расчета нагрузки используется другой метод :здесь загрузка 1.0 означает, что все ядра процессора используются на 100% (что было бы нагрузкой 4.0 на вашем система ).


примечаниеКак упоминает @Alex, это не среднее время -. Это экспоненциально взвешенное среднее время с постоянной времени 1, 5, 15 минут. Он более эффективен для расчета и лучше реагирует на недавние изменения. Подробнее см. источник в kernel/sched/loadavg.c.

0
14.01.2020, 14:50
2 ответа

У меня возникла проблема при настройке lsyncd.

Предположим, я удалил файл по ошибке в удаленном каталоге, но он все еще существует в исходном каталоге, я не получаю удаленный файл обратно в свой удаленный каталог.

Вот команда синхронизации в файле conf.

    rsync     = {
    binary   = "/usr/bin/rsync",
    archive  = true,
    compress = true
                }
0
28.01.2020, 02:38

Демон lsync использует rsync в качестве серверной части, но использует inotify только для синхронизации файлов/каталогов, которые (изменяются после первоначального полного прохода ). Я не уверен, что он будет масштабироваться до вашего размера, но мы использовали его для репликации структур в регионе 1 -2 ТБ без особых проблем.

1
28.01.2020, 02:38

Теги

Похожие вопросы