Аренда сервера в Европе:" Быстрая установкачерез 5 минут
1x Xeon E3-1245 / 16GB / 2x2TB - €39.00
Узнать подробнее

2xIntel Xeon E5-2650v4, 64GB DDR4, 4x480GB SSD
за €259 в месяц установка 1 час
Узнать подробнее
Простая и понятная панель управления поддержка онлайн 24х7
Узнать подробнее
Как добавить своп на Ubuntu 14.04
Введение

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

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

Информация, записанная на диск будет отображаться  медленнее, чем информация, которая хранится в оперативной памяти, но операционная система будет предпочитать держать рабочие прикладные данные в памяти и использовать своп для старых данных. В целом, имея пространство подкачки как возврат назад, когда ОЗУ вашей системы будет исчерпано  является хорошим способом безопасности.

В этом руководстве мы расскажем, как создать и включить файл подкачки на сервере Ubuntu 14.04.

Проверьте систему SWAP информации

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

Мы можем увидеть, если система имеет какой-нибудь настроенный swap , набрав:

sudo swapon -s
Filename                Type        Size    Used    Priority

 

Если вы только вернете заголовок таблицы обратно, как было показано выше , то вы не включите пространство для подкачки.

Другой, более привычный способ проверки подкачки это подключение бесплатной утилиты, которая показывает нам использование памяти. Мы видим нашу текущую память и использование подкачки в мегабайтах, набрав:

free -m
             total       used       free     shared    buffers     cached
Mem:          3953        154       3799          0          8         83
-/+ buffers/cache:         62       3890
Swap:            0          0          0

Как вы можете видеть выше. Наше общее пространство подкачки в системе равно 0. Это соответствует тому, что мы видели с предыдущей командой.

Проверьте свободное место на разделе жесткого диска

Типичный способ распределения пространства для подкачки – это использовать отдельный раздел, посвященный этой задаче. Мы можем так же легко создать файл подкачки, который находится в существующем разделе.

Прежде, чем мы будем это делать – мы должны получить информацию о текущем использовании диска. Мы можем получить эту информацию, набрав:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         59G  1.3G   55G   3% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G   12K  2.0G   1% /dev
tmpfs           396M  312K  396M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

Как вы можете видеть на первой линии, наш раздел жесткого диска имеет доступные  55 гигабайт, поэтому у нас есть огромное количество пространства для работы.  Это последние данные, средний VPS, одна в фактическое использование, может быть очень разным.

Хотя есть много мнений о соответствующем размере подкачки, это действительно зависит от ваших личных предпочтений и требований приложения. Как правило, сумма, равная или двойной объем оперативной памяти в вашей системе является хорошей отправной точкой.

Так как моя система имеет 4 гигабайта оперативной памяти, и удвоение, которое возьмет значительный кусок моего дискового пространства, с которым я не готов расстаться, я создам пространство подкачки 4 гигабайта оперативной памяти, которые будут соответствовать моей системе.

Создать файл подкачки

Теперь мы знаем доступное пространство на жестком диске, дальше мы можем создавать файл подкачки в нашей файловой системе.

Мы создадим файл с именем  swapfile в root каталог. Файл должен выделить обьем пространства для нашего файла подкачки.  Есть два основных способа сделать это:

Традиционный, медленный способ

Традиционно, мы должны создать файл c выделенным пространством с помощью команды dd.

Это универсальная утилита записи на диск из одного места в другое место.

Мы можем использовать это, чтобы написать нули в файле с помощью специального устройства в системах linux, расположенных в  /dev/zero, которое выдает столько нулей, сколько мы запрашивали.

Мы указываем размер файла с помощью комбинации bs для размера блока и подсчитываем количество блоков. Мы можем придать значение параметра полностью произвольным.  Значение имеет то, что получиться мультиплеерный продукт.

Например, в нашем примере мы пытаемся создать файл 4 гигабайт. Мы можем сделать это, указав размер блока в 1 гигабайт и количество 4.

sudo dd if=/dev/zero of=/swapfile bs=1G count=4
4+0 records in
4+0 records out
4294967296 bytes (4.3 GB) copied, 18.6227 s, 231 MB/s

 

Проверьте Вашу команду, прежде чем нажать кнопку Enter, потому что это потенциально может уничтожить данные,  если вы укажете точку в неправильном месте.

Мы видим, что 4 гигабайта были выделены набрав:

ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Apr 28 17:15 /swapfile

Если вы завершили команду, указанную выше , вы можете заметить , что она сработала очень быстро. По факту, вы можете увидеть, что система справилась за 18 секунд над созданием файла. Это потому, что система должна была написать 4 гигабайта нулей  на диск.

Если вы хотите узнать, как создать файл быстрее, удалите файл и следуйте указаниям ниже:

sudo rm /swapfile

 

Самый быстрый путь.

Более быстрый способ получить похожий файл – это использовать программу fallocate. Эта команда создает файл выделенного размера мгновенно, фактически не имея фиктивного содержания.

Мы можем создать файл 4 гигабайта набрав:

sudo fallocate -l 4G /swapfile

 

Приглашение будет возвращено Вам почти сразу. Мы можем убедиться, что правильное количество пространства было зарезервировано набрав:

ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Apr 28 17:19 /swapfile

Как вы можете видеть, наш файл создается с правильным количеством выделенного пространства.

Включение файла подкачки.

Прежде, чем мы делаем это, нам нужно настроить разрешения на нашем файле, так чтобы чтение было открыто только для root. Разрешение другим пользователям читать или изменять этот файл будет высоким риском безопасности. Мы можем заблокировать разрешения, набрав:

sudo chmod 600 /swapfile

 

Убедитесь, что файл имеет соответствующие разрешения, набрав:

ls -lh /swapfile
-rw------- 1 root root 4.0G Apr 28 17:19 /swapfile

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

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

sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=e2f1e9cf-c0a9-4ed4-b8ab-714b8a7d6944

Наш файл теперь готов к использованию в качестве подкачки. Мы можем включить это с помощью команды:

sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        4194300 0       -1

Здесь у нас появился новый файл подкачки. Мы можем использовать бесплатную утилиту снова, чтобы подтвердить наши выводы:

free -m
             total       used       free     shared    buffers     cached
Mem:          3953        101       3851          0          5         30
-/+ buffers/cache:         66       3887
Swap:         4095          0       4095

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

Как сделать постоянный файл подкачки.

У нас включен файл подкачки, но когда мы перезагрузим сервер,  то файл не сможет включиться автоматически. Мы можем исправить это создав  fstab файл.

Отредактируйте файл с  привилегиями суперпользователя в текстовом редакторе:

sudo nano /etc/fstab

 

В нижней части файла необходимо добавить строку которая укажет операционной системе автоматически использовать созданный файл:

/swapfile   none    swap    sw    0   0

 

Сохраните и закройте файл, когда закончите работу.

Проверьте настройки подкачки

Есть несколько вариантов, которые вы можете настроить, что будет иметь влияние на производительность вашей системы при работе с подкачки.

Параметр swapiness определяет, как часто ваша система меняет данные из оперативной памяти в пространство подкачки.

Это значение между 0 и 100, который представлен в процентном соотношении.

При значении близких к нулю ядро не будет менять данные на диске без крайней необходимости.

Помните, взаимодействия с файлом подкачки «дороги» тем, что они дольше взаимодействуют с ОЗУ и они могут привести к значительному снижению производительности. Приказав системе не полагаться сильно на подкачку, может в главным образом ускорить систему.

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

Мы можем увидеть текущее значение подкачки, набрав:

cat /proc/sys/vm/swappiness
60

 

Для рабочего стола, настройка подкачки на уровне 60 не такой уж и плохой показатель. Для системы VPS будет проблемой приблизить показатель к 10.

Мы можем установить подкачку по разным показателям используя команду sysctl.

Например, чтобы установить подкачку до 10, мы можем набрать:

sudo sysctl vm.swappiness=10
vm.swappiness = 10

 

Этот параметр не будет сохраняться до следующей перезагрузки.  Мы можем установить это значение автоматически при перезагрузке, добавив строку в наш файл /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

 

В нижней части, вы можете добавить:

vm.swappiness=10

 

Сохраните и закройте файл после окончания работы.

Другое релевантное значение, которое вы захотите изменить это vfs_cache_pressure.

Этот параметр определяет какое количество кэша индексирует система поверх других данных.

В основном, это данные для доступа файловой системы.

В основном это смотрится объемно и отличный способ для кэширования системы.  Вы сможете увидеть текущий показатель сделав снова запрос  к процедуре файловой системы:

cat /proc/sys/vm/vfs_cache_pressure
100

 

Сейчас система настроена таким образом что информация из кэша удаляется очень быстро. Мы можем установить более консервативные настройки , на уровне 50, набрав:

sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50

 

Опять же, это справедливо только для нашей текущей сессии. Мы можем изменить это добавив в наши настройки файла настройки которые мы использовали для подкачки:

sudo nano /etc/sysctl.conf

 

В нижней части добавляем строку, которая указывает наше новое значение:

vm.vfs_cache_pressure = 50

 

Сохраните и закройте файл после окончания.

Вывод.

После инструкций в нашем руководстве у Вашей оперативной памяти появится передышка во время использования. Пространство подкачки невероятно удобно в использовании во-избежании некоторых проблем.

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

 

 Источник здесь

 

 

 

 

Звоните нам:
+372 880 7873 +7 (499) 348 1331 +380 (44) 23 88 946
  • Эстония +372 880 7873
  • Россия +7 (499) 348 1331
  • Украина +380 (44) 23 88 946
Мы в скайпе:
Наш telegram:
Мы в аське:
486 232 774
Наша почта:
Контакты