swapon

SWAPON(2)       Ð ÑководÑÑво пÑогÑаммиÑÑа Linux       SWAPON(2)



ÐÐЯ
       swapon, swapoff - запÑÑкаеÑ/оÑÑанавливаеÑ
       подкаÑÐºÑ Ð´Ð°Ð½Ð½ÑÑ Ð² Ñайл/ÑÑÑÑойÑÑво

ÐÐÐÐÐ
       #include <unistd.h>
       #include <sys/swap.h>

       int swapon(const char *path, int swapflags);
       int swapoff(const char *path);

ÐÐÐСÐÐÐÐ
       swapon() вклÑÑÐ°ÐµÑ Ð¸ÑполÑзование Ñайла или
       блоÑного ÑÑÑÑойÑÑва, Ñказанного в path, в
       каÑеÑÑве подкаÑки даннÑÑ. swapoff() вÑклÑÑаеÑ
       иÑполÑзование Ñайла или блоÑного
       ÑÑÑÑойÑÑва, Ñказанного в path, в каÑеÑÑве
       подкаÑки даннÑÑ.

       ÐÑли пÑи вÑзове swapon() в аÑгÑменÑе swapflags
       ÑÑÑановлен Ñлаг SWAP_FLAG_PREFER, Ñо новое
       пÑоÑÑÑанÑÑво подкаÑки бÑÐ´ÐµÑ Ð¸Ð¼ÐµÑÑ Ð±Ð¾Ð»ÑÑий
       пÑиоÑиÑеÑ, Ñем иÑполÑзÑемÑй по ÑмолÑаниÑ.
       ÐÑиоÑиÑÐµÑ Ð·Ð°Ð´Ð°ÑÑÑÑ Ð² swapflags ÑледÑÑÑим обÑазом:

       (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

       ÐÑли в аÑгÑменÑе swapflags вÑзова swapon() Ñказан
       Ñлаг SWAP_FLAG_DISCARD, Ñо оÑвобождаемÑе ÑÑÑаниÑÑ
       подкаÑки бÑдÑÑ Ð¸ÑклÑÑÐµÐ½Ñ (discard) до Ñого как
       они задейÑÑвÑÑÑÑÑ Ð¿Ð¾Ð²ÑоÑно (еÑли ÑÑÑÑойÑÑво
       подкаÑки поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¾Ð¿ÐµÑаÑÐ¸Ñ Ð¸ÑклÑÑениÑ
       или обÑезки). ÐÑо Ð¼Ð¾Ð¶ÐµÑ ÑлÑÑÑиÑÑ
       пÑоизводиÑелÑноÑÑÑ Ð½Ð° некоÑоÑÑÑ ÑвеÑдоÑелÑнÑÑ
       накопиÑелÑÑ, но, ÑаÑе вÑего, неÑ. Также
       ÑмоÑÑиÑе ÐÐÐÐЧÐÐÐЯ.

       ÐÑи ÑÑнкÑии могÑÑ Ð¸ÑполÑзоваÑÑÑÑ ÑолÑко
       пÑивилегиÑованнÑм пÑоÑеÑÑом (имеÑÑим
       Ð¼Ð°Ð½Ð´Ð°Ñ CAP_SYS_ADMIN).

   ÐÑиоÑиÑеÑ
       Ðаждое пÑоÑÑÑанÑÑво подкаÑки имееÑ
       пÑиоÑиÑеÑ, вÑÑокий или низкий. Ðо ÑмолÑаниÑ
       задаеÑÑÑ Ð½Ð¸Ð·ÐºÐ¸Ð¹ пÑиоÑиÑеÑ. ÐнÑÑÑи пÑоÑÑÑанÑÑв Ñ
       низким пÑиоÑиÑеÑом, новÑе пÑоÑÑÑанÑÑва имеÑÑ
       еÑÑ Ð¼ÐµÐ½ÑÑий пÑиоÑиÑеÑ, Ñем ÑÑаÑÑе.

       ÐÑе пÑиоÑиÑеÑÑ, ÑÑÑановленнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ swapflags,
       вÑÑе иÑполÑзÑемого по ÑмолÑаниÑ. ÐÑиоÑиÑеÑ
       Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑбÑм неоÑÑиÑаÑелÑнÑм ÑиÑлом
       (опÑеделÑеÑÑÑ Ð²ÑзÑваÑÑим). ÐолÑÑее знаÑение
       ÑооÑвеÑÑÑвÑÐµÑ Ð±Ð¾Ð»ÑÑÐµÐ¼Ñ Ð¿ÑиоÑиÑеÑÑ.

       СÑÑаниÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑаÑполагаÑÑÑÑ Ð²
       пÑоÑÑÑанÑÑÐ²Ð°Ñ ÑоглаÑно ÑбÑÐ²Ð°Ð½Ð¸Ñ Ð¸Ñ Ð¿ÑиоÑиÑеÑа.
       ÐÑли пÑиоÑиÑеÑÑ ÑазлиÑаÑÑÑÑ, Ñо ÑнаÑала
       полноÑÑÑÑ Ð·Ð°Ð¿Ð¾Ð»Ð½ÑÑÑÑÑ Ð¿ÑоÑÑÑанÑÑва Ñ Ð±Ð¾Ð»ÑÑим
       пÑиоÑиÑеÑом. ÐÑли два пÑоÑÑÑанÑÑва имеÑÑ
       одинаковÑй пÑиоÑиÑеÑ, и ÑÑо наиболÑÑий
       пÑиоÑиÑÐµÑ Ð¸Ð· ÑвободнÑÑ, ÑÑÑаниÑÑ ÑаÑпÑеделÑÑÑÑÑ
       Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸ по "каÑÑÑелÑномÑ" пÑинÑипÑ.

       Ð Linux 1.3.6 ÑабоÑа ÑдÑа обÑÑно ÑледÑÐµÑ ÑÑим
       пÑавилам, но ÑÑÑеÑÑвÑÑÑ Ð¸ÑклÑÑениÑ.

ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       ÐÑи ÑÑпеÑном вÑполнении возвÑаÑаеÑÑÑ 0. Ð
       ÑлÑÑае оÑибки возвÑаÑаеÑÑÑ -1, а errno
       ÑÑÑанавливаеÑÑÑ Ð² ÑооÑвеÑÑÑвÑÑÑее знаÑение.

ÐШÐÐÐÐ
       EBUSY  (Ð´Ð»Ñ swapon()) УказаннÑй path Ñже иÑполÑзÑеÑÑÑ
              в каÑеÑÑве пÑоÑÑÑанÑÑва подкаÑки.

       EINVAL Файл path ÑÑÑеÑÑвÑеÑ, но не ÑÑÑлаеÑÑÑ Ð½Ð°
              обÑÑнÑй Ñайл или блоÑное ÑÑÑÑойÑÑво;

       EINVAL (swapon()) УказаннÑй пÑÑÑ Ð½Ðµ ÑодеÑжиÑ
              пÑавилÑной ÑигнаÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки или
              ÑаÑполагаеÑÑÑ Ð² Ñайловой ÑиÑÑеме,
              ÑабоÑаÑÑей в памÑÑи, напÑимеÑ, tmpfs.

       EINVAL (наÑÐ¸Ð½Ð°Ñ Ñ Linux 3.4)
              (swapon()) Ð flags Ñказано невеÑное знаÑение
              Ñлага.

       EINVAL (swapoff()) РнаÑÑоÑÑее вÑÐµÐ¼Ñ path не ÑвлÑеÑÑÑ
              облаÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки.

       ENFILE ÐоÑÑигнÑÑо макÑималÑное колиÑеÑÑво
              оÑкÑÑÑÑÑ Ñайлов в ÑиÑÑеме.

       ENOENT Файл path не ÑÑÑеÑÑвÑеÑ.

       ENOMEM Ðе ÑваÑÐ°ÐµÑ Ð¿Ð°Ð¼ÑÑи ÑдÑа Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка
              пÑоÑеÑÑа подкаÑки.

       EPERM  ÐÑзÑваÑÑий не Ð¸Ð¼ÐµÐµÑ Ð¼Ð°Ð½Ð´Ð°Ñа CAP_SYS_ADMIN.
              Ðли пÑевÑÑен Ð»Ð¸Ð¼Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва
              иÑполÑзÑемÑÑ Ð¿ÑоÑÑÑанÑÑв подкаÑки; Ñм.
              ÐÐÐÐЧÐÐÐЯ далее.

СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       ÐÑи ÑÑнкÑии пÑедназнаÑÐµÐ½Ñ ÑолÑко Ð´Ð»Ñ ÑабоÑÑ Ð²
       Linux и не Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑÑÑ Ð² пеÑеноÑимÑÑ
       пÑогÑаммаÑ. ÐÑоÑой паÑамеÑÑ swapflags впеÑвÑе
       поÑвилÑÑ Ð² Linux 1.3.2.

ÐÐÐÐЧÐÐÐЯ
       Раздел или пÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿Ð¾Ð´Ð³Ð¾ÑÐ¾Ð²Ð»ÐµÐ½Ñ Ðº
       подкаÑке пÑи помоÑи mkswap(8).

       ÐÑÑÑ Ð²ÐµÑÑний пÑедел на колиÑеÑÑво
       иÑполÑзÑемÑÑ Ñайлов подкаÑки, он
       опÑеделÑеÑÑÑ ÐºÐ¾Ð½ÑÑанÑой ÑдÑа MAX_SWAPFILES. Ðо ÑдÑа
       веÑÑии 2.4.10 знаÑение MAX_SWAPFILES бÑло Ñавно 8;
       наÑÐ¸Ð½Ð°Ñ Ñ ÑдÑа 2.4.10, знаÑение ÑÑало 32.  ÐаÑинаÑ
       Ñ ÑдÑа 2.6.18, пÑедел ÑменÑÑаеÑÑÑ Ð½Ð° 2 (Ñо еÑÑÑ
       ÑÑало 30), еÑли ÑдÑо ÑобиÑаеÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом
       CONFIG_MIGRATION (коÑоÑÑй ÑезеÑвиÑÑÐµÑ 2 ÑлеменÑа
       ÑаблиÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки Ð´Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи пеÑеноÑа
       ÑÑÑÐ°Ð½Ð¸Ñ mbind(2) и migrate_pages(2)). ÐаÑÐ¸Ð½Ð°Ñ Ñ ÑдÑа 2.6.32,
       пÑедел еÑÑ ÑокÑаÑаеÑÑÑ Ð½Ð° 1, еÑли ÑдÑо
       ÑобиÑаеÑÑÑ Ñ Ð¿Ð°ÑамеÑÑом CONFIG_MEMORY_FAILURE.

       ÐÑклÑÑение (discard) ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñки поÑвилоÑÑ
       в ÑдÑе веÑÑии 2.6.29, Ñлаг ÑÑÐ»Ð¾Ð²Ð¸Ñ SWAP_FLAG_DISCARD
       поÑвилÑÑ Ð² ÑдÑе веÑÑии 2.6.36, но пока пÑи
       вÑзове swapon() иÑклÑÑаеÑÑÑ Ð²ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки,
       даже еÑли ÑÑÐ¾Ñ Ñлаг не задан.

СÐÐТРÐТРТÐÐÐÐ
       mkswap(8), swapoff(8), swapon(8)



Linux                             2015-12-28                         SWAPON(2)