cpuset

CPUSET(7)       Ð ÑководÑÑво пÑогÑаммиÑÑа Linux       CPUSET(7)



ÐÐЯ
       cpuset - набоÑÑ Ð´Ð»Ñ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑов по
       пÑоÑеÑÑоÑÑ Ð¸ памÑÑи

ÐÐÐСÐÐÐÐ
       Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑÑема пÑоÑеÑÑоÑного набоÑа (cpuset)
       â ÑÑо пÑевдо-ÑайловÑй инÑеÑÑÐµÐ¹Ñ Ð´Ð»Ñ
       меÑанизма ÑдÑа пÑоÑеÑÑоÑного набоÑа, коÑоÑÑй
       иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑаÑпÑеделением
       пÑоÑеÑÑов по пÑоÑеÑÑоÑам и памÑÑи. ÐбÑÑно, он
       монÑиÑÑеÑÑÑ Ð² /dev/cpuset.

       Ð ÑиÑÑемаÑ, Ñ ÐºÐ¾ÑоÑÑÑ ÑдÑа ÑкомпилиÑÐ¾Ð²Ð°Ð½Ñ Ñ
       поддеÑжкой пÑоÑеÑÑоÑного набоÑа, вÑе
       пÑоÑеÑÑÑ Ð¿ÑикÑеплÑÑÑÑÑ Ðº пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ, и
       пÑоÑеÑÑоÑнÑе набоÑÑ Ð²Ñегда ÑÑÑеÑÑвÑÑÑ. ÐÑли
       ÑиÑÑема поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿ÑоÑеÑÑоÑнÑе набоÑÑ, Ñо
       в Ñайле /proc/filesystems бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑ nodev cpuset.
       СмонÑиÑовав ÑайловÑÑ ÑиÑÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑоÑного
       набоÑа (ÑмоÑÑиÑе Ñаздел ÐÐ ÐÐÐÐ  далее),
       админиÑÑÑаÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÑÑÑоиÑÑ Ð¿ÑоÑеÑÑоÑнÑй
       Ð½Ð°Ð±Ð¾Ñ Ð² ÑиÑÑеме Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑазмеÑением
       пÑоÑеÑÑов по пÑоÑеÑÑоÑам и памÑÑи. Ðо
       ÑмолÑаниÑ, еÑли наÑÑÑойки пÑоÑеÑÑоÑного
       набоÑа в ÑиÑÑеме не изменÑлиÑÑ, и еÑли
       ÑÐ°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑÑема пÑоÑеÑÑоÑного набоÑа даже
       не ÑмонÑиÑована, Ñо меÑанизм пÑоÑеÑÑоÑного
       набоÑа, ÑоÑÑ Ð¸ имееÑÑÑ, но никак не влиÑÐµÑ Ð½Ð°
       ÑабоÑÑ ÑиÑÑемÑ.

       РпÑоÑеÑÑоÑном набоÑе задаÑÑ ÑпиÑок ЦРи
       Ñзлов памÑÑи.

       РЦРÑиÑÑÐµÐ¼Ñ Ð¾ÑноÑÑÑÑÑ Ð²Ñе единиÑÑ Ð¾Ð±ÑабоÑки
       логики, на коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð¿ÑоÑеÑÑ,
       вклÑÑаÑ, еÑли еÑÑÑ, неÑколÑко ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа в
       одном Ñипе и Hyper-Threads внÑÑÑи ÑдÑа пÑоÑеÑÑоÑа. Ð
       Ñзлам памÑÑи оÑноÑÑÑÑÑ Ð²Ñе оÑделÑнÑе банки
       оÑновной памÑÑи; в маленÑÐºÐ¸Ñ Ð¸ SMP-ÑиÑÑемаÑ,
       обÑÑно, еÑÑÑ ÑолÑко один Ñзел памÑÑи, коÑоÑÑй
       ÑодеÑÐ¶Ð¸Ñ Ð²ÑÑ Ð¾ÑновнÑÑ Ð¿Ð°Ð¼ÑÑÑ ÑиÑÑемÑ, в Ñо вÑемÑ
       как ÑиÑÑÐµÐ¼Ñ Ñ NUMA (non-uniform memory access) имеÑÑ
       неÑколÑко Ñзлов памÑÑи.

       ÐÑоÑеÑÑоÑнÑе набоÑÑ Ð¿ÑедÑÑавлÑÑÑÑÑ Ð²
       иеÑаÑÑиÑеÑкой пÑевдо-Ñайловой ÑиÑÑеме в
       виде каÑалогов, где веÑÑний каÑалог
       иеÑаÑÑии (/dev/cpuset) пÑедÑÑавлÑÐµÑ ÑиÑÑемÑ
       полноÑÑÑÑ (вÑе ÑабоÑаÑÑие ЦРи ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи) и
       лÑбой пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ â ÑÑо поÑомок
       дÑÑгого ÑодиÑелÑÑкого пÑоÑеÑÑоÑного набоÑа,
       ÑодеÑжаÑий Ð¿Ð¾Ð´Ð½Ð°Ð±Ð¾Ñ ÑодиÑелÑÑÐºÐ¸Ñ Ð¦Ð Ð¸ Ñзлов
       памÑÑи. ÐаÑалоги и ÑÐ°Ð¹Ð»Ñ Ð¿ÑедÑÑавлÑÑÑ
       пÑоÑеÑÑоÑнÑе набоÑÑ Ñ Ð¾Ð±ÑÑнÑми пÑавами доÑÑÑпа
       в Ñайловой ÑиÑÑеме.

       ÐаждÑй пÑоÑеÑÑ Ð² ÑиÑÑеме пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ ÑолÑко
       Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ. ÐÑоÑеÑÑ Ð¾Ð³ÑаниÑен
       в ÑабоÑе ÑолÑко на ЦРиз пÑоÑеÑÑоÑного
       набоÑа, коÑоÑÐ¾Ð¼Ñ Ð¾Ð½ пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ Ð¸ Ð´Ð»Ñ Ð½ÐµÐ³Ð¾
       вÑделÑеÑÑÑ Ð¿Ð°Ð¼ÑÑÑ ÑолÑко из Ñзлов памÑÑи ÑÑого
       пÑоÑеÑÑоÑного набоÑа. Ðогда пÑоÑеÑÑ Ð·Ð°Ð¿ÑÑкаеÑ
       fork(2), доÑеÑний пÑоÑеÑÑ Ð¿Ð¾Ð¼ÐµÑаеÑÑÑ Ð² ÑÐ¾Ñ Ð¶Ðµ
       пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ ÑÑо и ÑодиÑелÑ. ÐмеÑ
       доÑÑаÑоÑно пÑав, пÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑемеÑÑиÑÑÑÑ Ð¸Ð·
       одного пÑоÑеÑÑоÑного набоÑа в дÑÑгой и
       допÑÑÑимÑе ЦРи ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи ÑÑÑеÑÑвÑÑÑего
       пÑоÑеÑÑоÑного набоÑа могÑÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ.

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

       ÐÑоÑеÑÑоÑнÑе набоÑÑ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ñ Ð¼ÐµÑанизмом
       ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ Ð² планиÑовании (scheduling affinity)
       sched_setaffinity(2) и меÑанизмами ÑазмеÑениÑ
       памÑÑи mbind(2) и set_mempolicy(2) в ÑдÑе. Ðи один из
       ÑÑÐ¸Ñ Ð¼ÐµÑанизмов не позволÑÐµÑ Ð¿ÑоÑеÑÑÑ
       иÑполÑзоваÑÑ Ð¦Ð Ð¸Ð»Ð¸ Ñзел памÑÑи не
       ÑазÑеÑÑннÑй в пÑоÑеÑÑоÑном набоÑе пÑоÑеÑÑа.
       ÐÑли изменение ÑазмеÑÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑоÑного
       набоÑа пÑоÑеÑÑа конÑликÑÑÐµÑ Ñ ÑÑими
       меÑанизмами, Ñо ÑÑиÑÑваеÑÑÑ ÑазмеÑение
       пÑоÑеÑÑоÑного набоÑа, даже еÑли ÑÑо ознаÑаеÑ
       Ð·Ð°Ð¼ÐµÐ½Ñ Ð·Ð½Ð°Ñений дÑÑÐ³Ð¸Ñ Ð¼ÐµÑанизмов. ЯдÑо
       замеÑÐ°ÐµÑ Ð·Ð°Ð¿ÑаÑиваемÑе ЦРи ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи без
       ÑÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¼ÐµÑанизмов на
       ÑазÑеÑÑннÑе из пÑоÑеÑÑоÑного набоÑа
       вÑзвавÑего пÑоÑеÑÑа. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к
       оÑибке пÑи дÑÑÐ³Ð¸Ñ Ð²ÑзоваÑ, еÑли, напÑимеÑ,
       Ñакой вÑзов заканÑиваеÑÑÑ Ð·Ð°Ð¿ÑоÑом пÑÑÑого
       набоÑа ЦРили Ñзлов памÑÑи, поÑле Ñего
       запÑÐ¾Ñ Ð¾Ð³ÑаниÑиваеÑÑÑ Ð¿ÑоÑеÑÑоÑнÑм набоÑом
       вÑзÑвавÑего пÑоÑеÑÑа.

       ÐбÑÑно, пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð¸ÑполÑзÑеÑÑÑ Ð´Ð»Ñ
       ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑазмеÑением ЦРи Ñзлов памÑÑи
       Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñа взаимодейÑÑвÑÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов, а
       Ñакже планиÑовÑика ÑоновÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹, а
       дÑÑгие меÑÐ°Ð½Ð¸Ð·Ð¼Ñ Ð¸ÑполÑзÑÑÑÑÑ Ð´Ð»Ñ ÑпÑавлениÑ
       ÑазмеÑением оÑделÑнÑÑ Ð¿ÑоÑеÑÑов или
       облаÑÑей памÑÑи внÑÑÑи ÑÑого набоÑа или
       заданиÑ.

ФÐÐÐЫ
       ÐаждÑй каÑалог в /dev/cpuset пÑедÑÑавлÑеÑ
       пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð¸ ÑодеÑÐ¶Ð¸Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñй
       Ð½Ð°Ð±Ð¾Ñ Ð¿Ñевдо-Ñайлов, опиÑÑваÑÑий ÑоÑÑоÑние
       ÑÑого пÑоÑеÑÑоÑного набоÑа.

       ÐовÑе пÑоÑеÑÑоÑнÑе набоÑÑ ÑоздаÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
       ÑиÑÑемного вÑзова mkdir(2) или ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ mkdir(1).
       СвойÑÑва пÑоÑеÑÑоÑного набоÑа, Ñакие как:
       Ñлаги, ÑазÑеÑÑннÑе ЦРи ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи,
       пÑикÑеплÑннÑе пÑоÑеÑÑÑ, возвÑаÑаÑÑÑÑ Ð¸
       изменÑÑÑÑÑ Ð¿Ð¾ÑÑедÑÑвом ÑÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ запиÑи
       ÑооÑвеÑÑÑвÑÑÑего Ñайла в каÑалоге ÑÑого
       пÑоÑеÑÑоÑного набоÑа как опиÑано далее.

       ÐÑевдо-ÑÐ°Ð¹Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ каÑалога
       пÑоÑеÑÑоÑного набоÑа авÑомаÑиÑеÑки ÑоздаÑÑÑÑ
       пÑи Ñоздании пÑоÑеÑÑоÑного набоÑа, Ñо еÑÑÑ Ð²
       ÑезÑлÑÑаÑе вÑзова mkdir(2). ÐелÑÐ·Ñ Ð½Ð°Ð¿ÑÑмÑÑ
       добавлÑÑÑ Ð¸Ð»Ð¸ ÑдалÑÑÑ ÑÑи пÑевдо-ÑайлÑ.

       ÐаÑалог пÑоÑеÑÑоÑного набоÑа, в коÑоÑом неÑ
       каÑалогов доÑеÑÐ½Ð¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов, и
       Ð½ÐµÑ Ð¿ÑикÑеплÑннÑÑ Ð¿ÑоÑеÑÑов, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑдалÑн
       Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ rmdir(2) или rmdir(1). ÐеобÑзаÑелÑно и
       невозможно ÑдалÑÑÑ Ð¿Ñевдо-ÑÐ°Ð¹Ð»Ñ Ð²Ð½ÑÑÑи
       каÑалога пеÑед Ñдалением.

       ÐÑевдо-ÑÐ°Ð¹Ð»Ñ Ð² каждом каÑалоге
       пÑоÑеÑÑоÑного набоÑа пÑедÑÑавлÑÑÑ Ñобой
       маленÑкие ÑекÑÑовÑе ÑайлÑ, коÑоÑÑе можно
       ÑиÑаÑÑ Ð¸ пиÑаÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¾Ð±ÑÑнÑÑ ÑÑилиÑ
       оболоÑки, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº cat(1) и echo(1), или из
       пÑогÑÐ°Ð¼Ð¼Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑайловÑÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑеÑнÑÑ
       ÑÑнкÑий ввода-вÑвода или ÑиÑÑемнÑÑ Ð²Ñзовов,
       ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº open(2), read(2), write(2) и close(2).

       ÐÑевдо-ÑÐ°Ð¹Ð»Ñ Ð² каÑалоге пÑоÑеÑÑоÑного
       набоÑа опиÑÑваÑÑ Ð²Ð½ÑÑÑеннее ÑоÑÑоÑние ÑдÑа и
       не ÑÑанÑÑÑÑ Ð½Ð° диÑке. ÐÑе ÑÐ°Ð¹Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð½Ð¸Ð¶Ðµ.

       tasks  СпиÑок ID (PID) пÑоÑеÑÑов в ÑÑом
              пÑоÑеÑÑоÑном набоÑе СпиÑок пÑедÑÑавлÑеÑ
              Ñобой ÑеÑÐ¸Ñ Ð´ÐµÑÑÑиÑнÑÑ ÑиÑÑ ASCII, ÑазделÑннÑÑ
              Ñимволом новой ÑÑÑоки. ÐÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ
              добавлен в пÑоÑеÑÑоÑнÑй набоÑ
              (авÑомаÑиÑеÑки ÑдалÑÑÑÑ Ð¸Ð· пÑедÑдÑÑего
              пÑоÑеÑÑоÑного набоÑа, в коÑоÑом он
              наÑодилÑÑ) поÑÑедÑÑвом запиÑи его PID в
              Ñайл tasks ÑÑого пÑоÑеÑÑоÑного набоÑа (Ñ
              или без завеÑÑаÑÑего Ñимвола новой
              ÑÑÑоки).

              ÐÑедÑпÑеждение: за один Ñаз в Ñайл tasks
              Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð¿Ð¸Ñан ÑолÑко один PID. ÐÑли
              запиÑÑваеÑÑÑ ÑÑÑока Ñ Ð½ÐµÑколÑкими PID, Ñо
              бÑÐ´ÐµÑ Ð¸ÑполÑзован ÑолÑко пеÑвÑй.

       notify_on_release
              Флаг (0 или 1). ÐÑли ÑÑÑановлен (1), Ñо длÑ
              пÑоÑеÑÑоÑного набоÑа бÑдÑÑ Ð²ÑполнÑÑÑÑÑ
              дополниÑелÑнÑе дейÑÑÐ²Ð¸Ñ Ð¿Ð¾Ñле его
              оÑвобождениÑ, Ñо еÑÑÑ Ð¿Ð¾Ñле Ñого, как
              вÑе пÑоÑеÑÑÑ Ð¿ÐµÑеÑÑанÑÑ ÐµÐ³Ð¾ иÑполÑзоваÑÑ
              (завеÑÑаÑÑÑ Ð¸Ð»Ð¸ пеÑейдÑÑ Ð² дÑÑгой
              пÑоÑеÑÑоÑнÑй набоÑ), и вÑе каÑалоги
              доÑеÑÐ½Ð¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов бÑдÑÑ
              ÑдаленÑ. СмоÑÑиÑе Ñаздел Уведомление
              об оÑвобождении далее.

       cpuset.cpus
              СпиÑок номеÑов ÑизиÑеÑÐºÐ¸Ñ Ð¦Ð, на коÑоÑÑÑ
              пÑоÑеÑÑам ÑазÑеÑено вÑполнÑÑÑÑÑ Ð² ÑÑом
              пÑоÑеÑÑоÑном набоÑе. Ð ÑоÑмаÑе cpus ÑмоÑÑиÑе
              опиÑание в ФоÑÐ¼Ð°Ñ ÑпиÑка далее.

              РазÑеÑÑннÑе ЦРв пÑоÑеÑÑоÑном набоÑе
              можно измениÑÑ Ð·Ð°Ð¿Ð¸Ñав новÑй ÑпиÑок в
              его Ñайл cpus.

       cpuset.cpu_exclusive
              Флаг (0 или 1). ÐÑли ÑÑÑановлен (1), Ñо
              пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð¼Ð¾Ð½Ð¾Ð¿Ð¾Ð»Ñно
              иÑполÑзÑÐµÑ Ñвои ЦР(одноÑÑовневÑе (sibling)
              или ÑодÑÑвеннÑе (cousin) пÑоÑеÑÑоÑнÑе набоÑÑ
              не могÑÑ Ð¸Ð¼ÐµÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñе ЦÐ). Ðо
              ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑоÑен (0). У ÑоздаваемÑÑ
              пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов ÑÑÐ¾Ñ Ñлаг Ñакже по
              ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑоÑен (0).

              Ðва пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñа ÑвлÑÑÑÑÑ
              одноÑÑовневÑми, еÑли они имеÑÑ Ð¾Ð±Ñий
              ÑодиÑелÑÑкий пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð²
              иеÑаÑÑии /dev/cpuset. Ðва пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñа
              ÑвлÑÑÑÑÑ ÑодÑÑвеннÑми, еÑли не один не
              ÑвлÑеÑÑÑ Ð¿Ñедком дÑÑгого. ÐезавиÑимо оÑ
              знаÑÐµÐ½Ð¸Ñ cpu_exclusive, еÑли один
              пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ â пÑедок дÑÑгого, и
              еÑли оба ÑÑÐ¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñа имеÑÑ
              непÑÑÑÑе cpus, Ñо Ð¸Ñ cpus Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÐµÑекÑÑваÑÑÑÑ,
              Ñак как cpus лÑбого пÑоÑеÑÑоÑного набоÑа
              вÑегда ÑвлÑÑÑÑÑ Ð¿Ð¾Ð´Ð½Ð°Ð±Ð¾Ñом cpus Ñвоего
              ÑодиÑелÑÑкого пÑоÑеÑÑоÑного набоÑа.

       cpuset.mems
              СпиÑок Ñзлов памÑÑи, на коÑоÑÑÑ Ð¿ÑоÑеÑÑам
              ÑазÑеÑено вÑделÑÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð² ÑÑом
              пÑоÑеÑÑоÑном набоÑе. Ð ÑоÑмаÑе mems ÑмоÑÑиÑе
              опиÑание в ФоÑÐ¼Ð°Ñ ÑпиÑка далее.

       cpuset.mem_exclusive
              Флаг (0 или 1) ÐÑли ÑÑÑановлен (1), Ñо
              пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð¼Ð¾Ð½Ð¾Ð¿Ð¾Ð»Ñно
              иÑполÑзÑÐµÑ Ñвои ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи
              (одноÑÑовневÑе или ÑодÑÑвеннÑе
              пÑоÑеÑÑоÑнÑе набоÑÑ Ð½Ðµ могÑÑ Ð¸Ð¼ÐµÑÑ
              одинаковÑе ÑзлÑ). Также, еÑли Ñлаг
              ÑÑÑановлен (1), Ñо пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ â
              Hardwall (ÑмоÑÑиÑе далее). Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñлаг
              ÑбÑоÑен (0). У ÑоздаваемÑÑ Ð¿ÑоÑеÑÑоÑнÑÑ
              набоÑов Ñлаг Ñакже по ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑоÑен
              (0).

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

       cpuset.mem_hardwall (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.26)
              Флаг (0 или 1) ÐÑли ÑÑÑановлен (1), Ñо
              пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ â Hardwall (ÑмоÑÑиÑе
              далее). РоÑлиÑии Ð¾Ñ mem_exclusive,
              пÑоÑеÑÑоÑнÑе набоÑÑ Ñ ÑÑÑановленнÑм
              mem_hardwall (одноÑÑовневÑе или ÑодÑÑвеннÑе)
              не имеÑÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð¿Ð¾ пеÑекÑÑÑÐ¸Ñ Ð¿Ð¾
              Ñзлам памÑÑи. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñлаг ÑбÑоÑен
              (0). У ÑоздаваемÑÑ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов
              Ñлаг Ñакже по ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑоÑен (0).

       cpuset.memory_migrate (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.16)
              Флаг (0 или 1). ÐÑли ÑÑÑановлен (1), Ñо
              ÑазÑеÑÑн пеÑÐµÐ½Ð¾Ñ (migration) памÑÑи. Ðо
              ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑоÑен (0). СмоÑÑиÑе Ñаздел
              ÐеÑÐµÐ½Ð¾Ñ Ð¿Ð°Ð¼ÑÑи далее.

       cpuset.memory_pressure (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.16)
              ÐелиÑина нагÑÑзки памÑÑи, коÑоÑÑÑ
              вÑзÑваÑÑ Ð¿ÑоÑеÑÑÑ Ð² ÑÑом пÑоÑеÑÑоÑном
              набоÑе. СмоÑÑиÑе Ñаздел ÐагÑÑзка памÑÑи
              далее. ÐÑли Ñлаг memory_pressure_enabled не
              ÑÑÑановлен, Ñо знаÑение вÑегда Ñавно
              нÑÐ»Ñ (0). ÐÑÐ¾Ñ Ñайл доÑÑÑпен ÑолÑко длÑ
              ÑÑениÑ. СмоÑÑиÑе Ñаздел ÐÐ ÐÐУÐÐ ÐÐÐÐÐÐЯ
              далее.

       cpuset.memory_pressure_enabled (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.16)
              Флаг (0 или 1). ÐаннÑй Ñайл еÑÑÑ ÑолÑко в
              коÑневом пÑоÑеÑÑоÑном набоÑе, обÑÑно
              /dev/cpuset. ÐÑли ÑÑÑановлен (1), Ñо вклÑÑаеÑÑÑ
              вÑÑиÑление memory_pressure Ð´Ð»Ñ Ð²ÑÐµÑ Ð¿ÑоÑеÑÑоÑнÑÑ
              набоÑов в ÑиÑÑеме. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑклÑÑен
              (0). СмоÑÑиÑе Ñаздел ÐагÑÑзка памÑÑи
              далее.

       cpuset.memory_spread_page (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.17)
              Флаг (0 или 1). ÐÑли ÑÑÑановлен (1), Ñо
              ÑÑÑаниÑÑ Ð² ÑÑÑаниÑном кÑÑе ÑдÑа (бÑÑеÑÑ
              Ñайловой ÑиÑÑемÑ) бÑдÑÑ ÑавномеÑно
              ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð¿Ð¾ вÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑоÑномÑ
              набоÑÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑоÑен (0) в
              коÑневом пÑоÑеÑÑоÑном набоÑе, и
              наÑледÑеÑÑÑ Ð¾Ñ ÑодиÑелÑÑкого
              пÑоÑеÑÑоÑного набоÑа Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ
              пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов. СмоÑÑиÑе Ñаздел
              РаÑпÑоÑÑÑанение в памÑÑи далее.

       cpuset.memory_spread_slab (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.17)
              Флаг (0 или 1). ÐÑли ÑÑÑановлен (1), Ñо кÑÑи
              slab ÑдÑа Ð´Ð»Ñ Ñайлового ввода-вÑвода
              (ÑÑÑÑкÑÑÑÑ ÐºÐ°Ñалогов и inode) бÑдÑÑ
              ÑавномеÑно ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð¿Ð¾ вÑемÑ
              пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑбÑоÑен
              (0) в коÑневом пÑоÑеÑÑоÑном набоÑе, и
              наÑледÑеÑÑÑ Ð¾Ñ ÑодиÑелÑÑкого
              пÑоÑеÑÑоÑного набоÑа Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ
              пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов. СмоÑÑиÑе Ñаздел
              РаÑпÑоÑÑÑанение в памÑÑи далее.

       cpuset.sched_load_balance (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.24)
              Флаг (0 или 1). ÐÑли ÑÑÑановлен (1), Ñо ÑдÑо
              бÑÐ´ÐµÑ Ð°Ð²ÑомаÑиÑеÑки баланÑиÑоваÑÑ
              нагÑÑÐ·ÐºÑ Ð¿ÑоÑеÑÑов пÑоÑеÑÑоÑного набоÑа
              по вÑем ÑазÑеÑÑннÑм в пÑоÑеÑÑоÑном
              набоÑе ЦÐ. ÐÑли ÑбÑоÑен (0), Ñо ÑдÑо не
              бÑÐ´ÐµÑ Ð²ÑполнÑÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑÐ¾Ð²ÐºÑ Ð² ÑÑом
              пÑоÑеÑÑоÑном набоÑе, еÑли Ð½ÐµÑ ÐºÐ°ÐºÐ¾Ð³Ð¾-Ñо
              дÑÑгого пÑоÑеÑÑоÑного набоÑа Ñ
              пеÑекÑÑваÑÑимиÑÑ Ð¦Ð Ð¸ ÑÑÑановленнÑм
              Ñлагом sched_load_balance. ÐодÑобней ÑмоÑÑиÑе
              ÐаланÑиÑовка нагÑÑзки планиÑовÑиком
              далее.

       cpuset.sched_relax_domain_level (наÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.26)
              Целое ÑиÑло Ð¾Ñ -1 до неболÑÑого
              положиÑелÑного знаÑÐµÐ½Ð¸Ñ (small positive
              value). ÐелиÑина sched_relax_domain_level ÑпÑавлÑеÑ
              ÑиÑиной диапазона ЦРв коÑоÑом
              планиÑовÑик ÑдÑа непоÑÑедÑÑвенно
              вÑполнÑÐµÑ Ð±Ð°Ð»Ð°Ð½ÑиÑÐ¾Ð²ÐºÑ ÑабоÑаÑÑÐ¸Ñ Ð·Ð°Ð´Ð°Ñ
              на ЦÐ. ÐÑли sched_load_balance вÑклÑÑен, Ñо
              знаÑение sched_relax_domain_level не ÑÑиÑÑваеÑÑÑ,
              Ñак как баланÑиÑовка не вÑполнÑеÑÑÑ.
              ÐÑли sched_load_balance вклÑÑÑн, Ñо Ñем болÑÑе
              велиÑина sched_relax_domain_level, Ñем ÑиÑе
              диапазон ЦÐ, на коÑоÑÑÑ Ð¿ÑÑаеÑÑÑ
              вÑполнÑÑÑÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовка. ÐодÑобней
              ÑмоÑÑиÑе в СÑÐµÐ¿ÐµÐ½Ñ Ð¾ÑÐ»Ð°Ð±Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½Ð°
              планиÑовÑиком далее.

       ÐÑоме показаннÑÑ Ð²ÑÑе пÑевдо-Ñайлов, в
       каждом каÑалоге в /dev/cpuset Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾
       пÑоÑеÑÑа еÑÑÑ Ð¿Ñевдо-Ñайл /proc/<pid>/cpuset, в
       коÑоÑом ÑодеÑжиÑÑÑ Ð¿ÑÑÑ Ðº каÑалогÑ
       пÑоÑеÑÑоÑного набоÑа пÑоÑеÑÑа оÑноÑиÑелÑно
       коÑÐ½Ñ Ñайловой ÑиÑÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑоÑного набоÑа.

       Также в Ñайл /proc/<pid>/status Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾
       пÑоÑеÑÑа Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ ÑеÑÑÑе ÑÑÑоки, оÑÑажаÑÑие
       Cpus_allowed (на ÐºÐ°ÐºÐ¸Ñ Ð¦Ð Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð»Ð°Ð½Ð¸ÑоваÑÑÑÑ
       вÑполнение) и Mems_allowed (на ÐºÐ°ÐºÐ¸Ñ ÑзлаÑ
       памÑÑи Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð¿Ð°Ð¼ÑÑÑ) пÑоÑеÑÑа в двÑÑ
       ÑоÑмаÑаÑ: в виде маÑки и в виде ÑпиÑка
       (ÑмоÑÑиÑе далее). ÐÑимеÑ:

              Cpus_allowed:   ffffffff,ffffffff,ffffffff,ffffffff
              Cpus_allowed_list:     0-127
              Mems_allowed:   ffffffff,ffffffff
              Mems_allowed_list:     0-63

       ÐÐ¾Ð»Ñ Â«allowed» бÑли Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð² Linux 2.6.24; полÑ
       «allowed_list» бÑли Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð² Linux 2.6.26.

ÐÐÐÐÐÐÐТÐÐЬÐЫРÐÐÐÐÐÐÐÐСТÐ
       ÐÑоме конÑÑÐ¾Ð»Ñ cpus и mems Ð´Ð»Ñ Ð¿ÑоÑеÑÑа,
       пÑоÑеÑÑоÑнÑе набоÑÑ Ð¿ÑедоÑÑавлÑÑÑ ÑледÑÑÑие
       дополниÑелÑнÑе возможноÑÑи.

   ÐонополизиÑÑÑÑие пÑоÑеÑÑоÑнÑе набоÑÑ
       ÐÑли пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð¿Ð¾Ð¼ÐµÑен как cpu_exclusive
       или mem_exclusive, Ñо ни один дÑÑгой пÑоÑеÑÑоÑнÑй
       набоÑ, оÑлиÑнÑй Ð¾Ñ Ð¿ÑÑмого пÑедка или
       поÑомка, не Ð¼Ð¾Ð¶ÐµÑ ÑовмеÑÑно иÑполÑзоваÑÑ Ñе
       же ЦРили ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи.

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

   Hardwall
       ÐÑоÑеÑÑоÑнÑй набоÑ, Ñ ÐºÐ¾ÑоÑого ÑÑÑановлен Ñлаг
       mem_exclusive или mem_hardwall ÑÑиÑаеÑÑÑ hardwall.
       ÐÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ hardwall огÑаниÑиваеÑ
       вÑделение памÑÑи ÑдÑом под ÑÑÑаниÑÑ, бÑÑÐµÑ Ð¸
       дÑÑгие даннÑе, ÑаÑÑо иÑполÑзÑемÑе ÑдÑом длÑ
       неÑколÑÐºÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей. ÐÑе пÑоÑеÑÑоÑнÑе
       набоÑÑ, hardwall или неÑ, огÑаниÑиваÑÑ
       вÑделение памÑÑи Ð´Ð»Ñ Ð¿ÑоÑÑÑанÑÑва
       полÑзоваÑелÑ.

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

       ТолÑко маленÑкое колиÑеÑÑво памÑÑи ÑдÑа,
       напÑÐ¸Ð¼ÐµÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов Ð¾Ñ Ð¾Ð±ÑабоÑÑиков
       пÑеÑÑваний, ÑазÑеÑено ÑазмеÑаÑÑ Ð²Ð½Ðµ Ñзлов
       памÑÑи даже в пÑоÑеÑÑоÑном набоÑе hardwall.

   Уведомление об оÑвобождении
       ÐÑли в пÑоÑеÑÑоÑном набоÑе ÑÑÑановлен Ñлаг
       notify_on_release (1), Ñо когда поÑледний пÑоÑеÑÑ Ð²
       пÑоÑеÑÑоÑном набоÑе вÑÑÐ¾Ð´Ð¸Ñ (завеÑÑаеÑÑÑ Ð¸Ð»Ð¸
       пÑикÑеплÑеÑÑÑ Ðº дÑÑÐ³Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ) и
       поÑледний поÑомок ÑÑого пÑоÑеÑÑоÑного
       набоÑа ÑдалÑеÑÑÑ, Ñо ÑдÑо вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
       /sbin/cpuset_release_agent, пеÑÐµÐ´Ð°Ð²Ð°Ñ ÐµÐ¹ пÑÑÑ
       (оÑноÑиÑелÑно ÑоÑки монÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñайловой
       ÑиÑÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑоÑного набоÑа)
       ликвидиÑÑемого пÑоÑеÑÑоÑного набоÑа. ÐÑо
       вклÑÑÐ°ÐµÑ Ð°Ð²ÑомаÑиÑеÑкое Ñдаление
       ликвидиÑÑемÑÑ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов.

       ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ notify_on_release в
       коÑневом пÑоÑеÑÑоÑном набоÑе пÑи запÑÑке
       ÑиÑÑÐµÐ¼Ñ ÑбÑоÑено (0). ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð²
       дÑÑÐ³Ð¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾ÑÐ°Ñ Ð¿Ñи Ñоздании
       Ñавно ÑекÑÑÐµÐ¼Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ notify_on_release иÑ
       пÑедка.

       ÐÑзÑваемой команде /sbin/cpuset_release_agent в argv[1]
       пеÑедаÑÑÑÑ Ð¸Ð¼Ñ (оÑноÑиÑелÑно пÑÑи /dev/cpuset)
       оÑвобождаемого пÑоÑеÑÑоÑного набоÑа.

       ÐбÑÑно, команда /sbin/cpuset_release_agent â пÑоÑÑой
       ÑÑенаÑий оболоÑки:

           #!/bin/sh
           rmdir /dev/cpuset/$1

       ÐÐ»Ñ ÑбÑоÑа и ÑÑÑановки, как и дÑÑÐ³Ð¸Ñ Ñлагов,
       ÑÑÐ¾Ñ Ñлаг можно измениÑÑ, запиÑав в Ñайл
       ASCII-Ð½Ð¾Ð¼ÐµÑ 0 или 1 (Ñ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑм Ñимволом
       новой ÑÑÑоки в конÑе), ÑооÑвеÑÑÑвенно.

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

       ÐÑо позволÑÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑам заданий,
       оÑÑлеживаÑÑим заданиÑ, вÑполнÑемÑе на
       оÑделÑнÑÑ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾ÑаÑ, ÑÑÑекÑивно
       опÑеделÑÑÑ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð½Ð°Ð³ÑÑзки на памÑÑÑ, коÑоÑÑÑ
       вÑзÑÐ²Ð°ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ðµ.

       ÐÑо полезно как в жÑÑÑко конÑÑолиÑÑемÑÑ
       ÑиÑÑемаÑ, вÑполнÑÑÑÐ¸Ñ ÑовеÑÑенно ÑазнÑе
       поÑÑавленнÑе заданиÑ, коÑоÑÑе пÑи попÑÑке
       иÑполÑзоваÑÑ Ð±Ð¾Ð»ÑÑе памÑÑи, Ñем ÑазÑеÑено на
       назнаÑеннÑÑ Ð¸Ð¼ Ñзлам, могÑÑ Ð²ÑбиÑаÑÑ â
       завеÑÑиÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ðµ или измениÑÑ ÐµÐ³Ð¾
       пÑиоÑиÑеÑ, Ñак и Ð´Ð»Ñ ÑеÑно ÑвÑзаннÑÑ,
       непÑеÑÑвнÑÑ, ÑаÑпаÑаллеленнÑÑ Ð½Ð°ÑÑнÑÑ
       вÑÑиÑлиÑелÑнÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹, коÑоÑÑе
       каÑаÑÑÑоÑиÑеÑки ÑеÑÑÑÑ Ð² пÑоизводиÑелÑноÑÑи,
       еÑли наÑинаÑÑ Ð¸ÑполÑзоваÑÑ Ð±Ð¾Ð»ÑÑе памÑÑи, Ñем
       им позволено.

       ÐаннÑй меÑанизм пÑедоÑÑавлÑÐµÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑам
       заданий оÑÐµÐ½Ñ ÑкономиÑнÑй ÑпоÑоб длÑ
       обнаÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¿Ñизнаков нагÑÑзки на памÑÑÑ.
       ÐадаÑа менеджеÑа заданий или дÑÑгого
       полÑзоваÑелÑÑкого кода ÑеÑиÑÑ, какие меÑÑ
       пÑинÑÑÑ Ð² ÑлÑÑае обнаÑÑÐ¶ÐµÐ½Ð¸Ñ Ð½Ð°Ð³ÑÑзки на
       памÑÑÑ.

       ÐÑли вÑÑиÑление нагÑÑзки памÑÑи не вклÑÑено
       в пÑевдо-Ñайле /dev/cpuset/cpuset.memory_pressure_enabled,
       Ñо она не вÑÑиÑлÑеÑÑÑ Ð´Ð»Ñ Ð²ÑÐµÑ Ð¿ÑоÑеÑÑоÑнÑÑ
       набоÑов, и ÑÑение из лÑбого Ñайла memory_pressure
       вÑегда возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð»Ñ Ð² виде ÑÑÑоки ASCII
       «0\n». СмоÑÑиÑе Ñаздел ÐÐ ÐÐУÐÐ ÐÐÐÐÐÐЯ далее.

       ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ пÑоÑеÑÑоÑного набоÑа ÑколÑзÑÑее
       ÑÑеднее (running average) иÑполÑзÑеÑÑÑ Ð¿Ð¾ ÑледÑÑÑим
       пÑиÑинам:

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

       *  ÐоÑколÑÐºÑ Ð¸Ð·Ð¼ÐµÑÑеÑÑÑ ÑколÑзÑÑее ÑÑеднее, а
          не накопиÑелÑнÑй ÑÑÑÑÑик, пакеÑнÑй
          планиÑовÑик Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±Ð½Ð°ÑÑжиÑÑ Ð½Ð°Ð³ÑÑзкÑ
          памÑÑи за одно ÑÑение, а не ÑиÑаÑÑ Ð¸
          накапливаÑÑ ÑезÑлÑÑаÑÑ Ð·Ð° пеÑиод вÑемени.

       *  ÐоÑколÑÐºÑ Ð¸Ð·Ð¼ÐµÑение пÑоводиÑÑÑ Ð¿Ð¾ каждомÑ
          пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ, а не по каждомÑ
          пÑоÑеÑÑÑ, пакеÑнÑй планиÑовÑик можеÑ
          полÑÑиÑÑ ÐºÐ»ÑÑевÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ â нагÑÑзкÑ
          памÑÑи в пÑоÑеÑÑоÑном набоÑе â за однÑ
          опеÑаÑÐ¸Ñ ÑÑениÑ, а не вÑполнÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¸ не
          Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°Ñ ÑезÑлÑÑаÑÑ Ð¿Ð¾ вÑемÑ
          (динамиÑеÑки изменÑÑÑемÑÑÑ) набоÑÑ
          пÑоÑеÑÑов в пÑоÑеÑÑоÑном набоÑе.

       ÐнаÑение memory_pressure Ð´Ð»Ñ Ð¿ÑоÑеÑÑоÑного набоÑа
       вÑÑиÑлÑеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¸Ð½Ð´Ð¸Ð²Ð¸Ð´ÑалÑного
       пÑоÑÑого ÑиÑÑового ÑилÑÑÑа, коÑоÑÑй ÑÑаниÑÑÑ Ð²
       ÑдÑе. ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ пÑоÑеÑÑоÑного набоÑа ÑÑоÑ
       ÑилÑÑÑ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÑ Ð½ÐµÐ´Ð°Ð²Ð½Ð¸Ð¹ ÑÑовенÑ, Ñ
       коÑоÑÑм пÑоÑеÑÑÑ, пÑикÑеплÑннÑе к ÑÑомÑ
       пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ, иÑполÑзовали код
       непоÑÑедÑÑвенного оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÑдÑом (kernel
       direct reclaim code).

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

       Файл cpuset.memory_pressure ÑодеÑÐ¶Ð¸Ñ Ñелое ÑиÑло,
       пÑедÑÑавлÑÑÑее недавний (пеÑиод Ñпада
       (half-life) за 10 ÑекÑнд) ÑÑÐ¾Ð²ÐµÐ½Ñ Ð·Ð°Ð¿Ð¸Ñей в код
       непоÑÑедÑÑвенного оÑвобождениÑ, вÑзваннÑй
       лÑбÑм пÑоÑеÑÑом в пÑоÑеÑÑоÑном набоÑе,
       вÑÑажаемÑй в колиÑеÑÑве оÑвобождений в
       ÑекÑндÑ, Ñмноженном на 1000.

   РаÑпÑоÑÑÑанение в памÑÑи
       ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ пÑоÑеÑÑоÑного набоÑа еÑÑÑ Ð´Ð²Ð°
       Ñайла â логиÑеÑÐºÐ¸Ñ Ñлага, коÑоÑÑе ÑпÑавлÑÑÑ
       меÑÑом, где ÑдÑо вÑделÑÐµÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ð±ÑÑеÑов
       Ñайловой ÑиÑÑÐµÐ¼Ñ Ð¸ дÑÑÐ³Ð¸Ñ ÑÑÑÑкÑÑÑ Ð´Ð°Ð½Ð½ÑÑ ÑдÑа.
       Ðни назÑваÑÑÑÑ cpuset.memory_spread_page и
       cpuset.memory_spread_slab.

       ÐÑли ÑÑÑановлен индивидÑалÑнÑй логиÑеÑкий
       Ñлаг-Ñайл cpuset.memory_spread_page, Ñо ÑдÑо бÑдеÑ
       ÑаÑпÑоÑÑÑанÑÑÑ Ð±ÑÑеÑÑ Ñайловой ÑиÑÑемÑ
       (ÑÑÑаниÑнÑй кÑÑ) поÑледоваÑелÑно по вÑем
       Ñзлам, коÑоÑÑе ÑазÑеÑено иÑполÑзоваÑÑ
       пÑоÑеÑÑÑ, а не ÑаÑполагаÑÑ ÑÑи ÑÑÑаниÑÑ Ð½Ð° Ñзле,
       на коÑоÑом вÑполнÑеÑÑÑ Ð¿ÑоÑеÑÑ.

       ÐÑли ÑÑÑановлен индивидÑалÑнÑй логиÑеÑкий
       Ñлаг-Ñайл cpuset.memory_spread_slab, Ñо ÑдÑо бÑдеÑ
       ÑаÑпÑоÑÑÑанÑÑÑ slab-кÑÑи Ñайловой ÑиÑÑемÑ,
       напÑимеÑ, Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей inode и каÑалогов,
       поÑледоваÑелÑно по вÑем Ñзлам, коÑоÑÑе
       ÑазÑеÑено иÑполÑзоваÑÑ Ð¿ÑоÑеÑÑÑ, а не
       ÑаÑполагаÑÑ ÑÑи ÑÑÑаниÑÑ Ð½Ð° Ñзле, на коÑоÑом
       вÑполнÑеÑÑÑ Ð¿ÑоÑеÑÑ.

       УÑÑановка ÑÑÐ¸Ñ Ñлагов не влиÑÐµÑ Ð½Ð° ÑÑÑаниÑÑ
       ÑегменÑа даннÑÑ (ÑмоÑÑиÑе brk(2)) или ÑÑека
       пÑоÑеÑÑа.

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

       ÐÑи Ñоздании нового пÑоÑеÑÑоÑного набоÑа
       он наÑледÑÐµÑ Ð¿Ð°ÑамеÑÑÑ ÑаÑпÑоÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð²
       памÑÑи Ñвоего ÑодиÑелÑ.

       Ðз-за наÑÑÑойки ÑаÑпÑоÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² памÑÑи пÑи
       вÑделении ÑÑÑÐ°Ð½Ð¸Ñ Ð¸Ð»Ð¸ кÑÑей slab пÑоиÑÑодиÑ
       игноÑиÑование полиÑики памÑÑи NUMA пÑоÑеÑÑа
       и задейÑÑвÑеÑÑÑ ÑаÑпÑоÑÑÑанение. Ðднако, ÑÑÑекÑ
       ÑÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ по ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² памÑÑи,
       вÑзваннÑй ÑказаннÑм в пÑоÑеÑÑоÑном набоÑе
       ÑаÑпÑоÑÑÑанением в памÑÑи ÑкÑÑÑ, Ð¾Ñ Ð²Ñзовов
       mbind(2) или set_mempolicy(2). ÐÑи ÑабоÑе Ñ Ð´Ð°Ð½Ð½Ñми
       вÑзовами полиÑики памÑÑи NUMA кажеÑÑÑ, ÑÑо
       они вÑегда ведÑÑ ÑÐµÐ±Ñ ÐºÐ°Ðº-бÑдÑо
       ÑаÑпÑоÑÑÑанение в памÑÑи ÑоглаÑно
       пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ Ð½Ðµ дейÑÑвÑеÑ, даже еÑли
       ÑÑо не Ñак. ÐÑли ÑаÑпÑоÑÑÑанение в памÑÑи
       ÑоглаÑно пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ Ð·Ð°Ñем вÑклÑÑиÑÑ,
       Ñо авÑомаÑиÑеÑки повÑоÑно пÑимениÑÑÑ
       полиÑика памÑÑи NUMA, Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ ÑÑими
       вÑзовами поÑледней.

       Ð¤Ð°Ð¹Ð»Ñ cpuset.memory_spread_page и cpuset.memory_spread_slab
       ÑÑанÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкий Ñлаг. Ðо ÑмолÑаниÑ, они
       ÑодеÑÐ¶Ð°Ñ Â«0»; ÑÑо ознаÑаеÑ, ÑÑо данное
       ÑвойÑÑво в пÑоÑеÑÑоÑном набоÑе вÑклÑÑено.
       ÐÑли в Ñайл запиÑаÑÑ Â«1», Ñо ÑÑо вклÑÑиÑ
       данное ÑвойÑÑво.

       РаÑпÑоÑÑÑанение в памÑÑи, Ñказанное в
       пÑоÑеÑÑоÑном набоÑе, поÑоже (в дÑÑгиÑ
       конÑекÑÑаÑ) на ÑиклиÑеÑкий алгоÑиÑм или
       ÑазмеÑение памÑÑи ÑеÑедованием.

       РаÑпÑоÑÑÑанение в памÑÑи, Ñказанное в
       пÑоÑеÑÑоÑном набоÑе, Ð¼Ð¾Ð¶ÐµÑ ÑÑÑеÑÑвенно
       повÑÑиÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹,
       коÑоÑÑм:

       1. ÐеобÑодимо ÑазмеÑÑиÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑе даннÑе
          ниÑи в ÑÐ·Ð»Ð°Ñ Ð¿Ð°Ð¼ÑÑи близко к ЦÐ, на коÑоÑÑÑ
          вÑполнÑÑÑÑÑ Ð½Ð¸Ñи, Ñо еÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ
          наиболее воÑÑÑебованнÑе даннÑе;

       2. ÐеобÑодим доÑÑÑп к набоÑам даннÑÑ Ð±Ð¾Ð»ÑÑиÑ
          ÑайловÑÑ ÑиÑÑем, коÑоÑÑе из-за ÑазмеÑа
          нÑжно ÑазмеÑÑиÑÑ Ð½Ð° неÑколÑÐºÐ¸Ñ ÑзлаÑ
          пÑоÑеÑÑоÑного набоÑа заданиÑ.

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

   ÐеÑÐµÐ½Ð¾Ñ Ð¿Ð°Ð¼ÑÑи
       ÐбÑÑно, пÑи наÑÑÑойке cpuset.memory_migrate по
       ÑмолÑÐ°Ð½Ð¸Ñ (вÑклÑÑена) как ÑолÑко ÑÑÑаниÑа
       вÑделена (полÑÑена ÑизиÑеÑÐºÐ°Ñ ÑÑÑаниÑа в
       оÑновной памÑÑи), она оÑÑаÑÑÑÑ Ð½Ð° Ñзле, на
       коÑоÑом вÑделена до ÑÐµÑ Ð¿Ð¾Ñ, пока оÑÑаÑÑÑÑ
       вÑделенной, даже еÑли в далÑнейÑем
       изменÑеÑÑÑ Ð¿Ð¾Ð»Ð¸Ñика пÑоÑеÑÑоÑного набоÑа mems
       по ÑазмеÑÐµÐ½Ð¸Ñ Ð² памÑÑи.

       ÐÑи вклÑÑÑнном пеÑеноÑе памÑÑи в пÑоÑеÑÑоÑном
       набоÑе, еÑли знаÑение mems в пÑоÑеÑÑоÑном
       набоÑе изменÑеÑÑÑ, Ñо еÑли ÑÑÑаниÑа памÑÑи,
       иÑполÑзÑÐµÐ¼Ð°Ñ Ð»ÑбÑм пÑоÑеÑÑом в пÑоÑеÑÑоÑном
       набоÑе, ÑÑановиÑÑÑ ÑаÑположенной в
       запÑеÑÑнном Ñзле, Ñо ÑÑа ÑÑÑаниÑа пеÑемеÑаеÑÑÑ
       в ÑазÑеÑÑннÑй Ñзел памÑÑи.

       Также, еÑли пÑоÑеÑÑ Ð¿ÐµÑемеÑаеÑÑÑ Ð²
       пÑоÑеÑÑоÑнÑй набоÑ, Ñ ÐºÐ¾ÑоÑого вклÑÑен
       memory_migrate, Ñо вÑе ÑÑÑаниÑÑ Ð¿Ð°Ð¼ÑÑи, коÑоÑÑе он
       иÑполÑзÑÐµÑ Ð² ÑÐ·Ð»Ð°Ñ Ð¿Ð°Ð¼ÑÑи пÑедÑдÑÑего
       пÑоÑеÑÑоÑного набоÑа, но коÑоÑÑе запÑеÑÐµÐ½Ñ Ð²
       новом пÑоÑеÑÑоÑном набоÑе, бÑдÑÑ Ð¿ÐµÑемеÑенÑ
       на Ñзел памÑÑи, ÑазÑеÑÑннÑй в новом
       пÑоÑеÑÑоÑном набоÑе.

       ÐÑли возможно, пÑи опеÑаÑии пеÑемеÑениÑ
       оÑноÑиÑелÑное ÑазмеÑение пеÑемеÑаемÑÑ
       ÑÑÑÐ°Ð½Ð¸Ñ Ð² пÑоÑеÑÑоÑном набоÑе ÑоÑÑанÑеÑÑÑ.
       ÐапÑимеÑ, еÑли ÑÑÑаниÑа бÑла на вÑоÑом
       ÑазÑеÑÑнном Ñзле в пÑедÑдÑÑем пÑоÑеÑÑоÑном
       набоÑе, Ñо ÑÑÑаниÑа бÑÐ´ÐµÑ Ð¿Ð¾Ð¼ÐµÑена на вÑоÑой
       допÑÑÑимÑй Ñзел нового пÑоÑеÑÑоÑном набоÑе,
       еÑли возможно.

   ÐаланÑиÑовка нагÑÑзки планиÑовÑиком
       ÐланиÑовÑик ÑдÑа авÑомаÑиÑеÑки баланÑиÑÑеÑ
       нагÑÑзкÑ, вÑзÑваемÑÑ Ð¿ÑоÑеÑÑами. ÐÑли один ЦÐ
       недозагÑÑжен, Ñо ÑдÑо бÑÐ´ÐµÑ Ð¸ÑкаÑÑ Ð¿ÑоÑеÑÑÑ Ð½Ð°
       дÑÑгиÑ, более загÑÑженнÑÑ Ð¦Ð Ð¸ пеÑемеÑÑиÑ
       пÑоÑеÑÑÑ Ð½Ð° недозагÑÑженнÑй ЦÐ, Ñ ÑÑÑÑом
       огÑаниÑений меÑанизмов ÑазмеÑÐµÐ½Ð¸Ñ Ð²
       пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾ÑÐ°Ñ Ð¸ sched_setaffinity(2).

       ТÑаÑÑ Ð½Ð° алгоÑиÑм баланÑиÑовки нагÑÑзки и
       его влиÑние на оÑновнÑе ÑовмеÑÑно
       иÑполÑзÑемÑе ÑÑÑÑкÑÑÑÑ Ð´Ð°Ð½Ð½ÑÑ ÑдÑа, Ñакие как
       ÑпиÑок пÑоÑеÑÑов, Ñ ÑоÑÑом баланÑиÑÑемÑÑ Ð¦Ð
       ÑвелиÑиваÑÑÑÑ Ð±Ð¾Ð»ÑÑе, Ñем линейно. ÐапÑимеÑ,
       заÑÑаÑÑ Ð½Ð° него болÑÑе пÑи баланÑиÑовке
       нагÑÑзке в одном болÑÑом набоÑе ЦÐ, Ñем
       Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ Ð¼Ð°Ð»ÐµÐ½Ñкими набоÑами ЦÐ, каждÑй
       из коÑоÑÑÑ Ñавен половине ÑазмеÑа болÑÑего
       набоÑа (ÑоÑное оÑноÑение Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом
       баланÑиÑÑемÑÑ Ð¦Ð Ð¸ заÑÑаÑами на баланÑиÑовкÑ
       завиÑÐ¸Ñ Ð¾Ñ Ð´ÐµÑалей ÑеализаÑии пÑоÑеÑÑа
       планиÑовÑика ÑдÑа, коÑоÑÑй изменÑеÑÑÑ Ñо
       вÑеменем, ÑлÑÑÑаÑÑÑ Ð¿Ð¾ меÑе ÑеализаÑии в ÑдÑе
       ÑÑÑекÑивнÑÑ Ð°Ð»Ð³Ð¾ÑиÑмов планиÑованиÑ).

       ÐндивидÑалÑнÑй Ñлаг sched_load_balance
       пÑедоÑÑавлÑÐµÑ Ð¼ÐµÑанизм Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ð²Ð»ÐµÐ½Ð¸Ñ
       ÑÑого авÑомаÑиÑеÑкого планиÑовÑика
       баланÑиÑовки нагÑÑзки в ÑлÑÑае когда он не
       ÑÑебÑеÑÑÑ Ð¸ его вÑклÑÑение пÑинеÑло Ð±Ñ Ð±Ð¾Ð»ÑÑе
       вÑÐ³Ð¾Ð´Ñ Ð´Ð»Ñ Ð¿ÑоизводиÑелÑноÑÑи.

       Ðо ÑмолÑаниÑ, баланÑиÑовка нагÑÑзки
       вÑполнÑеÑÑÑ Ð½Ð° вÑÐµÑ Ð¦Ð, за иÑклÑÑением
       оÑмеÑеннÑÑ ÐºÐ°Ðº изолиÑованнÑе пÑи запÑÑке
       ÑдÑа Ñ Ð°ÑгÑменÑом «isolcpus=» (ÑмоÑÑиÑе СÑепенÑ
       оÑÐ»Ð°Ð±Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½Ð° планиÑовÑиком далее
       Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑого знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ).

       Ðанное поведение баланÑиÑовка нагÑÑзки
       по ÑмолÑаниÑ, вÑполнÑемое на вÑÐµÑ Ð¦Ð, не
       подÑÐ¾Ð´Ð¸Ñ Ð² двÑÑ ÑледÑÑÑÐ¸Ñ ÑлÑÑаÑÑ:

       *  Ðа болÑÑÐ¸Ñ ÑиÑÑÐµÐ¼Ð°Ñ Ð±Ð°Ð»Ð°Ð½ÑиÑовка нагÑÑзки
          на Ð¼Ð½Ð¾Ð³Ð¸Ñ Ð¦Ð Ð·Ð°ÑÑаÑна. ÐÑли ÑиÑÑема
          ÑпÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов длÑ
          ÑазмеÑÐµÐ½Ð¸Ñ Ð½ÐµÐ·Ð°Ð²Ð¸ÑимÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹ на
          оÑделÑнÑÑ Ð½Ð°Ð±Ð¾ÑÐ°Ñ Ð¦Ð, Ñо полнаÑ
          баланÑиÑовка нагÑÑзки необÑзаÑелÑна.

       *  Ð ÑиÑÑемаÑ, поддеÑживаÑÑÐ¸Ñ Ð²Ñполнение в
          ÑеалÑном вÑемени на некоÑоÑÑÑ Ð¦Ð, ÑÑебÑÑÑÑÑ
          минималÑнÑе издеÑжки на ÑиÑÑемнÑе
          опеÑаÑии на ÑÑÐ¸Ñ Ð¦Ð, вклÑÑÐ°Ñ Ð·Ð°Ð¿ÑеÑение
          пÑоÑеÑÑа баланÑиÑовки нагÑÑзки, еÑли он
          не нÑжен.

       Ðогда индивидÑалÑнÑй Ñлаг sched_load_balance
       ÑÑÑановлен (по ÑмолÑаниÑ), запÑаÑиваеÑÑÑ
       баланÑиÑовка нагÑÑзки на вÑÐµÑ ÑазÑеÑÑннÑÑ Ð¦Ð
       в ÑÑом пÑоÑеÑÑоÑном набоÑе, пÑи баланÑиÑовке
       нагÑÑзки Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð¿ÐµÑемеÑение
       пÑоÑеÑÑа (еÑли он не пÑивÑзан Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
       sched_setaffinity(2)) Ñ Ð»Ñбого ЦРв ÑÑом пÑоÑеÑÑоÑном
       набоÑе на дÑÑгой ЦÐ.

       Ðогда индивидÑалÑнÑй Ñлаг sched_load_balance
       ÑбÑоÑен, планиÑовÑик не бÑÐ´ÐµÑ Ð±Ð°Ð»Ð°Ð½ÑиÑоваÑÑ
       нагÑÑÐ·ÐºÑ Ð¿Ð¾ ЦРв ÑÑом пÑоÑеÑÑоÑном набоÑе,
       пока ÑÑо не ÑÑÐ°Ð½ÐµÑ Ð½ÐµÐ¾Ð±ÑодимÑм из-за
       какого-Ñо пеÑекÑÑваÑÑегоÑÑ Ð¿ÑоÑеÑÑоÑного
       набоÑа Ñ Ð²ÐºÐ»ÑÑÑннÑм sched_load_balance.

       Так, напÑимеÑ, еÑли веÑÑний пÑоÑеÑÑоÑнÑй
       Ð½Ð°Ð±Ð¾Ñ Ð¸Ð¼ÐµÐµÑ ÑÑÑановленнÑй Ñлаг sched_load_balance,
       Ñо планиÑовÑик бÑÐ´ÐµÑ Ð²ÑполнÑÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовкÑ
       нагÑÑзки на вÑÐµÑ Ð¦Ð, и знаÑение Ñлага
       sched_load_balance дÑÑÐ³Ð¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов не
       ÑÑиÑÑваеÑÑÑ, Ñак как Ñже вклÑÑена полнаÑ
       баланÑиÑовка нагÑÑзки.

       ÐоÑÑÐ¾Ð¼Ñ Ð² двÑÑ Ð¿ÑиведÑннÑÑ Ð²ÑÑе ÑиÑÑаÑиÑÑ Ñлаг
       sched_load_balance должен бÑÑÑ ÑбÑоÑен Ñ Ð²ÐµÑÑнего
       пÑоÑеÑÑоÑного набоÑа, и его нÑжно
       ÑÑÑанавливаÑÑ ÑолÑко на оÑделÑнÑÑ Ð´Ð¾ÑеÑниÑ
       пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾ÑаÑ.

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

       ÐонеÑно, пÑоÑеÑÑÑ, пÑикÑеплÑннÑе к
       опÑеделÑÐ½Ð½Ð¾Ð¼Ñ Ð¦Ð, могÑÑ Ð¾ÑÑаваÑÑÑÑ Ð²
       пÑоÑеÑÑоÑном набоÑе Ñ Ð²ÑклÑÑеннÑм
       sched_load_balance, поÑколÑÐºÑ Ñакие пÑоÑеÑÑÑ Ð½Ð¸ÐºÑда
       не пеÑемеÑÑÑÑÑÑ Ð² лÑбом ÑлÑÑае.

   СÑÐµÐ¿ÐµÐ½Ñ Ð¾ÑÐ»Ð°Ð±Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½Ð° планиÑовÑиком
       ÐланиÑовÑик ÑдÑа безоÑлагаÑелÑно (immediate)
       вÑполнÑÐµÑ Ð±Ð°Ð»Ð°Ð½ÑиÑÐ¾Ð²ÐºÑ Ð½Ð°Ð³ÑÑзки как ÑолÑко
       ЦРÑÑановиÑÑÑ ÑвободнÑм или еÑÑ Ð¾Ð´Ð½Ð° задаÑа
       ÑÑановиÑÑÑ Ð²ÑполнÑемой. Ð¢Ð°ÐºÐ°Ñ Ð±Ð°Ð»Ð°Ð½ÑиÑовка
       нагÑÑзки ÑабоÑÐ°ÐµÑ ÑÑÐ¾Ð±Ñ Ð³Ð°ÑанÑиÑоваÑÑ, ÑÑо вÑе
       возможнÑе ЦРзанÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾Ð¹ ÑабоÑой по
       вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ñ. Также ÑдÑо вÑполнÑеÑ
       пеÑиодиÑеÑкÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑÐ¾Ð²ÐºÑ Ð½Ð°Ð³ÑÑзки по
       пÑогÑаммнÑм ÑаÑам, опиÑаннÑм в time(7).
       ÐнаÑение sched_relax_domain_level пÑименÑеÑÑÑ ÑолÑко к
       безоÑлагаÑелÑной баланÑиÑовке нагÑÑзки.
       ÐезавиÑимо Ð¾Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ sched_relax_domain_level
       пеÑиодиÑеÑÐºÐ°Ñ Ð±Ð°Ð»Ð°Ð½ÑиÑовка нагÑÑзки
       пÑÑаеÑÑÑ ÑабоÑаÑÑ Ð½Ð° вÑÐµÑ Ð¦Ð (еÑли она не
       вÑклÑÑена в sched_load_balance). РлÑбом ÑлÑÑае,
       задаÑи бÑдÑÑ Ð·Ð°Ð¿Ð»Ð°Ð½Ð¸ÑÐ¾Ð²Ð°Ð½Ñ Ðº вÑполнениÑ
       ÑолÑко на ÑазÑеÑÑннÑÑ Ð¦Ð Ð² Ð¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ
       набоÑаÑ, коÑоÑÑе наÑÑÑаиваÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
       ÑиÑÑемнÑÑ Ð²Ñзовов sched_setaffinity(2).

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

       ТоÑнÑе знаÑÐµÐ½Ð¸Ñ Ð¼Ð°Ð»ÐµÐ½ÑÐºÐ¸Ñ ÑелÑÑ Ð·Ð½Ð°Ñений
       sched_relax_domain_level бÑÐ´ÐµÑ Ð·Ð°Ð²Ð¸ÑеÑÑ Ð¾Ñ Ð²Ð½ÑÑÑенней
       ÑеализаÑии кода планиÑовÑика ÑдÑа и
       неодноÑодноÑÑи аÑÑиÑекÑÑÑÑ Ð°Ð¿Ð¿Ð°ÑаÑнÑÑ ÑÑедÑÑв.
       Ðба из Ð½Ð¸Ñ Ð¿Ð¾ÑÑоÑнно ÑазвиваÑÑÑÑ Ð¸ ÑазлиÑаÑÑÑÑ
       в ÑазнÑÑ Ð²ÐµÑÑиÑÑ ÑдÑа и аÑÑиÑекÑÑÑÐ°Ñ ÑиÑÑемÑ.

       Ðа Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð³Ð´Ð° ÑÑо ÑвойÑÑво
       поÑвилоÑÑ Ð² Linux 2.6.26, на опÑеделÑннÑÑ
       попÑлÑÑнÑÑ Ð°ÑÑиÑекÑÑÑÐ°Ñ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑе
       знаÑÐµÐ½Ð¸Ñ sched_relax_domain_level бÑли Ñакими:

       (1) ÐÑполнÑÑÑ Ð±ÐµÐ·Ð¾ÑлагаÑелÑнÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовкÑ
           нагÑÑзки на одноÑÑовневÑÑ Ð¿Ð¾ÑокаÑ
           Hyper-Thread одного ÑдÑа.
       (2) ÐÑполнÑÑÑ Ð±ÐµÐ·Ð¾ÑлагаÑелÑнÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовкÑ
           нагÑÑзки на дÑÑÐ³Ð¸Ñ ÑдÑÐ°Ñ Ñого же пакеÑа.
       (3) ÐÑполнÑÑÑ Ð±ÐµÐ·Ð¾ÑлагаÑелÑнÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовкÑ
           нагÑÑзки на дÑÑÐ³Ð¸Ñ Ð¦Ð Ð² Ñом же Ñзле или
           лезвии.
       (4) ÐÑполнÑÑÑ Ð±ÐµÐ·Ð¾ÑлагаÑелÑнÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовкÑ
           нагÑÑзки на неÑколÑÐºÐ¸Ñ (завиÑÐ¸Ñ Ð¾Ñ
           ÑеализаÑии) ÑÐ·Ð»Ð°Ñ (в ÑиÑÑÐµÐ¼Ð°Ñ Ñ NUMA).
       (5) ÐÑполнÑÑÑ Ð±ÐµÐ·Ð¾ÑлагаÑелÑнÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовкÑ
           нагÑÑзки на вÑÐµÑ Ð¦Ð ÑиÑÑÐµÐ¼Ñ (в ÑиÑÑÐµÐ¼Ð°Ñ Ñ NUMA).

       ÐнаÑение sched_relax_domain_level Ñавное нÑÐ»Ñ (0)
       вÑегда ознаÑÐ°ÐµÑ Ð¾ÑклÑÑение
       безоÑлагаÑелÑной баланÑиÑовки нагÑÑзки,
       Ñо еÑÑÑ Ð±Ð°Ð»Ð°Ð½ÑиÑовка нагÑÑзки вÑполнÑеÑÑÑ
       ÑолÑко пеÑиодиÑеÑки, а не ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле Ñого,
       как ЦРÑÑановиÑÑÑ Ð´Ð¾ÑÑÑпнÑм или дÑÑÐ³Ð°Ñ Ð·Ð°Ð´Ð°Ñа
       ÑÑановиÑÑÑ Ð²ÑполнÑемой.

       ÐнаÑение sched_relax_domain_level Ñавное минÑÑ
       Ð¾Ð´Ð½Ð¾Ð¼Ñ (-1) вÑегда ознаÑÐ°ÐµÑ Ð¸ÑполÑзование
       ÑиÑÑемного знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. СиÑÑемное
       знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ ÑазлиÑаÑÑÑÑ Ð½Ð°
       ÑазнÑÑ Ð°ÑÑиÑекÑÑÑÐ°Ñ Ð¸ веÑÑиÑÑ ÑдÑа. Ðго можно
       измениÑÑ ÑеÑез аÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð³ÑÑзки
       ÑдÑа «relax_domain_level=».

       ÐÑи налиÑии неÑколÑÐºÐ¸Ñ Ð¿ÐµÑекÑÑваÑÑиÑÑÑ
       пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов, коÑоÑÑе имеÑÑ
       конÑликÑÑÑÑие знаÑÐµÐ½Ð¸Ñ sched_relax_domain_level, во
       вÑÐµÑ Ð¿ÐµÑекÑÑваÑÑиÑÑÑ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾ÑÐ°Ñ Ð½Ð°
       вÑÐµÑ Ð¦Ð Ð¿ÑименÑеÑÑÑ Ñамое болÑÑое знаÑение. Ð
       ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð·Ð½Ð°Ñение минÑÑ Ð¾Ð´Ð¸Ð½ (-1) ÑÑиÑаеÑÑÑ
       ÑамÑм маленÑким, заменÑеÑÑÑ Ð»ÑбÑм
       знаÑением, а знаÑение Ð½Ð¾Ð»Ñ (0) ÑвлÑеÑÑÑ
       ÑледÑÑÑим ÑамÑм маленÑким знаÑением.

ФÐÐ ÐÐТЫ
       ÐÐ»Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð±Ð¾Ñов ЦРи Ñзлов памÑÑи
       иÑполÑзÑÑÑÑÑ ÑледÑÑÑие ÑоÑмаÑÑ:

   Рвиде маÑки
       ФоÑÐ¼Ð°Ñ Ð² виде маÑки иÑполÑзÑеÑÑÑ Ð´Ð»Ñ
       пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¦Ð Ð¸ Ñзлов памÑÑи в виде
       маÑки биÑов в Ñайле /proc/<pid>/status.

       ÐаннÑй ÑоÑÐ¼Ð°Ñ Ð¾ÑобÑÐ°Ð¶Ð°ÐµÑ ÐºÐ°Ð¶Ð´Ð¾Ðµ 32-биÑное
       Ñлово в ÑеÑÑнадÑаÑеÑиÑной ÑоÑме (иÑполÑзÑÑ
       ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ASCII «0»-«9» и «a»-«f»); еÑли нÑжно,
       Ñлова дополнÑÑÑÑÑ Ð²ÐµÐ´ÑÑими нÑлÑми. ÐÐ»Ñ Ð¼Ð°Ñок
       длиннее Ñлова Ð¼ÐµÐ¶Ð´Ñ Ñловами иÑполÑзÑеÑÑÑ
       ÑазделиÑÐµÐ»Ñ Ð·Ð°Ð¿ÑÑаÑ. Слова оÑобÑажаÑÑÑÑ Ð²
       поÑÑдке Ð¾Ñ ÑÑаÑÑего к младÑемÑ, Ñо еÑÑÑ Ð¿ÐµÑвÑм
       ÑÑÐ¾Ð¸Ñ ÑамÑй знаÑимÑй биÑ. ШеÑÑнадÑаÑеÑиÑнÑе
       ÑиÑÑÑ Ð² Ñлове Ñакже ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ñ Ð² поÑÑдке оÑ
       ÑÑаÑÑего к младÑемÑ.

       ÐинималÑное колиÑеÑÑво оÑобÑажаемÑÑ
       32-биÑнÑÑ Ñлов подбиÑаеÑÑÑ Ñаким обÑазом,
       ÑÑÐ¾Ð±Ñ Ð²Ð¼ÐµÑÑиÑÑ Ð²Ñе биÑÑ Ð¼Ð°Ñки, Ñо еÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ
       ÑазмеÑа биÑовой маÑки.

       ÐÑимеÑÑ ÑоÑмаÑа в виде маÑки:

              00000001                        # ÑÑÑановлен ÑолÑко Ð±Ð¸Ñ 0
              40000000,00000000,00000000      # ÑÑÑановлен ÑолÑко Ð±Ð¸Ñ 94
              00000001,00000000,00000000      # ÑÑÑановлен ÑолÑко Ð±Ð¸Ñ 64
              000000ff,00000000               # ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±Ð¸ÑÑ 32-39
              00000000,000e3862               # ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ 1,5,6,11-13,17-19

       ÐаÑка Ñ ÑÑÑановленнÑми биÑами 0, 1, 2, 4, 8, 16, 32
       и 64 вÑглÑÐ´Ð¸Ñ Ñак:

              00000001,00000001,00010117

       ÐеÑÐ²Ð°Ñ Â«1» Ð´Ð»Ñ Ð±Ð¸Ñа 64, вÑоÑÐ°Ñ â Ð´Ð»Ñ Ð±Ð¸Ñа 32, ÑÑеÑÑÑ
       â Ð´Ð»Ñ 16, ÑеÑвÑÑÑÐ°Ñ â Ð´Ð»Ñ 8, пÑÑÐ°Ñ â Ð´Ð»Ñ 4 и «7» â длÑ
       биÑов 2, 1 и 0.

   Рвиде ÑпиÑка
       ФоÑÐ¼Ð°Ñ Ð² виде ÑпиÑка â ÑÑо ÑпиÑок деÑÑÑиÑнÑÑ
       ASCII знаÑений cpus и mems ÑеÑез запÑÑÑÑ Ð´Ð»Ñ
       пеÑеÑиÑÐ»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑов (и диапазонов) вÑÐµÑ Ð¦Ð
       или Ñзлов памÑÑи.

       ÐÑимеÑÑ ÑоÑмаÑа в виде ÑпиÑка:

              0-4,9           # ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±Ð¸ÑÑ 0, 1, 2, 3, 4 и 9
              0-2,7,12-14     # ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±Ð¸ÑÑ 0, 1, 2, 7, 12, 13 и 14

ÐÐ ÐÐÐÐÐ
       Ð ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ Ð¿ÑименÑÑÑÑÑ
       ÑледÑÑÑие пÑавила:

       *  ЦРи ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿Ð¾Ð´Ð½Ð°Ð±Ð¾Ñом
          (возможно, одинаковÑм) Ñвоего пÑедка.

       *  ÐÐ°Ð±Ð¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð¼ÐµÑен как cpu_exclusive
          ÑолÑко, еÑли и его пÑедок Ñоже помеÑен.

       *  ÐÐ°Ð±Ð¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð¼ÐµÑен как mem_exclusive
          ÑолÑко, еÑли и его пÑедок Ñоже помеÑен.

       *  ÐÑли ÑÑÑановлен cpu_exclusive, Ñо ЦРнабоÑа не
          могÑÑ Ð¿ÐµÑекÑÑваÑÑÑÑ Ñ Ð»ÑбÑм одноÑанговÑм
          пÑоÑеÑÑоÑнÑм набоÑом.

       *  ÐÑли ÑÑÑановлен mem_exclusive, Ñо ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи
          набоÑа не могÑÑ Ð¿ÐµÑекÑÑваÑÑÑÑ Ñ Ð»ÑбÑм
          одноÑанговÑм пÑоÑеÑÑоÑнÑм набоÑом.

ÐÐ ÐÐÐ ÐÐСТУÐÐ
       ÐÑава на пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð¾Ð¿ÑеделÑÑÑÑÑ
       пÑавами доÑÑÑпа к каÑалогам и
       пÑевдо-Ñайлам в Ñайловой ÑиÑÑеме
       пÑоÑеÑÑоÑного набоÑа, обÑÑно ÑмонÑиÑованной
       в /dev/cpuset.

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

       ÐополниÑелÑное огÑаниÑение ÑÑÑанавливаеÑÑÑ
       на запÑоÑÑ ÑазмеÑÐµÐ½Ð¸Ñ Ð´ÑÑгого пÑоÑеÑÑа в
       пÑоÑеÑÑоÑнÑй набоÑ. Ðдин пÑоÑеÑÑ Ð½Ðµ можеÑ
       пÑикÑепиÑÑ Ð´ÑÑгой к пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ, еÑли
       не Ð¸Ð¼ÐµÐµÑ Ð¿Ñаво оÑпÑавки ÑÑÐ¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ
       Ñигнала (ÑмоÑÑиÑе kill(2)).

       ÐÑоÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑоздаÑÑ Ð¿Ð¾Ñомка пÑоÑеÑÑоÑного
       набоÑа, еÑли Ñ Ð½ÐµÐ³Ð¾ еÑÑÑ Ð´Ð¾ÑÑÑп и пÑаво на
       запиÑÑ Ð² ÑодиÑелÑÑкий каÑалог пÑоÑеÑÑоÑного
       набоÑа. Ðн Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð¦Ð Ð¸Ð»Ð¸ ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи
       в пÑоÑеÑÑоÑном набоÑе, еÑли Ñ Ð½ÐµÐ³Ð¾ еÑÑÑ Ð´Ð¾ÑÑÑп
       к каÑÐ°Ð»Ð¾Ð³Ñ ÑÑого пÑоÑеÑÑоÑного набоÑа (пÑаво
       на вÑполнение на каждÑй ÑодиÑелÑÑкий
       каÑалог) и пÑаво на запиÑÑ Ð² ÑооÑвеÑÑÑвÑÑÑий
       Ñайл cpus или mems.

       ÐÑÑÑ Ð½ÐµÐ·Ð½Ð°ÑиÑелÑное оÑлиÑие Ð¼ÐµÐ¶Ð´Ñ Ñем, как
       ÑÑи пÑава вÑÑиÑлÑÑÑÑÑ Ð·Ð´ÐµÑÑ Ð¸ пÑи обÑÑнÑÑ
       опеÑаÑиÑÑ Ð² Ñайловой ÑиÑÑеме. ЯдÑо
       инÑеÑпÑеÑиÑÑÐµÑ Ð¾ÑноÑиÑелÑнÑе пÑÑи, наÑÐ¸Ð½Ð°Ñ Ñ
       ÑекÑÑего ÑабоÑего каÑалога пÑоÑеÑÑа. Ðаже
       еÑли он ÑабоÑÐ°ÐµÑ Ñ Ñайлом пÑоÑеÑÑоÑного
       набоÑа, оÑноÑиÑелÑнÑе пÑÑи инÑеÑпÑеÑиÑÑÑÑÑÑ
       оÑноÑиÑелÑно ÑекÑÑего ÑабоÑего каÑалога
       пÑоÑеÑÑа, а не оÑноÑиÑелÑно ÑекÑÑего
       пÑоÑеÑÑоÑного набоÑа пÑоÑеÑÑа. ÐдинÑÑвеннÑе
       ÑпоÑобÑ, в коÑоÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¿ÑÑи
       пÑоÑеÑÑоÑного набоÑа оÑноÑиÑелÑно ÑекÑÑего
       пÑоÑеÑÑоÑного набоÑа пÑоÑеÑÑа ÑÑо когда
       ÑекÑÑий ÑабоÑий каÑалог пÑоÑеÑÑа ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ
       его каÑалогом пÑоÑеÑÑоÑного набоÑа
       (ÑнаÑала вÑполнÑеÑÑÑ cd или chdir(2) в каÑалог
       его пÑоÑеÑÑоÑного набоÑа в /dev/cpuset, ÑÑо
       немного необÑÑно) или еÑли некий код
       полÑзоваÑÐµÐ»Ñ Ð¿ÑеобÑазÑÐµÑ Ð¾ÑноÑиÑелÑнÑй пÑÑÑ
       пÑоÑеÑÑоÑного набоÑа в полнÑй пÑÑÑ Ð²
       Ñайловой ÑиÑÑеме.

       Ð ÑеоÑии ÑÑо ознаÑаеÑ, Ñо код полÑзоваÑелÑ
       должен задаваÑÑ Ð¿ÑоÑеÑÑоÑнÑе набоÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ
       абÑолÑÑнÑÑ Ð¿ÑÑей, Ð´Ð»Ñ Ñего ÑÑебÑеÑÑÑ Ð·Ð½Ð°ÑÑ ÑоÑкÑ
       монÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñайловой ÑиÑÑÐµÐ¼Ñ Ð¿ÑоÑеÑÑоÑного
       набоÑа (обÑÑно, но необÑзаÑелÑно, /dev/cpuset).
       Ðа пÑакÑике, авÑÐ¾Ñ ÐºÐ¾Ð´Ð° ÑÑÐ¾Ð²Ð½Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ
       Ð´ÐµÐ»Ð°ÐµÑ Ð¿ÑоÑÑое пÑедположение, ÑÑо еÑли
       ÑÐ°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑÑема пÑоÑеÑÑоÑного набоÑа
       монÑиÑÑеÑÑÑ, Ñо в /dev/cpuset. ÐÑоме ÑÑого в поÑÑдке
       веÑей пÑи напиÑании коÑÑекÑного
       полÑзоваÑелÑÑкого кода вÑполнÑеÑÑÑ
       пÑовеÑка налиÑÐ¸Ñ Ð¿Ñевдо-Ñайла /dev/cpuset/tasks,
       ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо ÑÐ°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑÑема
       пÑоÑеÑÑоÑного набоÑа ÑмонÑиÑована.

ÐÐ ÐÐУÐÐ ÐÐÐÐÐÐЯ
   ÐклÑÑение memory_pressure
       Ðо ÑмолÑаниÑ, индивидÑалÑнÑй Ñайл
       cpuset.memory_pressure вÑегда ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ (0). ÐÑли
       ÑÑо ÑвойÑÑво не вклÑÑиÑÑ Ð·Ð°Ð¿Ð¸ÑÑÑ Â«1» в
       пÑевдо-Ñайл /dev/cpuset/cpuset.memory_pressure_enabled, Ñо
       ÑдÑо не вÑÑиÑлÑÐµÑ Ð¸Ð½Ð´Ð¸Ð²Ð¸Ð´ÑалÑное знаÑение
       memory_pressure.

   ÐÑполÑзование ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ echo
       ÐÑи иÑполÑзовании ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ echo в оболоÑке
       командной ÑÑÑоки Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñений
       Ñайлов пÑоÑеÑÑоÑного набоÑа оÑÑеÑегайÑеÑÑ
       вÑÑÑоенной в некоÑоÑÑе оболоÑки командÑ
       echo; она не оÑобÑÐ°Ð¶Ð°ÐµÑ ÑообÑение об оÑибке
       ÑиÑÑемного вÑзова write(2). ÐапÑимеÑ, еÑли
       команда:

           echo 19 > cpuset.mems

       завеÑÑиÑÑÑ Ñ Ð¾Ñибкой из-за Ñого, ÑÑо Ñзел
       памÑÑи 19 не ÑазÑеÑÑн (возможно, ÑекÑÑаÑ
       ÑиÑÑема не Ð¸Ð¼ÐµÐµÑ Ñзла памÑÑи 19), Ñо команда
       echo Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ вÑдаÑÑ Ð¾Ñибки. ÐÐ»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ
       наÑÑÑоек Ñайла пÑоÑеÑÑоÑного набоÑа лÑÑÑе
       иÑполÑзоваÑÑ Ð²Ð½ÐµÑнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ /bin/echo , Ñак как
       она вÑÐ²Ð¾Ð´Ð¸Ñ Ð¾Ñибки write(2), напÑимеÑ:

           /bin/echo 19 > cpuset.mems
           /bin/echo: write error: Invalid argument

ÐСÐÐЮЧÐÐÐЯ
   РазмеÑение в памÑÑи
       Ðе каждое вÑделение ÑиÑÑемной памÑÑи
       огÑаниÑиваеÑÑÑ Ð¿ÑоÑеÑÑоÑнÑм набоÑом по
       ÑледÑÑÑим пÑиÑинам:

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

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

       ÐÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, запÑаÑиваемÑе дÑайвеÑами
       ÑдÑа пÑи обÑабоÑке пÑеÑÑваниÑ, не оÑноÑÑÑÑÑ Ðº
       конÑекÑÑÑ Ð¿ÑоÑеÑÑа и не огÑаниÑиваÑÑÑÑ
       пÑоÑеÑÑоÑнÑми набоÑами.

   ÐеÑеименование пÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов
       ÐÐ»Ñ Ð¿ÐµÑÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов
       можно иÑполÑзоваÑÑ ÑиÑÑемнÑй вÑзов rename(2).
       ÐоддеÑживаеÑÑÑ ÑолÑко пÑоÑÑое
       пеÑеименование; Ñо еÑÑÑ ÑазÑеÑено
       изменение имени каÑалога пÑоÑеÑÑоÑного
       набоÑа â пеÑемеÑÑиÑÑ ÐºÐ°Ñалог в дÑÑгой
       каÑалог нелÑзÑ.

ÐШÐÐÐÐ
       РеализаÑÐ¸Ñ Ð¿ÑоÑеÑÑоÑнÑÑ Ð½Ð°Ð±Ð¾Ñов в ÑдÑе Linux
       изменÑÐµÑ errno Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿ÑиÑÐ¸Ð½Ñ Ð¾Ñибки
       ÑиÑÑемного вÑзова пÑи ÑабоÑе Ñ Ð¿ÑоÑеÑÑоÑнÑми
       набоÑами.

       ÐозможнÑе знаÑÐµÐ½Ð¸Ñ errno и Ð¸Ñ ÑмÑÑл пÑи
       оÑибкаÑ, возникаÑÑÐ¸Ñ Ð¿Ñи ÑабоÑе Ñ Ð¿ÑоÑеÑÑоÑнÑм
       набоÑом:

       E2BIG  ÐопÑÑка write(2) запиÑаÑÑ Ð² ÑпеÑиалÑнÑй Ñайл
              пÑоÑеÑÑоÑного набоÑа Ñ Ð´Ð»Ð¸Ð½Ð¾Ð¹,
              пÑевÑÑаÑÑей ÑÑÑановленное ÑдÑом
              огÑаниÑение на Ð´Ð»Ð¸Ð½Ñ ÑÐ°ÐºÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñей.

       EACCES ÐопÑÑка write(2) запиÑаÑÑ ID (PID) пÑоÑеÑÑа в
              Ñайл пÑоÑеÑÑоÑного набоÑа tasks пÑи
              неÑваÑке пÑав Ð´Ð»Ñ Ð¿ÐµÑемеÑÐµÐ½Ð¸Ñ ÑÑого
              пÑоÑеÑÑа.

       EACCES ÐопÑÑка добавиÑÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ write(2), ЦРили
              Ñзел памÑÑи в пÑоÑеÑÑоÑнÑй набоÑ, когда
              ÑÑÐ¾Ñ Ð¦Ð Ð¸Ð»Ð¸ Ñзел памÑÑи оÑÑÑÑÑÑвÑÐµÑ Ð² его
              ÑодиÑеле.

       EACCES ÐопÑÑка назнаÑиÑÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ write(2), задаÑÑ
              cpuset.cpu_exclusive или cpuset.mem_exclusive длÑ
              пÑоÑеÑÑоÑного набоÑа, Ñей ÑодиÑÐµÐ»Ñ Ð½Ðµ
              Ð¸Ð¼ÐµÐµÑ ÑÐ°ÐºÐ¸Ñ Ñлагов.

       EACCES ÐопÑÑка write(2) запиÑаÑÑ Ð² Ñайл
              cpuset.memory_pressure.

       EACCES ÐопÑÑка ÑоздаÑÑ Ñайл в каÑалоге
              пÑоÑеÑÑоÑного набоÑа.

       EBUSY  ÐопÑÑка ÑдалиÑÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑ rmdir(2),
              пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ñ Ð¿ÑикÑеплÑннÑми
              пÑоÑеÑÑами.

       EBUSY  ÐопÑÑка ÑдалиÑÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑ rmdir(2),
              пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ñ Ð´Ð¾ÑеÑними
              пÑоÑеÑÑоÑнÑми набоÑами.

       EBUSY  ÐопÑÑка ÑдалиÑÑ Ð¦Ð Ð¸Ð»Ð¸ Ñзел памÑÑи из
              пÑоÑеÑÑоÑного набоÑа, коÑоÑÑй Ñакже еÑÑÑ
              в поÑомке ÑÑого пÑоÑеÑÑоÑного набоÑа.

       EEXIST ÐопÑÑка ÑоздаÑÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ mkdir(2),
              пÑоÑеÑÑоÑнÑй набоÑ, коÑоÑÑй Ñже ÑÑÑеÑÑвÑеÑ.

       EEXIST ÐопÑÑка rename(2) задаÑÑ Ð¿ÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ
              имÑ, коÑоÑое Ñже ÑÑÑеÑÑвÑеÑ.

       EFAULT ÐопÑÑка read(2) пÑоÑиÑаÑÑ Ð¸Ð»Ð¸ write(2) запиÑаÑÑ
              в Ñайл пÑоÑеÑÑоÑного набоÑа иÑполÑзÑÑ
              бÑÑеÑ, коÑоÑÑй ÑаÑположен вне доÑÑÑпного
              адÑеÑного пÑоÑÑÑанÑÑва запиÑи пÑоÑеÑÑа.

       EINVAL ÐопÑÑка измениÑÑ Ð¿ÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ñ
              помоÑÑÑ write(2) ÑпоÑобом, коÑоÑÑй наÑÑÑаеÑ
              Ñлаг cpu_exclusive или mem_exclusive ÑÑого
              пÑоÑеÑÑоÑного набоÑа или его
              одноÑÑовневого ÑобÑаÑа.

       EINVAL ÐопÑÑка write(2) запиÑаÑÑ Ð¿ÑÑÑой ÑпиÑок
              cpuset.cpus или cpuset.mems в пÑоÑеÑÑоÑнÑй набоÑ,
              к коÑоÑÐ¾Ð¼Ñ Ð¿ÑикÑеплÑÐ½Ñ Ð¿ÑоÑеÑÑÑ Ð¸Ð»Ð¸
              доÑеÑние пÑоÑеÑÑоÑнÑе набоÑÑ.

       EINVAL ÐопÑÑка write(2) запиÑаÑÑ ÑпиÑок cpuset.cpus или
              cpuset.mems, коÑоÑÑй вклÑÑÐ°ÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñо
              вÑоÑÑм ÑиÑлом, менÑÑим пеÑвого ÑиÑла.

       EINVAL ÐопÑÑка write(2) запиÑаÑÑ ÑпиÑок cpuset.cpus или
              cpuset.mems, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ Ð½ÐµÐºÐ¾ÑÑекÑнÑй
              Ñимвол в ÑÑÑоке.

       EINVAL ÐопÑÑка write(2) запиÑаÑÑ ÑпиÑок в Ñайл
              cpuset.cpus, в коÑоÑом Ð½ÐµÑ Ð½Ð¸ одного
              ÑабоÑаÑÑего ЦÐ.

       EINVAL ÐопÑÑка write(2) запиÑаÑÑ ÑпиÑок в Ñайл
              cpuset.mems, в коÑоÑом Ð½ÐµÑ Ð½Ð¸ одного
              ÑабоÑаÑÑего Ñзла памÑÑи.

       EINVAL ÐопÑÑка write(2) запиÑаÑÑ ÑпиÑок в Ñайл
              cpuset.mems, в коÑоÑом еÑÑÑ Ñзел без памÑÑи.

       EIO    ÐопÑÑка write(2) запиÑаÑÑ ÑÑÑÐ¾ÐºÑ Ð² Ñайл tasks
              пÑоÑеÑÑоÑного набоÑа, коÑоÑÐ°Ñ Ð½Ðµ
              наÑинаеÑÑÑ Ñ Ð´ÐµÑÑÑиÑного ÑиÑла ASCII.

       EIO    ÐопÑÑка rename(2) пеÑеименоваÑÑ Ð¿ÑоÑеÑÑоÑнÑй
              Ð½Ð°Ð±Ð¾Ñ Ð² дÑÑгой каÑалог.

       ENAMETOOLONG
              ÐопÑÑка read(2) пÑоÑиÑаÑÑ Ð¸Ð· Ñайла
              /proc/<pid>/cpuset пÑÑÑ Ð¿ÑоÑеÑÑоÑного набоÑа,
              коÑоÑÑй болÑÑе ÑазмеÑа ÑÑÑаниÑÑ ÑдÑа.

       ENAMETOOLONG
              ÐопÑÑка ÑоздаÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ mkdir(2)
              пÑоÑеÑÑоÑнÑй набоÑ, Ð¸Ð¼Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾
              каÑалога коÑоÑого длиннее 255
              Ñимволов.

       ENAMETOOLONG
              ÐопÑÑка ÑоздаÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ mkdir(2)
              пÑоÑеÑÑоÑнÑй набоÑ, полное Ð¸Ð¼Ñ ÐºÐ¾ÑоÑого,
              вклÑÑÐ°Ñ Ð¿ÑеÑÐ¸ÐºÑ ÑоÑки монÑиÑованиÑ
              (обÑÑно «/dev/cpuset/»), длиннее 4095
              Ñимволов.

       ENODEV ÐÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ð±Ñл ÑдалÑн дÑÑгим
              пÑоÑеÑÑом одновÑеменно Ñ Ñем, когда
              бÑла попÑÑка write(2) запиÑаÑÑ Ð² один из
              пÑевдо-Ñайлов в каÑалоге пÑоÑеÑÑоÑного
              набоÑа.

       ENOENT ÐопÑÑка ÑоздаÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ mkdir(2)
              пÑоÑеÑÑоÑнÑй набоÑ, ÑодиÑÐµÐ»Ñ ÐºÐ¾ÑоÑого не
              ÑÑÑеÑÑвÑеÑ.

       ENOENT ÐопÑÑка вÑполниÑÑ access(2) или open(2) длÑ
              неÑÑÑеÑÑвÑÑÑего Ñайла в каÑалоге
              пÑоÑеÑÑоÑного набоÑа.

       ENOMEM Ð ÑдÑе недоÑÑаÑоÑно памÑÑи; можеÑ
              возникаÑÑ Ð¿Ñи ÑазлиÑнÑÑ ÑиÑÑемнÑÑ Ð²ÑзоваÑ
              Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¿ÑоÑеÑÑоÑнÑм набоÑом, но
              ÑолÑко еÑли в ÑиÑÑеме оÑÐµÐ½Ñ Ð¼Ð°Ð»Ð¾ памÑÑи.

       ENOSPC ÐопÑÑка write(2) запиÑаÑÑ ID (PID) пÑоÑеÑÑа в
              Ñайл пÑоÑеÑÑоÑного набоÑа tasks, когда Ñ
              пÑоÑеÑÑоÑного набоÑа пÑÑÑое знаÑение в
              cpuset.cpus или cpuset.mems.

       ENOSPC ÐопÑÑка write(2) запиÑаÑÑ Ð¿ÑÑÑое знаÑение в
              cpuset.cpus или cpuset.memsпÑоÑеÑÑоÑного набоÑа,
              Ñ ÐºÐ¾ÑоÑого еÑÑÑ Ð¿ÑикÑеплÑннÑе задаÑи.

       ENOTDIR
              ÐопÑÑка rename(2) пеÑеименоваÑÑ
              неÑÑÑеÑÑвÑÑÑий пÑоÑеÑÑоÑнÑй набоÑ.

       EPERM  ÐопÑÑка ÑдалиÑÑ Ñайл из каÑалога
              пÑоÑеÑÑоÑного набоÑа.

       ERANGE УказаннÑй ÑпиÑок cpuset.cpus или cpuset.mems в
              ÑдÑе, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ ÑлиÑком болÑÑое
              ÑиÑло Ð´Ð»Ñ ÑдÑа, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð´Ð°ÑÑ ÐµÐ³Ð¾ биÑовой
              маÑкой.

       ESRCH  ÐопÑÑка write(2) запиÑаÑÑ ID (PID) пÑоÑеÑÑа
              неÑÑÑеÑÑвÑÑÑего пÑоÑеÑÑа в Ñайл
              пÑоÑеÑÑоÑного набоÑа tasks.

ÐÐРСÐÐ
       СвойÑÑво пÑоÑеÑÑоÑного набоÑа поÑвилоÑÑ Ð²
       ÑдÑе Linux веÑÑии 2.6.12.

ÐÐÐÐЧÐÐÐЯ
       ÐеÑмоÑÑÑ Ð½Ð° имÑ, паÑамеÑÑ pid в дейÑÑвиÑелÑноÑÑи
       ÑвлÑеÑÑÑ ID ниÑи, и ÐºÐ°Ð¶Ð´Ð°Ñ Ð½Ð¸ÑÑ Ð³ÑÑÐ¿Ð¿Ñ Ð½Ð¸Ñей
       Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑикÑеплена к ÑазлиÑнÑм
       пÑоÑеÑÑоÑнÑм набоÑам. РаÑгÑменÑе pid можеÑ
       пеÑедаваÑÑÑÑ Ð·Ð½Ð°Ñение, возвÑаÑаемое
       вÑзовом gettid(2).

ÐÐФÐÐТЫ
       Ð¤Ð°Ð¹Ð»Ñ cpuset.memory_pressure пÑоÑеÑÑоÑного набоÑа
       можно оÑкÑÑваÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи, ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸
       обÑезаниÑ, но поÑле ÑÑого write(2) завеÑÑаеÑÑÑ Ñ
       оÑибкой errno, Ñавной EACCES, и паÑамеÑÑÑ
       ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ обÑÐµÐ·Ð°Ð½Ð¸Ñ Ð² open(2) не ÑÑиÑÑваÑÑÑÑ.

ÐÐ ÐÐÐÐ
       Ð ÑледÑÑÑÐ¸Ñ Ð¿ÑимеÑÐ°Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ полÑÑÐµÐ½Ð¸Ñ Ð¸
       ÑÑÑановка паÑамеÑÑов пÑоÑеÑÑоÑного набоÑа Ñ
       помоÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ оболоÑки.

   Создание и пÑикÑепление к пÑоÑеÑÑоÑномÑ
       набоÑÑ.
       ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пÑоÑеÑÑоÑного набоÑа и
       пÑикÑÐµÐ¿Ð»ÐµÐ½Ð¸Ñ ÑекÑÑей оболоÑки команд к
       Ð½ÐµÐ¼Ñ Ð²ÑполнÑÑÑÑÑ ÑледÑÑÑие Ñаги:

       1)  mkdir /dev/cpuset (еÑли Ñже не Ñделано)
       2)  mount -t cpuset none /dev/cpuset (еÑли Ñже не Ñделано)
       3)  Создание нового пÑоÑеÑÑоÑного набоÑа Ñ
           помоÑÑÑ mkdir(1).
       4)  ÐазнаÑение ЦРи Ñзлов памÑÑи новомÑ
           пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ.
       5)  ÐÑикÑепление оболоÑки к новомÑ
           пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ.

       ÐапÑимеÑ, ÑледÑÑÑÐ°Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ
       команд ÑоздаÑÑ Ð½Ð¾Ð²Ñй пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ Ñ
       именем «Charlie», ÑодеÑжаÑий ÑолÑко ЦР2 и 3, и
       Ñзел памÑÑи 1, а заÑем пÑикÑеплÑÐµÑ Ðº ÑÑомÑ
       пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ ÑекÑÑÑÑ Ð¾Ð±Ð¾Ð»Ð¾ÑкÑ.

           $ mkdir /dev/cpuset
           $ mount -t cpuset cpuset /dev/cpuset
           $ cd /dev/cpuset
           $ mkdir Charlie
           $ cd Charlie
           $ /bin/echo 2-3 > cpuset.cpus
           $ /bin/echo 1 > cpuset.mems
           $ /bin/echo $$ > tasks
           # ТекÑÑÐ°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñка ÑепеÑÑ ÑабоÑÐ°ÐµÑ Ð² пÑоÑеÑÑоÑном набоÑе Charlie
           # СледÑÑÑÐ°Ñ ÑÑÑока должна вÑвеÑÑи /Charlie
           $ cat /proc/self/cpuset

   ÐеÑÐµÐ½Ð¾Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð² дÑÑгие ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи.
       ЧÑÐ¾Ð±Ñ Ð¿ÐµÑенеÑÑи задание (Ð½Ð°Ð±Ð¾Ñ Ð¿ÑоÑеÑÑов,
       пÑиÑоединÑннÑÑ Ðº пÑоÑеÑÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ) на
       дÑÑгие ЦРи ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи в ÑиÑÑеме, вклÑÑаÑ
       пеÑемеÑение ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, вÑделеннÑÑ Ð¿Ð¾Ð´
       ÑÑо задание, вÑполниÑе ÑледÑÑÑие Ñаги:

       1)  ÐÑедположим, Ð¼Ñ ÑоÑим пеÑенеÑÑи задание
           из пÑоÑеÑÑоÑного набоÑа alpha (ЦР4-7 ÑзлÑ
           памÑÑи 2-3) в новÑй пÑоÑеÑÑоÑнÑй Ð½Ð°Ð±Ð¾Ñ beta (ЦÐ
           16-19 и ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи 8-9).
       2)  СнаÑала Ñоздадим новÑй пÑоÑеÑÑоÑнÑй
           Ð½Ð°Ð±Ð¾Ñ beta.
       3)  ÐаÑем вклÑÑим ЦР16-19 и ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи 8-9 в beta.
       4)  ÐаÑем вклÑÑим Ñлаг memory_migration в beta.
       5)  ÐаÑем пеÑемеÑÑим каждÑй пÑоÑеÑÑ Ð¸Ð· alpha в
           beta.

       ÐÑÑ ÑÑо вÑполнÑÐµÑ ÑледÑÑÑÐ°Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ
       команд:

           $ cd /dev/cpuset
           $ mkdir beta
           $ cd beta
           $ /bin/echo 16-19 > cpuset.cpus
           $ /bin/echo 8-9 > cpuset.mems
           $ /bin/echo 1 > cpuset.memory_migrate
           $ while read i; do /bin/echo $i; done < ../alpha/tasks > tasks

       ÐÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²ÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÐµÑемеÑÑиÑÑ Ð²Ñе пÑоÑеÑÑÑ
       из alpha в beta, и вÑÑ Ð¿Ð°Ð¼ÑÑÑ ÑÑÐ¸Ñ Ð¿ÑоÑеÑÑов Ñ Ñзлов
       памÑÑи 2-3 на ÑÐ·Ð»Ñ Ð¿Ð°Ð¼ÑÑи 8-9, ÑооÑвеÑÑÑвенно.

       ÐамеÑим, ÑÑо поÑледний Ñаг не Ñделан как:

           $ cp ../alpha/tasks tasks

       Цикл while, а не гоÑаздо более пÑоÑÑаÑ
       команда cp(1), необÑодим, Ñак как ÑолÑко
       один PID пÑоÑеÑÑа за Ñаз запиÑÑваеÑÑÑ Ð² Ñайл
       tasks.

       Того же (запиÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ PID за Ñаз) как в
       Ñикле while можно доÑÑиÑÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивно
       неÑколÑкими командами и Ñ ÑинÑакÑиÑом,
       коÑоÑÑй доÑÑÑпен в лÑбой оболоÑке, но
       вÑглÑÐ´Ð¸Ñ Ð½ÐµÐ¿Ð¾Ð½ÑÑно: иÑполÑзÑÑ Ð¿Ð°ÑамеÑÑ -u (не
       бÑÑеÑизиÑоваÑÑ) в sed(1):

           $ sed -un p < ../alpha/tasks > tasks

СÐÐТРÐТРТÐÐÐÐ
       taskset(1), get_mempolicy(2), getcpu(2), mbind(2),
       sched_getaffinity(2), sched_setaffinity(2), sched_setscheduler(2),
       set_mempolicy(2), CPU_SET(3), proc(5), cgroups(7), numa(7), sched(7),
       migratepages(8), numactl(8)

       Файл Documentation/cpusets.txt в деÑеве иÑÑодного
       кода ÑдÑа Linux



Linux                             2016-05-09                         CPUSET(7)