One place for hosting & domains

      Установка Python 3 и настройка среды программирования на сервере Ubuntu 18.04


      Введение

      Python — гибкий и универсальный язык программирования, который можно использовать для разнообразных задач. Особенно полезен для создания скриптов, автоматизации, анализа данных, машинного обучения и разработки серверных компонентов приложений. Разработчики выпустили первую версию языка Python в 1991 году с целью создать интересный язык программирования и назвали его в честь британской комедийной группы Monty Python. Python легко настраивать, и с его помощью можно создавать относительно простой код с немедленным получением уведомлений об ошибках. Это отличный выбор как для начинающих, так и для опытных разработчиков. Python 3 — самая последняя версия этого языка, которая считается будущим Python.

      В этом обучающем модуле вы научитесь настраивать на сервере Ubuntu 18.04 среду программирования Python 3. Программирование на сревере дает много преимуществ и обеспечивает поддержку совместной работы над проектами разработки. Общие принципы этого обучающего модуля относятся к любым дистрибутивам Debian Linux.

      Предварительные требования

      Для выполнения этого обучающего руководства у вас должен быть пользователь без прав root с привилегиями sudo на сервере Ubuntu 18.04. Чтобы выполнить необходимую первоначальную настройку, воспользуйтесь нашим руководством по ручной начальной настройке сервера или запустите наш автоматизированный скрипт.

      Если вы еще не знакомы со средой терминалой, вам будет полезна статья «Введение в терминалы Linux».

      После настройки сервера и пользователя вы можете продолжить.

      Шаг 1 — Настройка Python 3

      Ubuntu 18.04 и другие версии Debian Linux поставляются с предустановленными средами программирования Python 3 и Python 2. Чтобы убедиться в обновлении версий, мы выполним обновление системы с помощью команды apt для работы с инструментом Ubuntu Advanced Packaging Tool:

      • sudo apt update
      • sudo apt -y upgrade

      Флаг -y показывает, что мы соглашаемся установить все элементы. В зависимости от вашей версии Linux вам может понадобиться подтвердить выбор в дополнительныхх диалогах по мере установки обновлений.

      После завершения этой процедуры мы можем проверить установленную в системе версию Python 3 с помощью следующей команды:

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

      Output

      Python 3.6.7

      Для управления программными пакетами Python мы установим инструмент pip, предназначенный для установки и управления пакетами программирования, которые мы можем захотеть использовать в наших проектах разработки. Дополнительную информацию о модулях и пакетах, которые можно установить с помощью pip, можно найти в документе «Импортирование модулей в Python 3».

      • sudo apt install -y python3-pip

      Пакеты Python можно установить с помощью следующей команды:

      • pip3 install package_name

      Здесь package_name может относиться к любому пакету или любой библиотеке Python, в том числе Django для веб-разработки или NumPy для научных вычислений. Если вы захотите установить NumPy, вы можете использовать команду pip3 install numpy.

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

      • sudo apt install build-essential libssl-dev libffi-dev python3-dev

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

      Шаг 2 — Настройка виртуальной среды

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

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

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

      Хотя существует несколько способов создания среды программирования в Python, мы используем модуль venv, входящий в состав стандартной библиотеки Python 3. Для установки venv введите следующую команду:

      • sudo apt install -y python3-venv

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

      • mkdir environments
      • cd environments

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

      Команда pyvenv настраивает новый каталог, содержащий несколько элементов, которые мы можем просмотреть с помощью команды ls:

      Output

      bin include lib lib64 pyvenv.cfg share

      Совместная работа этих файлов обеспечивает изоляцию ваших проектов в более широком контексте вашего локального компьютера, так что системные файлы и файлы проекта не смешиваются. Будет очень полезно использовать контроль версий и обеспечить каждому из ваших проектов доступ к конкретным пакетам, которые ему необходимы. Python Wheels — это формат готовых пакетов для Python, помогающий ускорить разработку программного обеспечения за счет сокращения количества операций компиляции. Он находится в каталоге share в Ubuntu 18.04.

      Чтобы использовать эту среду, ее нужно активировать. Для этого введите следующую команду, вызывающую скрипт activate:

      • source my_env/bin/activate

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

      Префикс сообщает нам, что среда my_env активна, и что при создании программ они будут использовать настройки и пакеты этой конкретной среды.

      Примечание. В виртуальной среде вы можете при желании использовать команду python вместо python3 и команду pip вместо pip3. Если вы используете Python 3 на компьютере вне виртуальной среды, вы можете использовать только команды python3 и pip3.

      После выполнения этих шагов ваша виртуальная среда готова к использованию.

      Шаг 3 — Создание программы «Hello, World»

      Теперь мы настроили нашу виртуальную среду и готовы создать традиционную программу «Hello, World!» Это позволит нам протестировать нашу среду и познакомиться с Python поближе, если мы еще не сделали этого.

      Для этого мы откроем текстовый редактор командной строки (например, nano) и создадим новый файл:

      Когда текстовый файл откроется в окне терминала, мы введем нашу программу:

      print("Hello, World!")
      

      Для выхода из nano нажмите клавиши CTRL и X, а когда система предложит вам сохранить файл, нажмите клавишу y.

      После выхода из nano и возврата в оболочку мы запустим программу:

      Программа hello.py, которую вы только что создали, выведет на вашем терминале следующее:

      Output

      Hello, World!

      Для выхода из среды просто введите команду deactivate, и вы вернетесь в исходный каталог.

      Заключение

      Поздравляем! Вы настроили среду программирования Python 3 на своем сервере Debian Linux можете начинать проект по программированию!

      Если вы используете локальный компьютер, а не сервер, воспользуйтесь обучающем модулем «Установка и настройка локальной среды программирования для Python 3» для вашей операционной системы.

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



      Source link

      Создание вашей первой программы на Go


      Введение

      “Hello, World!” — это классическая программа, традиционно используемая в компьютерном программировании. Это простая и полноценная первая программа для начинающих, и с ее помощью легко определить, что среда настроена правильно.

      В этом обучающем руководстве мы подробно рассмотрим создание этой программы на языке Go. Чтобы сделать программу поинтереснее, мы изменим традиционную программу “Hello, World!” так, чтобы она запрашивала имя пользователя. Затем это имя можно будет использовать в приветствии. После завершения этого обучающего модуля у вас будет программа, которая будет выглядеть при запуске следующим образом:

      Output

      Please enter your name. Sammy Hello, Sammy! I'm Go!

      Предварительные требования

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

      Шаг 1 — Написание простой программы “Hello, World!”

      Чтобы написать программу “Hello, World!”, откройте nano или другой текстовый редактор командной строки и создайте новый файл:

      Когда текстовый файл откроется в окне терминала, мы напишем нашу программу:

      hello.go

      package main
      
      import "fmt"
      
      func main() {
        fmt.Println("Hello, World!")
      }
      

      Давайте обсудим отдельные компоненты кода.

      package — это ключевое слово Go, определяющее, к какому пакету кода принадлежит данный файл. Для каждой папки может иметься только один покет, и в начале каждого файла .go должно декларироваться имя того же пакета. В этом примере код принадлежит пакету main.

      import — это ключевое слово Go, указыващее компилятору Go, какие другие пакеты вы хотите использовать в этом файле. Здесь вы импортируете пакет fmt из стандартной библиотеки. Пакет fmt содержит функции форматирования и вывода, которые могут быть полезны при разработке.

      fmt.Println — это функция Go из пакета fmt, которая предписывает компьютеру вывести текст на экран.

      После функции fmt.Println идет последовательность символов в кавычках, например "Hello, World!". Любые символы внутри кавычек называются строкой. Функция fmt.Println выведет эту строку на экран при выполнении программы.

      Сохраните файл и закройте nano, нажав CTRL + X. Когда вам будет предложено сохранить файл, нажмите Y.

      Теперь вы можете проверить программу в действии.

      Шаг 2 — Запуск программы в Go

      После написания программы “Hello, World!” вы можете ее запустить. Для этого используется команда go, после которой идет имя только что созданного файла.

      Программа будет исполнена и выведет на экран следующее:

      Output

      Hello, World!

      Посмотрим, что фактически произошло.

      Перед запуском программы Go требуют компиляции. При вызове go run с именем файла, в данном случае hello.go, команда go компилирует приложение и запускает полученный двоичный файл. Если программа написана на компилируемом языке программирования, компилятор берет исходный код программы и генерирует другой тип кода низкого уровня (например, машинный код) для получения исполняемой программы.

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

      После компиляции код запускается посредством входа в функцию main() в пакете main. Программа выполняет строку fmt.Println("Hello, World!") , вызывая функцию fmt.Println. Значение строки Hello, World! передается функции. В этом примере строка Hello, World! также называется аргументом, поскольку это значение, которое передается методу.

      Кавычки, в которые заключена фраза Hello, World!, не выводятся на экране, поскольку они показывают Go, где начинается и кончается ваша строка.

      На этом шаге вы создали работающую программу “Hello, World!” с помощью Go. На следующем шаге мы покажем, как сделать программу более интерактивной.

      Шаг 3 — Запрос ввода пользователя

      При каждом запуске программа дает один и тот же результат. На этом шаге вы добавите в программу запрос имени пользователя. Затем это имя можно будет использовать в выводимых результатах.

      Вместо изменения существующей программы создайте новую программу greeting.go с помощью редактора nano:

      Вначале добавьте этот код, который предлагает пользователю ввести имя:

      greeting.go

      package main
      
      import (
          "fmt"
      )
      
      func main() {
        fmt.Println("Please enter your name.")
      }
      

      Затем используйте функцию fmt.Println для вывода текста на экран.

      Затем добавьте выделенную строку для сохранения введенных пользователем данных:

      greeting.go

      package main
      
      import (
          "fmt"
      )
      
      func main() {
        fmt.Println("Please enter your name.")
        var name string
      }
      

      Строка var name string создаст новую переменную с помощью ключевого слова var. Мы присваиваем этой переменной имя name, и она имеет тип string.

      Затем добавьте выделенную строку для записи вводимых пользователем данных:

      greeting.go

      package main
      
      import (
          "fmt"
      )
      
      func main() {
        fmt.Println("Please enter your name.")
        var name string
        fmt.Scanln(&name)
      }
      

      Метод fmt.Scanln предписывает компьютеру ожидать ввода данных с клавиатуры, заканчивающегося символом новой строки или (n). Это приостанавливает выполнение программы, позволяя пользователю ввести любой желаемый текст. Программа продолжит выполнение, когда пользователь нажмет клавишу ENTER на клавиатуре. Все нажатия клавиш, включая нажатие клавиши ENTER, регистрируются и конвертируются в строку символов.

      Нам нужно использовать эти символы в выводимых программой результатах, и поэтому мы сохраним их, записав их в строковую переменную с именем name. Go хранит эту строку в памяти компьютера до завершения выполнения программы.

      В заключение добавьте в программу следующую выделенную строчку для вывода результатов:

      greeting.go

      package main
      
      import (
          "fmt"
      )
      
      func main() {
        fmt.Println("Please enter your name.")
        var name string
        fmt.Scanln(&name)
        fmt.Printf("Hi, %s! I'm Go!", name)
      }
      

      На этот раз вместо использования метода fmt.Println мы используем fmt.Printf. Функция fmt.Printf берет строку и использует специальные глаголы вывода (%s) для вставки значения name в строку. Мы делаем это так, потому что Go не поддерживает интерполяцию строк, при которой можно брать значение переменной и помещать его внутри строки.

      Сохраните файл и закройте nano, нажав CTRL + X. Нажмите Y, когда вам будет предложено сохранить файл.

      Запустите программу. Вам будет предложено ввести имя, так что введите его и нажмите ENTER. Результат может немного не соответствовать ожиданиям:

      Output

      Please enter your name. Sammy Hi, Sammy ! I'm Go!

      Вместо Hi, Sammy! I'm Go! после имени выводится разрыв строки.

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

      Откройте файл greeting.go в редакторе:

      Найдите в программе следующую строчку:

      greeting.go

      ...
      fmt.Scanln(&name)
      ...
      

      Добавьте после нее следующую строчку:

      greeting.go

      name = strings.TrimSpace(name)
      

      Она использует функцию TrimSpace из стандартной библиотеки Go strings в строке, которую вы записали с помощью fmt.Scanln. Функция strings.TrimSpace удаляет символы пробела, в том числе символы новой строки в начале и конце строки. В данном случае будет удален символ новой строки в конце строки, созданный при нажатии клавиши ENTER.

      Чтобы использовать пакет strings, его нужно импортировать в программу.

      Найдите в программе следующие строки:

      greeting.go

      import (
          "fmt"
      )
      

      Добавьте следующую строку для импорта пакета strings:

      greeting.go

      import (
          "fmt"
        "strings"
      )
      

      Теперь программа будет содержать следующее:

      greeting.go

      package main
      
      import (
              "fmt"
              "strings"
      )
      
      func main() {
          fmt.Println("Please enter your name.")
          var name string
          fmt.Scanln(&name)
          fmt.Printf("Hi, %s! I'm Go!", name)
          name = strings.TrimSpace(name)
      }
      

      Сохраните и закройте nano. Нажмите CTRL + X, а затем нажмите Y, когда вам будет предложено сохранить файл.

      Запустите программу снова:

      Теперь после ввода имени и нажатия клавиши ENTER выводится ожидаемый результат:

      Output

      Please enter your name. Sammy Hi, Sammy! I'm Go!

      Теперь у вас имеется программа Go, которая принимает данные пользователя и выводит их на экран.

      Заключение

      В этом обучающем руководстве мы написали программу “Hello, World!”, которая принимает вводимые пользователем данные, обрабатывает результаты и выводит их на экран. Теперь у вас имеется базовая программа для работы, и вы можете попробовать дополнить и расширить ее. Например, вы можете спросить любимый цвет пользователя и сделать так, чтобы программа говорила, что его любимый цвет красный. Вы даже можете использовать эту же методику для создания простой программы Mad-Lib.



      Source link

      Как добавить пространство подкачки на Ubuntu 18.04


      Предыдущая версия данного обучающего руководства была написана Джастином Эллингвудом

      Введение

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

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

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

      Что такое подкачка?

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

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

      Шаг 1 — Проверка информации о подкачке в системе

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

      Можно узнать, сконфигурирована ли в системе подкачка, введя:

      Если после этой команды ничего не появляется, в системе сейчас нет области подкачки.

      Можно убедиться в отсутствии активной подкачки при помощи утилиты free:

      Output

      total used free shared buff/cache available Mem: 985M 84M 222M 680K 678M 721M Swap: 0B 0B 0B

      В строке ​​​Swap видно​​​, что в системе отсутствует активная подкачка.

      Шаг 2 — Проверка свободного пространства в разделе жесткого диска

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

      Output

      Filesystem Size Used Avail Use% Mounted on udev 481M 0 481M 0% /dev tmpfs 99M 656K 98M 1% /run /dev/vda1 25G 1.4G 23G 6% / tmpfs 493M 0 493M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 493M 0 493M 0% /sys/fs/cgroup /dev/vda15 105M 3.4M 102M 4% /boot/efi tmpfs 99M 0 99M 0% /run/user/1000

      В данном случае устройство с / в столбце ​​​​​​Mounted on​​​ — наш диск. В данном примере у нас достаточно места (использовано только 1,4 Гбайт). Ваше использование, вероятно, будет другим.

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

      Шаг 3 — Создание файла подкачки

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

      Лучше всего создавать файл подкачки при помощи программы fallocate. Эта команда мгновенно создает файл указанного размера.

      Поскольку на сервере в нашем случае 1 Гбайт оперативной памяти, в этом руководстве создадим файл размером 1 Гбайт. Скорректируйте с учетом необходимости на вашем сервере:

      • sudo fallocate -l 1G /swapfile

      Чтобы проверить правильность выделенного объема памяти, введите:

      • -rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

      Файл создан с правильным выделенным объемом памяти.

      Шаг 4 — Активация файла подкачки

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

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

      Чтобы передать все права доступа пользователям root, введите:

      Проверьте изменение прав доступа, введя следующее:

      Output

      -rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

      Теперь только у пользователя root отмечены флажки чтения и записи.

      Теперь можем отметить файл как пространство подкачки, введя следующее:

      Output

      Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

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

      Убедитесь, что пространство подкачки активировано, введя следующее:

      Output

      NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2

      Чтобы подтвердить наши выводы, можем снова проверить ответ утилиты free:

      Output

      total used free shared buff/cache available Mem: 985M 84M 220M 680K 680M 722M Swap: 1.0G 0B 1.0G

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

      Шаг 5 — Сделать файл подкачки постоянным

      В результате внесенных нами изменений файл подкачки активирован для текущей сессии. После перезагрузки сервер не сохранит настройки подкачки автоматически. Мы можем изменить это, добавив файл подкачки к файлу /etc/fstab.

      Сделайте резервную копию файла /etc/fstab на случай если что-то пойдет не так:

      • sudo cp /etc/fstab /etc/fstab.bak

      Добавьте информацию о файле подкачки в конец файла /etc/fstab, введя следующее:

      • echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

      Далее рассмотрим некоторые настройки, которые мы сможем обновить, чтобы настроить пространство подкачки.

      Шаг 6 — Изменение настроек подкачки

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

      Настройка параметра Swappiness

      Параметр swappiness определяет, как часто система выгружает данные из оперативной памяти в пространство подкачки. Его значение выражается числом от 0 до 100 процентов.

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

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

      Можем увидеть текущее значение фактора swappiness, введя следующее:

      • cat /proc/sys/vm/swappiness

      Output

      60

      Для настольного компьютера неплохое значение swappiness — 60. Для сервера, возможно, вы захотите приблизить его к 0.

      Можно задать другое значение swappiness при помощи команды sysctl.

      Например, чтобы установить значение swappiness 10, можно ввести следующее:

      • sudo sysctl vm.swappiness=10

      Output

      vm.swappiness = 10

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

      • sudo nano /etc/sysctl.conf

      Внизу можно ввести следующее:

      /etc/sysctl.conf

      vm.swappiness=10
      

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

      Изменение настроек нагрузки кэш-памяти

      Еще одно связанное значение, которое вы, возможно, захотите изменить — vfs_cache_pressure. Эта настройка определяет, насколько система будет кэшировать данные inode и dentry по сравнению с другими данными.

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

      • cat /proc/sys/vm/vfs_cache_pressure

      Output

      100

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

      • sudo sysctl vm.vfs_cache_pressure=50

      Output

      vm.vfs_cache_pressure = 50

      Опять-таки, это значение действительно только для текущей сессии. Чтобы сделать его постоянным, нужно (как и в случае со swappiness) изменить файл конфигурации:

      • sudo nano /etc/sysctl.conf

      Внизу добавьте строку с новым значением:

      /etc/sysctl.conf

      vm.vfs_cache_pressure=50
      

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

      Заключение

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

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



      Source link