Как назначить разные коэффициенты распределения для разных файлов подкачки в Linux?

Мне нужны два файла подкачки, один на моем ssd-диске (файл ssd-swap), а другой один мой жесткий диск (файл подкачки жесткого диска). Поскольку скорость чтения / записи на моем ssd примерно в 4 раза выше, чем на моем жестком диске, мне нужно, чтобы система выделяла данные на ssd-swap в 4 раза больше, чем на hdd-swap, чтобы получить максимальную скорость два файла подкачки.Например, если системе требуется 5 ГБ пространства подкачки, я хочу, чтобы она использовала 4 ГБ из ssd-swap и 1 ГБ из hdd-swap. Но, как показали мои эксперименты, количество записанных дат одинаково для обоих файлов подкачки (2,5 ГБ для каждого из файлов подкачки, упомянутых в примере).

Я знаю, что одним из решений является создание четырех файлов подкачки на ssd и одного файла подкачки на жестком диске (так, чтобы система записывала 1 ГБ данных в каждый файл подкачки в приведенном выше примере, в результате 4 ГБ на ssd, в то время как 1 ГБ на жесткий диск). Но я предпочитаю использовать только два файла подкачки просто потому, что предпочитаю менее загруженную файловую систему.

Есть ли способ в конфигурациях файлов подкачки Linux выполнить такое повторное использование?

0
26.10.2017, 19:09
1 ответ

Во-первых, стоит отметить, что некоторые люди будут пытаться утверждать, что переход на SSD — плохая идея. Раньше это имело место, когда твердотельные накопители были сильно ограничены на запись, но в наши дни это не так (большинство твердотельных накопителей оцениваются более чем в тысячу раз по сравнению с их емкостью для записи, а файл подкачки обычно составляет крошечную долю емкость ), и даже меньше, если вы не выполняете подкачку регулярно, и вы не должны регулярно подкачиваться в любой современной системе ). В качестве конкретного примера: типичный твердотельный накопитель емкостью 250 ГБ в наши дни рассчитан на запись более 100 ТБ. С поведением подкачки по умолчанию и типичным использованием рабочего стола или сервера в правильно подготовленной системе вы будете использовать в среднем несколько МБ подкачки в день, что составляет менее 1/100000 рейтинга устройства. Кроме того, большинство проблем можно устранить, указав параметр discardв записи /etc/fstabдля области подкачки (или добавив -dв команду swapon).

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

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

Учитывая это, почти во всех случаях лучше отдавать приоритет переключению на SSD, а не на жесткий диск. К счастью, сделать это в Linux очень просто. Пространство подкачки (как для файлов, так и для разделов )может иметь достаточно произвольные приоритеты, определяющие предпочтительный порядок использования. Они устанавливаются с помощью опции -pна swaponи опции prio=в /etc/fstab. По умолчанию все имеет приоритет -1, что означает, что они используются в том порядке, в котором они были включены. Установив приоритет выше отрицательного, вы можете контролировать, в каком порядке будут использоваться вещи. Поменяйте местами регионы с более высоким приоритетом (до 32767 макс. )перед регионами с более низким приоритетом, а регионы с таким же приоритетом будут использоваться в циклическом -режиме (вроде настройки RAID0,но с большей степенью детализации фрагментов и без распараллеливания ).

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

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

1
28.01.2020, 02:44

Теги

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