Paano I-configure ang Linux Cgroups

Paano I Configure Ang Linux Cgroups



Ang pag-alam at pag-unawa kung anong mga proseso ang gumagamit ng iba't ibang mapagkukunan ng system ay bahagi ng iyong gawain bilang isang administrator ng system. Sa kabutihang palad, pinapayagan ka ng Linux kernel na maglaan at pamahalaan ang mga mapagkukunan gamit ang tampok na Control Groups (cgroups), ngunit dapat mong malaman kung paano i-configure ito.

Ang post na ito ay gumagabay sa pag-configure ng mga Linux cgroup. Tutukuyin natin ito at mauunawaan ang mga benepisyo nito. Bukod dito, makikita natin kung paano mo mai-configure ang mga Linux cgroup. Magsimula tayo!







Ano ang mga Cgroup sa Linux

Ang Linux kernel ay nag-aalok ng mga cgroup bilang isang tampok upang payagan ang pamamahala ng mga mapagkukunan ng system sa iba't ibang mga proseso. Salamat sa mga cgroup, nililimitahan ang dami ng mga mapagkukunan ng system na may isang proseso o mga grupo ng mga proseso na maaaring gamitin upang maalis ang monopolisasyon at matiyak na posible ang isang patas na paglalaan ng mapagkukunan. Tumutulong ang mga Cgroup na gampanan ang mga sumusunod na tungkulin:



1. Paglalaan ng Mapagkukunan



Ang pangunahing layunin ng mga cgroup ay paglalaan ng mapagkukunan. Mabilis mong mailalaan ang mga mapagkukunan tulad ng memorya, bandwidth ng network, CPU, atbp., sa anumang proseso o pangkat ng mga proseso. Ang ideya ay pahusayin ang pagganap ng iyong system sa pamamagitan ng pagtiyak na walang proseso ang magmonopolize sa mga mapagkukunan ng system. Magkakaroon ka ng matatag na pagganap ng system sa pamamagitan ng patas na pamamahagi ng mga mapagkukunan.





2. Priyoridad

Isipin ang isang sitwasyon kung saan mayroon kang mataas na priyoridad na mga gawain o proseso. Ang ganitong kaso ay nangangailangan sa iyo na unahin ang iyong mga mapagkukunan ng system para sa mga naturang gawain upang matiyak na natutugunan ng mga ito ang mga inaasahan, lalo na kung saan may kasamang mabigat na pagkarga. Halimbawa, kung mayroon kang proseso o trabahong sensitibo sa latency na nangangailangan ng mabigat na paggamit ng CPU, maaari mong unahin at italaga ang higit pang mga mapagkukunan gamit ang mga cgroup.



3. Paghihiwalay ng Mapagkukunan

Sa pamamagitan ng pagpayag sa iyong lumikha ng mga hangganan ng mapagkukunan, pinapayagan ka ng mga cgroup na ihiwalay ang mga mapagkukunan at ipatupad ang mga limitasyon. Sa ganoong paraan, mapipigilan mo ang mga interference sa pagitan ng mga application, lalo na kapag ang iba't ibang mga application o user ay gumagamit ng parehong system.

4. Suporta para sa Containerization

Kapag nagtatrabaho sa mga opsyon sa containerization tulad ng Docker, kung saan dapat mong itakda ang mga container na tumakbo sa mga nakahiwalay na kapaligiran, hinahayaan ka ng mga cgroup na lumikha ng mga magaan na kapaligiran. Magagawa mong ligtas at mahusay na maglaan ng mga mapagkukunan sa nakahiwalay na host.

5. Pagsubaybay sa Mapagkukunan

Maaari kang makakuha ng mga istatistika sa iba't ibang mapagkukunan na itinalaga sa mga proseso sa iyong system gamit ang cgroup. Ang mga istatistika na iyong nakolekta ay mainam para sa pagsusuri ng pagganap ng iyong system. Sa ganoong paraan, matutukoy mo ang mga bottleneck ng mapagkukunan na nagbibigay-daan sa iyong magplano sa pamamahagi ng mapagkukunan. Ang mga insight na ito ay perpekto para sa pag-unawa kung paano gumaganap ang mga application upang gabayan kung paano mo ma-optimize ang mga ito.

Paano I-configure ang Linux Cgroups

Ang tumataas na katanyagan ng containerization ay nagbibigay daan para sa higit pang paggamit ng mga Linux cgroup upang makatulong sa pamamahala at pagsubaybay sa mapagkukunan. Sa ngayon, tinukoy namin ang mga cgroup at nakita ang mga benepisyo nito.

Ngayon, tingnan natin kung paano natin ito mai-configure. Nagtatrabaho kami sa Ubuntu 22.04, ngunit gumagana ang gabay na ito sa iba pang mga Linux distro. Hinahati namin ang proseso sa dalawang bahagi: pag-install at pagsasaayos.

Bahagi 1: Pag-install

Magsimula tayo sa pamamagitan ng pag-install ng mga cgroup sa aming system gamit ang mga sumusunod na hakbang:

Hakbang 1: I-install ang Cgroups Tools

Magsimula sa pamamagitan ng pag-update ng apt repository upang bigyang daan ang pag-install.

sudo angkop na pag-update



Susunod, patakbuhin ang sumusunod na command sa pag-install upang i-install ang cgroup-tools:

sudo apt i-install cgroup-tools



Maaari mong i-verify na ang cgroup ay naka-install sa pamamagitan ng pagsuri nito gamit ang dpkg command tulad ng ipinapakita sa sumusunod:


Makikita natin na matagumpay ang pag-install.

Hakbang 2: Paganahin ang Suporta sa Cgroup

Pagkatapos i-install ang cgroup, dapat mong paganahin ang suporta ng cgroup sa GRUB ng iyong system. Para diyan, gumamit ng text editor at buksan ang GRUB config file. Gumagamit kami ng nano sa kasong ito.

sudo nano / atbp / default / grub



Kapag nagbukas ito, hanapin ang sumusunod na linya:

GRUB_CMDLINE_LINUX_DEFAULT = 'tahimik na splash'



Baguhin ito upang isama ang 'cgroup_enable=memory'.

GRUB_CMDLINE_LINUX_DEFAULT =”tahimik na splash cgroup_enable =alaala”



I-save ang file at lumabas.

Hakbang 3: I-update ang GRUB

Pagkatapos baguhin ang configuration ng GRUB, dapat mong i-update ito para magkabisa ang mga pagbabago. Gayunpaman, dapat mong i-reboot ang iyong system upang ganap na maisagawa ang mga pagbabago.

Gamitin ang mga sumusunod na command:

sudo update-grub



Panghuli, i-restart ang iyong system.

sudo i-reboot


Hakbang 4: Gumawa ng Mount Point

Kapag nag-reboot ang system, lumikha ng isang direktoryo na gagamitin bilang iyong mount point para sa cgroup filesystem. Gawin natin ang aming direktoryo bilang /sys/fs/cgroup tulad ng sumusunod:

sudo mkdir / sys / fs / cgroup



Sa ginawang mount point, i-mount ang cgroup filesystem gamit ang controller na gusto mo. Kasama sa ilang controller na magagamit mo ang memory, CPU, bikio, freezer, mga device, atbp. Gamitin natin ang memory para sa halimbawang ito.

Narito ang syntax na dapat mong gamitin:

sudo bundok -t cgroup -O < controller > cgroup / sys / fs / cgroup


Palitan ang ng target na nais mong gawin upang magamit sa cgroup filesystem.


Naka-mount na ang atin. Sa iyong kaso, makakakuha ka ng isang output na ang mount ay matagumpay.

I-verify na umiiral ang cgroup mount at wastong naka-mount sa pamamagitan ng pagpapatakbo ng sumusunod na command gamit ang command na 'grep':

bundok | mahigpit na pagkakahawak cgroup



Ipagpalagay na sinunod mo ang lahat ng mga hakbang. Makakakuha ka ng isang output na katulad ng isa sa nakaraang output na nagpapatunay na ang iyong cgroup mount ay umiiral habang nilikha mo ito.

Bahagi 2: Configuration

Nag-install kami ng mga tool ng cgroup sa aming Linux system at gumawa ng cgroup mount. Sa lugar na iyon, ang huling bagay ay maghukay sa kung paano i-configure ang mga Linux cgroup. Magkaroon tayo ng isang halimbawa upang matulungan kang maunawaan kung paano ito gumagana. Basahin mo pa!

Ang paraan ng paggawa at pagsasaayos ng mga cgroup ay depende sa iyong mga kinakailangan. Bukod dito, kailangan mo munang maunawaan kung aling controller ang gagamitin mo sa paggawa ng mga hierarchy ng cgroup. Sa sandaling lumikha ka ng cgroup, ang pag-configure nito ay nagsasangkot ng paglilimita sa pag-access nito sa iyong mga mapagkukunan ng system. Hatiin natin ito sa dalawang hakbang.

Hakbang 1: Gumawa ng Cgroup Hierarchies

Kapag na-mount mo na ang cgroup filesystem, dapat kang lumikha ng cgroup hierarchies depende sa iyong mga kinakailangan. Para diyan, ginagamit namin ang sumusunod na syntax:

sudo mkdir / sys / fs / cgroup /< controller >>< cgroup_name >


Ipagpalagay na gusto naming lumikha ng cgroup na pinangalanang 'linuxhint' sa aming memory controller. Nagpapatuloy kami tulad ng sumusunod:

sudo mkdir / sys / fs / cgroup / alaala / linuxhint



Ngayong nagawa na natin ang cgroup, sige at i-configure natin ito sa pamamagitan ng pagtukoy kung anong mga parameter ang itatalaga dito bilang bahagi ng pamamahala ng mapagkukunan ng system.

Hakbang 2: Italaga ang Mga Parameter

Ang bawat controller ay may iba't ibang mga parameter na iyong tinukoy depende sa mapagkukunan ng system na gusto mong ilaan. Kaya, kapag nag-configure ng cgroup, dapat mong malaman kung anong mga parameter ng napiling controller ang iyong gagamitin.

Gamitin ang sumusunod na syntax sa configuration:

echo < halaga > > / sys / fs / cgroup /< controller >>< cgroup-name >>< controller-parameter >


Narito ang isang halimbawa ng pag-configure ng memory cgroup na ginawa namin kanina na pinangalanang 'linuxhint' upang italaga ito na may limitasyon sa memory na 1GB. Para diyan, ginagamit namin ang parameter na 'memory.limit_in_bytes'. Maaari kang maghanap para sa iba pang mga parameter ng memorya na maaari mong i-configure.

Isinasagawa namin ang aming utos tulad ng sumusunod:

echo 1G > / sys / fs / cgroup / alaala / linuxhint / memory.limit_in_bytes



Maaari mong tukuyin ang anumang parameter na naaayon sa iyong mga kinakailangan. Sundin ang proseso na idinetalye namin dati upang baguhin ang anumang controller sa iyong system, gumawa ng mga cgroup para dito, at pagkatapos ay i-configure ito. Malaya kang lumikha ng higit pang mga cgroup at i-configure ang mga ito. Inirerekomenda na pangalanan ang mga cgroup para iayon sa pangalan ng controller na gusto mong pagtuunan ng pansin para madaling matandaan.

Magkaroon tayo ng isa pang halimbawa kung saan gagawa tayo ng cgroup para sa CPU controller. Magsimula sa pamamagitan ng paglikha ng cgroup hierarchy gaya ng sumusunod:

sudo mkdir / sys / fs / cgroup / cpu / linux-cpu



Susunod, italaga ang mga halaga ng parameter upang ilaan ang mga mapagkukunan ng CPU batay sa iyong pangangailangan. Halimbawa, magtrabaho tayo sa cpu.cfs_period_us na nagbibigay-daan sa iyong tukuyin ang tagal ng microsecond na dapat ilaan ang access ng isang cgroup sa mga mapagkukunan. Itakda natin ito sa 1000 microseconds sa kasong ito.


Ganyan mo ginagawa at i-configure ang mga Linux cgroup. Ang mga hakbang ay maaaring bahagyang mag-iba depende sa Linux distro na iyong ginagamit. Gayunpaman, ang post na ito ay nagpapakita ng mga pangkalahatang hakbang na dapat mong sundin.

Konklusyon

Nakatuon ang post na ito sa mga Linux cgroup. Nagsimula kami sa pamamagitan ng pag-unawa kung ano ang ibig sabihin ng mga Linux cgroup at ang mga benepisyong inaalok nito sa mga administrator ng system. Susunod, natutunan namin ang mga hakbang na dapat sundin upang mag-install ng mga cgroup sa Ubuntu 22.04 kung hindi pa ito naka-install. Higit pa rito, ipinakita namin ang mga hakbang upang i-configure ang mga Linux cgroup, mula sa paggawa ng mount point, hanggang sa paggawa ng cgroup, hanggang sa pag-configure ng mga parameter. Sana, natutunan mo kung paano i-configure ang mga Linux cgroup. Subukan ito at maging masigasig sa kung anong mga parameter ang iyong babaguhin upang maiwasang makagambala sa pagganap ng iyong system.