{"id":34446,"date":"2025-11-16T19:01:01","date_gmt":"2025-11-16T16:01:01","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/"},"modified":"2025-11-16T19:01:01","modified_gmt":"2025-11-16T16:01:01","slug":"understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/","title":{"rendered":"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon"},"content":{"rendered":"<p><body><\/p>\n<p>Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde, Cgroups&#8217;un temellerini, yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ke\u015ffedin. Sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in kritik \u00f6neme sahip bu teknoloji, sunucu performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r.<\/p>\n<p>Modern sunucu ortamlar\u0131nda birden fazla uygulama ve hizmetin ayn\u0131 anda \u00e7al\u0131\u015ft\u0131\u011f\u0131 durumlar olduk\u00e7a yayg\u0131nd\u0131r. Bir web sunucusu, bir veritaban\u0131, bir mesaj kuyru\u011fu sistemi ve belki de baz\u0131 arka plan i\u015fleme servisleri&#8230; T\u00fcm bu bile\u015fenler, sistemin s\u0131n\u0131rl\u0131 kaynaklar\u0131 (CPU, bellek, disk G\/\u00c7, a\u011f bant geni\u015fli\u011fi) i\u00e7in s\u00fcrekli bir rekabet halindedir. Peki, bu kaynak \u00e7at\u0131\u015fmalar\u0131 performans\u0131 nas\u0131l etkiler? Diyelim ki bir uygulaman\u0131zda beklenmedik bir bellek s\u0131z\u0131nt\u0131s\u0131 ya\u015fand\u0131 veya bir hesaplama i\u015flemi aniden t\u00fcm CPU \u00e7ekirdeklerini %100 kullanmaya ba\u015flad\u0131. Ne yaz\u0131k ki, bu durumlar di\u011fer kritik servislerin yava\u015flamas\u0131na, yan\u0131t vermemesine ve hatta tamamen \u00e7\u00f6kmesine neden olabilir. \u0130\u015fte tam da bu noktada, kaynak y\u00f6netimini etkin bir \u015fekilde sa\u011flamak hayati \u00f6nem ta\u015f\u0131r. Bu, sadece bir sistemin stabil \u00e7al\u0131\u015fmas\u0131n\u0131 garanti etmekle kalmaz, ayn\u0131 zamanda her bir uygulaman\u0131n kendisine ayr\u0131lan kaynaklarla maksimum verimlilikte \u00e7al\u0131\u015fabilmesini sa\u011flar.<\/p>\n<p>Linux Cgroups (Control Groups), tam olarak bu t\u00fcr sorunlara \u00e7\u00f6z\u00fcm sunmak i\u00e7in tasarlanm\u0131\u015f g\u00fc\u00e7l\u00fc bir Linux \u00e7ekirde\u011fi \u00f6zelli\u011fidir. Temel olarak Cgroups, bir grup s\u00fcrece belirli sistem kaynaklar\u0131na eri\u015fimlerini k\u0131s\u0131tlama, \u00f6nceliklendirme ve izleme yetene\u011fi sa\u011flar. \u00d6rne\u011fin, bir test sunucusunda yeni bir geli\u015ftirme ortam\u0131 kurdu\u011funuzda, bu ortam\u0131n di\u011fer \u00fcretim servislerini etkilemesini istemezsiniz. Cgroups sayesinde, bu yeni ortama belirli bir CPU s\u00fcresi veya bellek tahsis edebilir, b\u00f6ylece olas\u0131 kaynak k\u0131tl\u0131klar\u0131n\u0131n \u00f6n\u00fcne ge\u00e7ebilirsiniz. Ayr\u0131ca, konteyner teknolojileri olan Docker ve Kubernetes gibi g\u00fcncel yakla\u015f\u0131mlar\u0131n temelinde yatan mekanizmalardan biri de Cgroups&#8217;tur. Onlar da uygulamalar\u0131 izole etmek ve kaynaklar\u0131n\u0131 y\u00f6netmek i\u00e7in Cgroups&#8217;u yo\u011fun bir \u015fekilde kullan\u0131r. Bu rehberde, Cgroups&#8217;un nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, neden bu kadar \u00f6nemli oldu\u011funu ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz. B\u00f6ylece, sistemlerinizdeki kaynak kullan\u0131m\u0131n\u0131 daha bilin\u00e7li ve kontroll\u00fc bir \u015fekilde y\u00f6netebileceksiniz.<\/p>\n<h2>Linux Cgroups Temelleri: Kaynak Kontrol\u00fc Nas\u0131l Sa\u011flan\u0131r?<\/h2>\n<p>Linux Cgroups, yani Kontrol Gruplar\u0131, Linux \u00e7ekirde\u011finin s\u00fcre\u00e7leri hiyerar\u015fik bir \u015fekilde gruplamam\u0131z\u0131 ve bu gruplar \u00fczerinde kaynak k\u0131s\u0131tlamalar\u0131 ve \u00f6nceliklendirmeleri uygulamam\u0131z\u0131 sa\u011flayan bir \u00f6zelli\u011fidir. \u0130lk olarak Google m\u00fchendisleri taraf\u0131ndan geli\u015ftirilen ve 2.6.24 Linux \u00e7ekirde\u011finden itibaren ana \u00e7ekirde\u011fe dahil edilen Cgroups, sistem y\u00f6neticilerine ve geli\u015ftiricilere s\u00fcre\u00e7lerin CPU, bellek, disk G\/\u00c7 ve a\u011f gibi kaynaklar\u0131 nas\u0131l t\u00fcketti\u011fi \u00fczerinde hassas bir kontrol imkan\u0131 sunar. Temel amac\u0131, bir s\u00fcrecin veya s\u00fcre\u00e7 grubunun sistemdeki di\u011fer s\u00fcre\u00e7leri etkilemeden kendilerine atanan kaynaklar\u0131 kullanmas\u0131n\u0131 sa\u011flamakt\u0131r. Bu, \u00f6zellikle payla\u015f\u0131ml\u0131 sunucu ortamlar\u0131nda veya \u00e7oklu kirac\u0131l\u0131k (multi-tenancy) mimarilerinde sistem stabilizasyonunu ve adil kaynak da\u011f\u0131t\u0131m\u0131n\u0131 garantilemek i\u00e7in hayati bir ara\u00e7t\u0131r.<\/p>\n<p>Cgroups&#8217;un \u00e7al\u0131\u015fma prensibi olduk\u00e7a basittir ancak g\u00fc\u00e7l\u00fc bir yap\u0131ya sahiptir. Her bir kontrol grubu, bir veya daha fazla &#8220;altsisteme&#8221; (subsystem veya controller) ba\u011flan\u0131r. Altsistemler, belirli bir kaynak t\u00fcr\u00fcn\u00fc (\u00f6rne\u011fin CPU, bellek) kontrol eden \u00e7ekirdek mod\u00fclleridir. Her altsistem, kendi Cgroup hiyerar\u015fisine sahiptir ve bu hiyerar\u015fi, bir dosya sistemi aray\u00fcz\u00fc arac\u0131l\u0131\u011f\u0131yla kullan\u0131c\u0131lara sunulur. Genellikle <code>\/sys\/fs\/cgroup<\/code> alt\u0131nda konumlanan bu sanal dosya sistemi, dizinler ve dosyalar arac\u0131l\u0131\u011f\u0131yla Cgroups&#8217;u y\u00f6netmemizi sa\u011flar. Bir dizin bir Cgroup&#8217;u temsil ederken, dizinin i\u00e7indeki dosyalar o Cgroup&#8217;a ait parametreleri (limitler, \u00f6ncelikler vb.) yap\u0131land\u0131rmak i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, bir Cgroup olu\u015fturdu\u011funuzda, asl\u0131nda bu sanal dosya sisteminde yeni bir dizin olu\u015fturmu\u015f olursunuz. S\u00fcre\u00e7leri bu Cgroup&#8217;a atad\u0131\u011f\u0131n\u0131zda ise, \u00e7ekirdek bu s\u00fcre\u00e7lerin kaynak kullan\u0131m\u0131n\u0131 o Cgroup&#8217;a tan\u0131mlad\u0131\u011f\u0131n\u0131z kurallara g\u00f6re y\u00f6netmeye ba\u015flar.<\/p>\n<p>Peki, bir Cgroup hiyerar\u015fisi nas\u0131l \u00e7al\u0131\u015f\u0131r? En \u00fcstte k\u00f6k Cgroup bulunur. T\u00fcm s\u00fcre\u00e7ler ba\u015flang\u0131\u00e7ta bu k\u00f6k Cgroup&#8217;un bir par\u00e7as\u0131d\u0131r. K\u00f6k Cgroup alt\u0131nda yeni alt Cgroups olu\u015fturabilir ve bu alt Cgroups&#8217;a s\u00fcre\u00e7ler ekleyebilirsiniz. Bir Cgroup&#8217;a uygulanan kurallar, onun t\u00fcm alt Cgroup&#8217;lar\u0131n\u0131 ve bu alt Cgroup&#8217;lar\u0131n i\u00e7indeki t\u00fcm s\u00fcre\u00e7leri etkiler. Ancak, alt Cgroup&#8217;lar kendi \u00f6zel kurallar\u0131n\u0131 tan\u0131mlayarak \u00fcst Cgroup&#8217;un kurallar\u0131n\u0131 daha da k\u0131s\u0131tlayabilir. Bu hiyerar\u015fik yap\u0131, karma\u015f\u0131k sistemlerde bile esnek ve ince ayar yap\u0131labilir bir kaynak y\u00f6netimini m\u00fcmk\u00fcn k\u0131lar. \u00d6rne\u011fin, genel bir Cgroup ile t\u00fcm web sunucular\u0131n\u0131za belirli bir bellek limiti koyabilir, ancak bu web sunucular\u0131ndan birine \u00f6zel olarak daha fazla bellek ay\u0131rman\u0131z gerekti\u011finde, onun i\u00e7in ayr\u0131 bir alt Cgroup olu\u015fturup daha y\u00fcksek bir limit belirleyebilirsiniz. Bu sayede, kaynak tahsisinde hem genel politikalar\u0131 uygulayabilir hem de \u00f6zel durumlar i\u00e7in istisnalar yaratabilirsiniz. Cgroups v1 ve Cgroups v2 olmak \u00fczere iki ana versiyon bulunmaktad\u0131r. Cgroups v1, ayr\u0131 hiyerar\u015filer sunarken, Cgroups v2 tek bir birle\u015fik hiyerar\u015fi ile daha tutarl\u0131 ve anla\u015f\u0131l\u0131r bir model sa\u011flar. Modern Linux da\u011f\u0131t\u0131mlar\u0131 ve konteyner orkestrasyon ara\u00e7lar\u0131 genellikle Cgroups v2&#8217;yi benimsemeye ba\u015flam\u0131\u015ft\u0131r. \u0130lerleyen b\u00f6l\u00fcmlerde bu altsistemlerin ve kullan\u0131mlar\u0131n\u0131n detaylar\u0131na daha yak\u0131ndan bakaca\u011f\u0131z.<\/p>\n<h3>Cgroups Altsistemleri Nelerdir ve Ne \u0130\u015fe Yarar?<\/h3>\n<p>Cgroups&#8217;un temel g\u00fcc\u00fc, farkl\u0131 kaynak t\u00fcrleri i\u00e7in \u00f6zelle\u015fmi\u015f altsistemlerden (subsystems veya controllers) gelmektedir. Her altsistem, belirli bir kaynak t\u00fcr\u00fcn\u00fc izlemek ve kontrol etmek i\u00e7in sorumludur. Bu altsistemler sayesinde, CPU kullan\u0131m\u0131ndan belle\u011fe, disk G\/\u00c7&#8217;sinden s\u00fcre\u00e7 say\u0131s\u0131na kadar geni\u015f bir yelpazede kaynak y\u00f6netimi yap\u0131labilir. Gelin, en yayg\u0131n ve \u00f6nemli Cgroups altsistemlerini detayl\u0131ca inceleyelim:<\/p>\n<ul>\n<li><strong>CPU Altsistemi (cpu)<\/strong>: Bu altsistem, bir Cgroup&#8217;taki s\u00fcre\u00e7lerin CPU kullan\u0131m\u0131n\u0131 k\u0131s\u0131tlar ve \u00f6nceliklendirir. Temel parametreleri \u015funlard\u0131r:\n<ul>\n<li><code>cpu.shares<\/code>: Bir Cgroup&#8217;a atanan CPU zaman\u0131n\u0131n oran\u0131n\u0131 belirtir. \u00d6rne\u011fin, bir grupta 1024 shares, di\u011ferinde 512 shares varsa, ilk grup CPU&#8217;nun iki kat\u0131 kadar\u0131n\u0131 almaya e\u011filimli olacakt\u0131r. Ancak bu bir garanti de\u011fildir; sistem yo\u011fun de\u011filse her iki grup da ihtiya\u00e7 duydu\u011fu t\u00fcm CPU&#8217;yu kullanabilir.<\/li>\n<li><code>cpu.cfs_period_us<\/code> ve <code>cpu.cfs_quota_us<\/code>: Bu parametreler, Cgroup&#8217;un belirli bir s\u00fcre (period) i\u00e7inde kullanabilece\u011fi CPU s\u00fcresi (quota) miktar\u0131n\u0131 mikro saniye (us) cinsinden ayarlar. \u00d6rne\u011fin, <code>cpu.cfs_period_us=100000<\/code> (100ms) ve <code>cpu.cfs_quota_us=50000<\/code> (50ms) ayarlar\u0131, Cgroup&#8217;taki s\u00fcre\u00e7lerin her 100ms&#8217;lik dilimde en fazla 50ms CPU kullanabilece\u011fi anlam\u0131na gelir ki bu da CPU&#8217;nun %50&#8217;si demektir. Bu, belirli bir y\u00fczde CPU kullan\u0131m\u0131 garanti etmek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Bellek Altsistemi (memory)<\/strong>: Bellek altsistemi, bir Cgroup&#8217;taki s\u00fcre\u00e7lerin kullanabilece\u011fi toplam bellek miktar\u0131n\u0131 s\u0131n\u0131rlar. Bu, bellek s\u0131z\u0131nt\u0131s\u0131 olan veya \u00e7ok fazla bellek t\u00fcketen uygulamalar\u0131n di\u011fer sistem bile\u015fenlerini etkilemesini engellemek i\u00e7in kritik \u00f6neme sahiptir.\n<ul>\n<li><code>memory.limit_in_bytes<\/code>: Bir Cgroup&#8217;un kullanabilece\u011fi maksimum bellek miktar\u0131n\u0131 bayt cinsinden belirtir. Bu s\u0131n\u0131ra ula\u015f\u0131ld\u0131\u011f\u0131nda, sistem OOM (Out Of Memory) Killer&#8217;\u0131 \u00e7a\u011f\u0131rarak Cgroup i\u00e7indeki s\u00fcre\u00e7leri sonland\u0131rabilir.<\/li>\n<li><code>memory.swappiness<\/code>: Cgroup i\u00e7indeki s\u00fcre\u00e7lerin ne kadar s\u0131kl\u0131kla diske (swap alan\u0131na) veri yazaca\u011f\u0131n\u0131 kontrol eder. Daha y\u00fcksek de\u011ferler, daha fazla swap kullan\u0131m\u0131na yol a\u00e7ar.<\/li>\n<li><code>memory.usage_in_bytes<\/code>: Bir Cgroup taraf\u0131ndan kullan\u0131lan mevcut bellek miktar\u0131n\u0131 g\u00f6sterir.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Blok G\/\u00c7 Altsistemi (blkio)<\/strong>: Bu altsistem, disk G\/\u00c7 i\u015flemlerini y\u00f6netir. Bir Cgroup&#8217;taki s\u00fcre\u00e7lerin diskten okuma ve yazma h\u0131zlar\u0131n\u0131 k\u0131s\u0131tlayarak, tek bir uygulaman\u0131n t\u00fcm disk bant geni\u015fli\u011fini t\u00fcketmesini \u00f6nler.\n<ul>\n<li><code>blkio.weight<\/code>: Bir Cgroup&#8217;un disk G\/\u00c7 \u00f6nceli\u011fini belirler. Daha y\u00fcksek bir a\u011f\u0131rl\u0131k, daha fazla G\/\u00c7 kapasitesi demektir.<\/li>\n<li><code>blkio.throttle.read_bps_device<\/code> ve <code>blkio.throttle.write_bps_device<\/code>: Belirli bir cihaz (\u00f6rne\u011fin <code>\/dev\/sda<\/code>) i\u00e7in saniyede okunan\/yaz\u0131lan maksimum bayt miktar\u0131n\u0131 belirterek daha hassas bir k\u0131s\u0131tlama sa\u011flar.<\/li>\n<\/ul>\n<\/li>\n<li><strong>PID Altsistemi (pids)<\/strong>: Bu altsistem, bir Cgroup i\u00e7inde olu\u015fturulabilecek maksimum s\u00fcre\u00e7 (process) say\u0131s\u0131n\u0131 s\u0131n\u0131rlar. Bu, fork bomb sald\u0131r\u0131lar\u0131n\u0131 veya hatal\u0131 yaz\u0131lm\u0131\u015f uygulamalar\u0131n sonsuz say\u0131da s\u00fcre\u00e7 olu\u015fturarak sistemi \u00e7\u00f6kertmesini engellemek i\u00e7in faydal\u0131d\u0131r.\n<ul>\n<li><code>pids.max<\/code>: Cgroup i\u00e7inde izin verilen maksimum PID (s\u00fcre\u00e7 ID) say\u0131s\u0131n\u0131 belirler. Bu s\u0131n\u0131ra ula\u015f\u0131ld\u0131\u011f\u0131nda, yeni s\u00fcre\u00e7 olu\u015fturma giri\u015fimleri ba\u015far\u0131s\u0131z olur.<\/li>\n<\/ul>\n<\/li>\n<li><strong>A\u011f Altsistemi (net_cls ve net_prio)<\/strong>: A\u011f altsistemleri, Cgroup&#8217;taki s\u00fcre\u00e7lerin a\u011f trafi\u011fini etiketlemek ve \u00f6nceliklendirmek i\u00e7in kullan\u0131l\u0131r. Do\u011frudan bant geni\u015fli\u011fi k\u0131s\u0131tlamas\u0131 sa\u011flamazlar; bunun yerine, Linux&#8217;un Traffic Control (<code>tc<\/code>) arac\u0131yla entegre olarak \u00e7al\u0131\u015f\u0131r ve belirli Cgroups&#8217;tan gelen a\u011f paketlerini i\u015faretleyerek <code>tc<\/code>&#8216;nin bu paketlere \u00f6zel kurallar uygulamas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar.\n<ul>\n<li><code>net_cls.classid<\/code>: Cgroup&#8217;taki paketlere atanacak benzersiz bir s\u0131n\u0131f ID&#8217;si belirler. <code>tc<\/code> bu ID&#8217;yi kullanarak paketleri farkl\u0131 kurallara g\u00f6re i\u015fleyebilir (\u00f6rne\u011fin, bant geni\u015fli\u011fi k\u0131s\u0131tlamas\u0131).<\/li>\n<li><code>net_prio.prioidx<\/code>: Cgroup&#8217;taki s\u00fcre\u00e7lerden gelen a\u011f trafi\u011fine belirli bir \u00f6ncelik atar.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Bu altsistemlerin her biri, kaynak y\u00f6netiminde belirli bir ihtiyaca yan\u0131t verir ve bir araya geldiklerinde, bir Linux sistemindeki t\u00fcm kaynaklar \u00fczerinde kapsaml\u0131 bir kontrol sa\u011flamak m\u00fcmk\u00fcn hale gelir. Cgroups&#8217;u manuel olarak y\u00f6netirken, hangi altsistemin hangi parametrelerinin sizin i\u00e7in kritik oldu\u011funu anlamak, etkili bir kaynak y\u00f6netimi stratejisi olu\u015fturman\u0131n ilk ad\u0131m\u0131d\u0131r. Unutulmamal\u0131d\u0131r ki Cgroups v2&#8217;de baz\u0131 altsistemler birle\u015ftirilmi\u015f veya \u00e7al\u0131\u015fma \u015fekilleri de\u011fi\u015ftirilmi\u015ftir. \u00d6rne\u011fin, Cgroups v2&#8217;de her bir kaynak i\u00e7in ayr\u0131 hiyerar\u015filer yerine tek birle\u015fik bir hiyerar\u015fi bulunur ve bu, y\u00f6netimi baz\u0131 a\u00e7\u0131lardan basitle\u015ftirir. Ancak temel prensipler ve kaynak kontrol mekanizmalar\u0131 benzer kal\u0131r.<\/p>\n<h2>Ad\u0131m Ad\u0131m Cgroups Yap\u0131land\u0131rmas\u0131: Bir Uygulamay\u0131 Kaynak K\u0131s\u0131tlamas\u0131na Nas\u0131l Sokars\u0131n\u0131z?<\/h2>\n<p>Cgroups&#8217;u teorik olarak anlamak \u00f6nemli olsa da, ger\u00e7ek d\u00fcnyada nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 pratik \u00f6rneklerle g\u00f6rmek \u00e7ok daha \u00f6\u011freticidir. Bu b\u00f6l\u00fcmde, iki farkl\u0131 senaryo \u00fczerinden Cgroups&#8217;u ad\u0131m ad\u0131m nas\u0131l yap\u0131land\u0131raca\u011f\u0131m\u0131z\u0131 ve bir uygulaman\u0131n kaynak t\u00fcketimini nas\u0131l k\u0131s\u0131tlayaca\u011f\u0131m\u0131z\u0131 inceleyece\u011fiz. Bu \u00f6rnekler, okuyucunun konuya hakimiyetini art\u0131r\u0131rken, potansiyel sorunlara kar\u015f\u0131 somut \u00e7\u00f6z\u00fcmler sunacakt\u0131r.<\/p>\n<h3>Vaka Analizi 1: Bellek Canavar\u0131 Bir Uygulamay\u0131 S\u0131n\u0131rlama<\/h3>\n<p>Bir uygulaman\u0131z\u0131n beklenenden \u00e7ok daha fazla bellek t\u00fcketti\u011fini ve bu durumun sunucunuzdaki di\u011fer servisleri olumsuz etkiledi\u011fini varsayal\u0131m. Bu, genellikle hatal\u0131 yaz\u0131lm\u0131\u015f bir koddan veya bir bellek s\u0131z\u0131nt\u0131s\u0131ndan kaynaklanabilir. Cgroups kullanarak bu uygulamay\u0131 belirli bir bellek limitiyle s\u0131n\u0131rlayabiliriz. Bu vaka analizinde, &#8216;stress&#8217; arac\u0131n\u0131 (veya basit bir Python beti\u011fini) kullanarak bir bellek t\u00fcketim senaryosu olu\u015fturup Cgroups ile nas\u0131l y\u00f6netece\u011fimizi g\u00f6rece\u011fiz.<\/p>\n<p>\u00d6ncelikle, Cgroups y\u00f6netim ara\u00e7lar\u0131n\u0131n (cgroup-tools) kurulu oldu\u011fundan emin olun. Ubuntu\/Debian tabanl\u0131 sistemlerde:<\/p>\n<pre><code>\nsudo apt update\nsudo apt install cgroup-tools stress\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi, bellek i\u00e7in yeni bir Cgroup olu\u015ftural\u0131m. Ad\u0131 \"bellek_limiti_grubu\" olsun:<\/p>\n<pre><code>\nsudo cgcreate -g memory:bellek_limiti_grubu\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, <code>\/sys\/fs\/cgroup\/memory\/bellek_limiti_grubu<\/code> dizinini ve ilgili kontrol dosyalar\u0131n\u0131 olu\u015fturacakt\u0131r. Ard\u0131ndan, bu gruba bir bellek limiti atayal\u0131m. \u00d6rne\u011fin, 100 megabayt (MB) limit verelim:<\/p>\n<pre><code>\nsudo cgset -r memory.limit_in_bytes=100M bellek_limiti_grubu\n<\/pre>\n<p><\/code><\/p>\n<p>Bu limit, grup i\u00e7indeki t\u00fcm s\u00fcre\u00e7lerin toplamda 100 MB'tan fazla bellek kullanamayaca\u011f\u0131 anlam\u0131na gelir. \u015eimdi, bu grubun i\u00e7ine bellek t\u00fcketen bir uygulama (<code>stress<\/code>) ba\u015flatal\u0131m ve 200 MB bellek ay\u0131rmaya \u00e7al\u0131\u015fmas\u0131n\u0131 isteyelim (ki bu limitimizin iki kat\u0131d\u0131r):<\/p>\n<pre><code>\nsudo cgexec -g memory:bellek_limiti_grubu stress --vm 1 --vm-bytes 200M --vm-hang 0 --timeout 60s\n<\/pre>\n<p><\/code><\/p>\n<p>Uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, k\u0131sa bir s\u00fcre sonra uygulama ya sonland\u0131r\u0131lacak ya da bellek tahsisinde ba\u015far\u0131s\u0131z olacakt\u0131r. OOM Killer'\u0131n devriye gezdi\u011fini ve s\u00fcreci bellek limiti nedeniyle sonland\u0131rd\u0131\u011f\u0131n\u0131 sistem g\u00fcnl\u00fcklerinde (<code>dmesg<\/code>) g\u00f6rebilirsiniz. Grubun mevcut bellek kullan\u0131m\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code>\ncat \/sys\/fs\/cgroup\/memory\/bellek_limiti_grubu\/memory.usage_in_bytes\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, Cgroup'un kulland\u0131\u011f\u0131 bellek miktar\u0131n\u0131 bayt cinsinden g\u00f6sterecektir. Limitinize yak\u0131n bir de\u011fer g\u00f6rmelisiniz, \u00e7\u00fcnk\u00fc s\u00fcre\u00e7 bu limiti a\u015fmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131nda durdurulmu\u015ftur. \u0130\u015flem bittikten sonra, Cgroup'u temizlemeyi unutmay\u0131n:<\/p>\n<pre><code>\nsudo cgdelete memory:bellek_limiti_grubu\n<\/pre>\n<p><\/code><\/p>\n<h3>Vaka Analizi 2: CPU Yo\u011fun Bir \u0130\u015flemi Kontrol Alt\u0131na Alma<\/h3>\n<p>Bir di\u011fer yayg\u0131n senaryo, tek bir uygulaman\u0131n t\u00fcm CPU kaynaklar\u0131n\u0131 t\u00fcketerek di\u011fer servislerin yava\u015flamas\u0131na neden olmas\u0131d\u0131r. Bu durum, \u00f6zellikle \u00e7oklu \u00e7ekirdekli sistemlerde, bir uygulaman\u0131n gereksiz yere birden fazla \u00e7ekirde\u011fi me\u015fgul etmesiyle ortaya \u00e7\u0131kabilir. Cgroups ile bir uygulaman\u0131n kullanabilece\u011fi CPU miktar\u0131n\u0131 belirli bir y\u00fczdeyle s\u0131n\u0131rlayabiliriz.<\/p>\n<p>\u015eimdi CPU i\u00e7in yeni bir Cgroup olu\u015ftural\u0131m. Ad\u0131 \"cpu_limiti_grubu\" olsun:<\/p>\n<pre><code>\nsudo cgcreate -g cpu:cpu_limiti_grubu\n<\/pre>\n<p><\/code><\/p>\n<p>Bu gruba CPU limiti atayal\u0131m. \u00d6rne\u011fin, CPU'nun %50'sini kullanmas\u0131na izin verelim. Bunun i\u00e7in <code>cpu.cfs_period_us<\/code> ve <code>cpu.cfs_quota_us<\/code> parametrelerini kullanaca\u011f\u0131z. <code>cfs_period_us<\/code> genellikle 100ms (100000 mikro saniye) olarak ayarlan\u0131r. %50 CPU i\u00e7in, <code>cfs_quota_us<\/code> de\u011feri 50ms (50000 mikro saniye) olmal\u0131d\u0131r:<\/p>\n<pre><code>\nsudo cgset -r cpu.cfs_period_us=100000 -r cpu.cfs_quota_us=50000 cpu_limiti_grubu\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi bu grubun i\u00e7ine yo\u011fun CPU kullanan bir uygulama (<code>stress<\/code>) ba\u015flatal\u0131m. <code>stress -c 1<\/code> komutu, tek bir CPU \u00e7ekirde\u011fini %100 kullanmaya \u00e7al\u0131\u015f\u0131r:<\/p>\n<pre><code>\nsudo cgexec -g cpu:cpu_limiti_grubu stress -c 1 --timeout 60s\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, ba\u015fka bir terminalde <code>top<\/code> veya <code>htop<\/code> gibi bir izleme arac\u0131 a\u00e7\u0131n. <code>stress<\/code> s\u00fcrecinin CPU kullan\u0131m\u0131n\u0131 g\u00f6zlemleyin. Beklentiniz, tek bir \u00e7ekirde\u011fi %100 yerine, \u00e7ekirde\u011fin sadece %50'sini (veya toplam sistem CPU'sunun %50'sini) kullan\u0131yor olmas\u0131d\u0131r. Bu, Cgroup'un CPU kaynaklar\u0131n\u0131 ba\u015far\u0131yla k\u0131s\u0131tlad\u0131\u011f\u0131n\u0131 g\u00f6sterir. Uygulaman\u0131n CPU kullan\u0131m\u0131na yak\u0131ndan bakmak i\u00e7in:<\/p>\n<pre><code>\ncat \/sys\/fs\/cgroup\/cpu\/cpu_limiti_grubu\/cpu.stat\n<\/pre>\n<p><\/code><\/p>\n<p>Bu dosya, Cgroup'un CPU kullan\u0131m istatistiklerini g\u00f6sterir. <code>usage_usec<\/code> parametresi toplam CPU kullan\u0131m\u0131n\u0131 mikro saniye cinsinden belirtir. \u0130\u015flem bittikten sonra, yine Cgroup'u temizlemeyi unutmay\u0131n:<\/p>\n<pre><code>\nsudo cgdelete cpu:cpu_limiti_grubu\n<\/pre>\n<p><\/code><\/p>\n<p>Bu vaka analizleri, Cgroups'un g\u00fcc\u00fcn\u00fc ve esnekli\u011fini g\u00f6stermektedir. Bellek veya CPU gibi kritik kaynaklar\u0131 y\u00f6netmek, sunucu stabilitesini ve uygulama performans\u0131n\u0131 do\u011frudan etkiler. Bu temel ad\u0131mlar\u0131 uygulayarak, sisteminizdeki kaynak tahsisini \u00e7ok daha etkin bir \u015fekilde kontrol edebilirsiniz.<\/p>\n<p class=\"expert-tip\">Uzman \u0130pucu: Cgroups ile sadece limitler belirlemekle kalmaz, ayn\u0131 zamanda <code>cpu.shares<\/code> gibi parametrelerle kaynaklara \u00f6ncelik de atayabilirsiniz. D\u00fc\u015f\u00fck \u00f6ncelikli arka plan g\u00f6revlerinin, y\u00fcksek \u00f6ncelikli \u00f6n u\u00e7 uygulamalar\u0131n\u0131 etkilemesini engellemek i\u00e7in bu \u00f6zelli\u011fi kullan\u0131n.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131: Docker ve Kubernetes'te Cgroups Kullan\u0131m\u0131 Neden Kritik?<\/h2>\n<p>Cgroups, yaln\u0131zca manuel olarak s\u00fcre\u00e7leri izole etmek i\u00e7in de\u011fil, ayn\u0131 zamanda modern sanalla\u015ft\u0131rma ve konteyner teknolojilerinin de temel ta\u015flar\u0131ndan biridir. \u00d6zellikle Docker ve Kubernetes gibi platformlar, uygulamalar\u0131n kaynaklar\u0131n\u0131 izole etmek ve y\u00f6netmek i\u00e7in Cgroups'u yo\u011fun bir \u015fekilde kullan\u0131r. Bu durum, \u00e7oklu kirac\u0131l\u0131k (multi-tenancy) ortamlar\u0131nda veya karma\u015f\u0131k mikroservis mimarilerinde sistem stabilitesi ve performans\u0131 i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<h3>Docker ve Cgroups: Konteyner \u0130zolasyonunun Arkas\u0131ndaki G\u00fc\u00e7<\/h3>\n<p>Docker, bir uygulaman\u0131n t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131yla birlikte hafif, ta\u015f\u0131nabilir bir konteyner i\u00e7inde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan pop\u00fcler bir konteynerizasyon platformudur. Docker'\u0131n sundu\u011fu izolasyon yetenekleri (dosya sistemi, a\u011f ve s\u00fcre\u00e7 izolasyonu) genellikle Linux Namespaces taraf\u0131ndan sa\u011flan\u0131rken, kaynak k\u0131s\u0131tlama ve y\u00f6netim yetenekleri Cgroups taraf\u0131ndan sa\u011flan\u0131r. \u00d6rne\u011fin, bir Docker konteyneri olu\u015ftururken <code>--memory<\/code> veya <code>--cpu<\/code> gibi parametreler kullanarak kaynak limitleri belirleyebilirsiniz. Docker motoru, arka planda bu limitleri Cgroups altsistemlerine kar\u015f\u0131l\u0131k gelen dosyalar \u00fczerinden ayarlar.<\/p>\n<pre><code>\ndocker run --name benim-web-uygulamam --memory=\"512m\" --cpus=\"0.5\" nginx\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki komutta:<\/p>\n<ul>\n<li><code>--memory=\"512m\"<\/code>: Docker, bu konteyner i\u00e7in 512 megabayt bellek limiti atamak \u00fczere Cgroups'un <code>memory.limit_in_bytes<\/code> parametresini kullan\u0131r. Konteyner bu s\u0131n\u0131r\u0131 a\u015ft\u0131\u011f\u0131nda, OOM Killer devreye girebilir.<\/li>\n<li><code>--cpus=\"0.5\"<\/code>: Docker, bu konteynerin CPU kaynaklar\u0131n\u0131n yar\u0131s\u0131n\u0131 (bir \u00e7ekirde\u011fin %50'si) kullanabilece\u011fini belirtir. Bu, Cgroups'un <code>cpu.cfs_quota_us<\/code> ve <code>cpu.cfs_period_us<\/code> parametrelerine \u00e7evrilir.<\/li>\n<\/ul>\n<p>Bu sayede, bir Nginx konteyneri sistemdeki di\u011fer konteynerler veya host s\u00fcre\u00e7leri \u00fczerinde a\u015f\u0131r\u0131 y\u00fck olu\u015fturmadan, kendisine ayr\u0131lan kaynaklarla \u00e7al\u0131\u015fmaya devam eder. Bu, \u00f6zellikle ayn\u0131 sunucuda birden fazla farkl\u0131 uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 durumlarda kritik \u00f6neme sahiptir.<\/p>\n<h3>Kubernetes ve Cgroups: Pod Kaynak Y\u00f6netimi<\/h3>\n<p>Kubernetes, konteynerle\u015ftirilmi\u015f i\u015f y\u00fcklerini ve hizmetleri y\u00f6netmek i\u00e7in tasarlanm\u0131\u015f a\u00e7\u0131k kaynakl\u0131 bir platformdur. Kubernetes'te, uygulamalar \"Pod\" ad\u0131 verilen mant\u0131ksal birimler i\u00e7inde \u00e7al\u0131\u015f\u0131r. Her Pod, bir veya daha fazla konteyner i\u00e7erir ve Kubernetes, bu Pod'lar\u0131n kaynaklar\u0131n\u0131 y\u00f6netmek i\u00e7in altta yatan Cgroups mekanizmas\u0131n\u0131 kullan\u0131r. Kubernetes'te kaynak y\u00f6netimi, Pod tan\u0131m\u0131nda <code>requests<\/code> (istenen kaynaklar) ve <code>limits<\/code> (maksimum kaynaklar) belirterek yap\u0131l\u0131r:<\/p>\n<pre><code class=\"language-yaml\">\napiVersion: v1\nkind: Pod\nmetadata:\n  name: benim-uygulamam\nspec:\n  containers:\n  - name: webserver\n    image: nginx\n    resources:\n      requests:\n        memory: \"64Mi\"\n        cpu: \"250m\" # 0.25 CPU\n      limits:\n        memory: \"128Mi\"\n        cpu: \"500m\" # 0.5 CPU\n<\/pre>\n<p><\/code><\/p>\n<p>Bu YAML tan\u0131m\u0131nda:<\/p>\n<ul>\n<li><code>requests<\/code>: Kubernetes zamanlay\u0131c\u0131s\u0131, Pod'u yeterli kayna\u011fa sahip bir d\u00fc\u011f\u00fcme (node) yerle\u015ftirmeye \u00e7al\u0131\u015f\u0131r. Bu de\u011ferler, Pod'un minimum ihtiya\u00e7lar\u0131n\u0131 belirtir.<\/li>\n<li><code>limits<\/code>: Bu de\u011ferler, Pod'un a\u015fmas\u0131na izin verilmeyen maksimum kaynaklar\u0131 tan\u0131mlar. Kubernetes, bu limitleri Cgroups'a \u00e7evirir. E\u011fer bir konteyner bellek limitini a\u015farsa, Kubernetes onu sonland\u0131rabilir. CPU limiti a\u015f\u0131ld\u0131\u011f\u0131nda ise, konteynerin CPU kullan\u0131m\u0131 k\u0131s\u0131tlan\u0131r ancak genellikle sonland\u0131r\u0131lmaz.<\/li>\n<\/ul>\n<p>Kubernetes, Pod'lar\u0131 her bir d\u00fc\u011f\u00fcmdeki (node) Cgroups hiyerar\u015fisine yerle\u015ftirerek, kaynaklar\u0131 adil bir \u015fekilde da\u011f\u0131t\u0131r ve bir Pod'un di\u011ferlerini \"bo\u011fmas\u0131n\u0131\" engeller. Bu, b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik bulut ortamlar\u0131nda stabiliteyi ve \u00f6ng\u00f6r\u00fclebilir performans\u0131 sa\u011flamak i\u00e7in kritik bir \u00f6zelliktir. \u00d6rne\u011fin, bir sunucu yo\u011fun y\u00fcke maruz kald\u0131\u011f\u0131nda, Cgroups sayesinde d\u00fc\u015f\u00fck \u00f6ncelikli Pod'lar\u0131n kaynak kullan\u0131m\u0131 k\u0131s\u0131tlan\u0131rken, kritik Pod'lar\u0131n \u00e7al\u0131\u015fmaya devam etmesi sa\u011flanabilir.<\/p>\n<p>Bu ger\u00e7ek d\u00fcnya senaryolar\u0131, Cgroups'un modern bulut bili\u015fim ve DevOps d\u00fcnyas\u0131ndaki vazge\u00e7ilmez rol\u00fcn\u00fc a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Konteynerizasyonun ve mikroservis mimarilerinin yayg\u0131nla\u015fmas\u0131yla birlikte, Cgroups bilgisi, sistem performans\u0131n\u0131 optimize etmek ve stabiliteyi sa\u011flamak isteyen her profesyonel i\u00e7in temel bir beceri haline gelmi\u015ftir.<\/p>\n<style>\n  \/* Mobil Uyumlu HTML \u00d6rne\u011fi: Basit bir g\u00f6rselin veya metin blo\u011funun k\u00fc\u00e7\u00fck ekranlarda nas\u0131l adapte olabilece\u011fi *\/\n  .container-info {\n    padding: 15px;\n    margin-bottom: 20px;\n    border: 1px solid #ccc;\n    background-color: #f9f9f9;\n  }<\/p>\n<p>  @media screen and (max-width: 768px) {\n    .container-info {\n      font-size: 0.9em;\n      padding: 10px;\n    }\n    .container-info p {\n      line-height: 1.4;\n    }\n  }\n<\/style>\n<div class=\"container-info\">\n<h3>Mobil Uyumlu Cgroups Bilgisi<\/h3>\n<p>Cgroups'un mobil cihazlarla do\u011frudan bir ili\u015fkisi olmasa da, sunucu taraf\u0131nda mobil uygulamalara hizmet veren API'lerin \u00e7al\u0131\u015ft\u0131\u011f\u0131 konteyner ortamlar\u0131n\u0131n performans\u0131n\u0131 ve kararl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamada kritik bir role sahiptir. Mobil cihazlarda \u00e7al\u0131\u015fan uygulamalar, sunucu taraf\u0131ndaki kaynak y\u00f6netimine ba\u011f\u0131ml\u0131d\u0131r.<\/p>\n<\/div>\n<h2>Cgroups ile \u0130leri D\u00fczey Optimizasyon ve G\u00f6zetim: Performans\u0131 Daha \u0130leriye Ta\u015f\u0131mak<\/h2>\n<p>Cgroups'un temel i\u015fleyi\u015fini ve pratik kullan\u0131mlar\u0131n\u0131 anlad\u0131ktan sonra, daha karma\u015f\u0131k senaryolar ve ileri d\u00fczey optimizasyon teknikleri \u00fczerine odaklanabiliriz. Cgroups'un sa\u011flad\u0131\u011f\u0131 esneklik, sadece limitler belirlemenin \u00f6tesine ge\u00e7er; sistem performans\u0131n\u0131 daha derinlemesine anlamak ve y\u00f6netmek i\u00e7in \u00e7e\u015fitli ara\u00e7lar ve y\u00f6ntemler sunar. Bu b\u00f6l\u00fcmde, Cgroups v1 ve v2 aras\u0131ndaki farklara, <code>systemd<\/code> ile entegrasyona ve izleme ara\u00e7lar\u0131na de\u011finece\u011fiz.<\/p>\n<h3>Cgroups v1 ve Cgroups v2: Aras\u0131ndaki Farklar Nelerdir?<\/h3>\n<p>Cgroups, zaman i\u00e7inde geli\u015ferek Cgroups v1 ve Cgroups v2 olmak \u00fczere iki ana versiyona ayr\u0131lm\u0131\u015ft\u0131r. Her ikisi de ayn\u0131 temel amac\u0131 payla\u015fsa da, uygulama ve y\u00f6netim \u015fekillerinde \u00f6nemli farkl\u0131l\u0131klar g\u00f6sterirler:<\/p>\n<ul>\n<li><strong>Cgroups v1<\/strong>: Bu, ilk versiyon olup, her altsistem (CPU, bellek vb.) i\u00e7in ayr\u0131 bir hiyerar\u015fi olu\u015fturulmas\u0131na izin verir. Bu durum, baz\u0131 karma\u015f\u0131k senaryolarda esneklik sa\u011flasa da, farkl\u0131 altsistemler aras\u0131nda hiyerar\u015filerin senkronizasyonunu zorla\u015ft\u0131rabilir ve bazen tutars\u0131zl\u0131klara yol a\u00e7abilir. \u00d6rne\u011fin, bir s\u00fcreci hem CPU hem de bellek k\u0131s\u0131tlamalar\u0131na tabi tutmak i\u00e7in, o s\u00fcreci her iki altsistemin ilgili Cgroup hiyerar\u015fisine manuel olarak eklemeniz gerekebilir.<\/li>\n<li><strong>Cgroups v2<\/strong>: Daha yeni ve daha modern bir yakla\u015f\u0131md\u0131r. Cgroups v2, tek bir birle\u015fik hiyerar\u015fi kullan\u0131r. Yani, t\u00fcm altsistemler tek bir a\u011fa\u00e7 yap\u0131s\u0131nda d\u00fczenlenir. Bu, y\u00f6netimi basitle\u015ftirir, hiyerar\u015filer aras\u0131 tutars\u0131zl\u0131klar\u0131 ortadan kald\u0131r\u0131r ve baz\u0131 yeni \u00f6zelliklere (\u00f6rne\u011fin, daha iyi G\/\u00c7 kontrol\u00fc) olanak tan\u0131r. Modern Linux \u00e7ekirdekleri ve da\u011f\u0131t\u0131mlar\u0131 (\u00f6rne\u011fin, Ubuntu 20.04+, Fedora 31+) Cgroups v2'yi varsay\u0131lan olarak desteklemekte ve kullanmaktad\u0131r. \u00d6zellikle konteyner orkestrasyon ara\u00e7lar\u0131 da zamanla Cgroups v2'ye ge\u00e7i\u015f yapmaktad\u0131r. Ge\u00e7i\u015f s\u0131ras\u0131nda uyumluluk sorunlar\u0131 ya\u015fanmamas\u0131 i\u00e7in kulland\u0131\u011f\u0131n\u0131z sistemin ve yaz\u0131l\u0131mlar\u0131n hangi versiyonu kulland\u0131\u011f\u0131n\u0131 bilmek \u00f6nemlidir.<\/li>\n<\/ul>\n<h3>Systemd ile Cgroups Entegrasyonu: Daha Kolay Y\u00f6netim<\/h3>\n<p>\u00c7o\u011fu modern Linux da\u011f\u0131t\u0131m\u0131nda kullan\u0131lan <code>systemd<\/code> init sistemi, Cgroups ile s\u0131k\u0131 bir entegrasyona sahiptir. <code>systemd<\/code>, kendi birimleri (servisler, soketler vb.) i\u00e7in otomatik olarak Cgroups olu\u015fturur ve y\u00f6netir. Bu, Cgroups'u manuel olarak y\u00f6netme ihtiyac\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azalt\u0131r ve sistem y\u00f6netimi g\u00f6revlerini basitle\u015ftirir. <code>systemd<\/code> sayesinde, Cgroups ayarlar\u0131n\u0131 servis tan\u0131mlar\u0131n\u0131za do\u011frudan entegre edebilirsiniz.<\/p>\n<pre><code class=\"language-ini\">\n# \/etc\/systemd\/system\/benim-servisim.service\n[Unit]\nDescription=Benim \u00d6zel Servisim\n\n[Service]\nExecStart=\/usr\/bin\/benim-uygulamam\nMemoryLimit=200M\nCPULimit=50%\nIOWeight=200 # blkio.weight kar\u015f\u0131l\u0131\u011f\u0131\nTasksMax=100 # pids.max kar\u015f\u0131l\u0131\u011f\u0131\n\n[Install]\nWantedBy=multi-user.target\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>MemoryLimit<\/code>, <code>CPULimit<\/code> gibi parametreler do\u011frudan <code>systemd<\/code> servis dosyas\u0131na entegre edilerek, <code>systemd<\/code>'nin bu servisi ba\u015flat\u0131rken ilgili Cgroups parametrelerini otomatik olarak ayarlamas\u0131n\u0131 sa\u011flar. Bu, Cgroups'un daha tutarl\u0131 ve merkezi bir \u015fekilde y\u00f6netilmesine olanak tan\u0131r. Ayr\u0131ca, <code>systemd-run<\/code> komutunu kullanarak ge\u00e7ici Cgroup'lar olu\u015fturabilir ve bir komutu bu Cgroup i\u00e7inde \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code>\nsudo systemd-run --scope -p MemoryLimit=150M -- \/usr\/bin\/benim-bellek-uygulamam\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, <code>benim-bellek-uygulamam<\/code> adl\u0131 program\u0131 150MB bellek limitiyle \u00e7al\u0131\u015ft\u0131ran ge\u00e7ici bir <code>systemd<\/code> skobu (scope) olu\u015fturur. Bu, h\u0131zl\u0131 testler ve \u00f6zel g\u00f6revler i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3>\u0130zleme Ara\u00e7lar\u0131 ve Performans G\u00f6zetimi<\/h3>\n<p>Cgroups'un etkin bir \u015fekilde kullan\u0131labilmesi i\u00e7in, Cgroups i\u00e7indeki s\u00fcre\u00e7lerin kaynak t\u00fcketimini do\u011fru bir \u015fekilde izlemek esast\u0131r. \u00c7e\u015fitli ara\u00e7lar bu konuda yard\u0131mc\u0131 olabilir:<\/p>\n<ul>\n<li><strong><code>cgroup-tools<\/code> (<code>cgtop<\/code>)<\/strong>: Bu ara\u00e7, sistemdeki mevcut Cgroups'lar\u0131 ve bunlar\u0131n anl\u0131k CPU, bellek, G\/\u00c7 kullan\u0131mlar\u0131n\u0131 g\u00f6steren interaktif bir aray\u00fcz sunar. T\u0131pk\u0131 <code>top<\/code> komutu gibi, Cgroups baz\u0131nda kaynak t\u00fcketimini g\u00f6rselle\u015ftirmek i\u00e7in idealdir.<\/li>\n<li><strong><code>\/sys\/fs\/cgroup<\/code> Dizini<\/strong>: Her Cgroup'a ait durum ve kullan\u0131m bilgileri, bu sanal dosya sistemindeki dosyalarda bulunur. \u00d6rne\u011fin, <code>memory.usage_in_bytes<\/code>, <code>cpu.stat<\/code>, <code>blkio.io_service_bytes<\/code> gibi dosyalar, bir Cgroup'un mevcut kaynak t\u00fcketimini manuel olarak kontrol etmek i\u00e7in kullan\u0131labilir.<\/li>\n<li><strong><code>perf<\/code> ve <code>bcc-tools<\/code><\/strong>: Daha derinlemesine performans analizi i\u00e7in, Linux'un <code>perf<\/code> arac\u0131 ve eBPF tabanl\u0131 <code>bcc-tools<\/code> gibi geli\u015fmi\u015f izleme ara\u00e7lar\u0131 kullan\u0131labilir. Bu ara\u00e7lar, \u00e7ekirdek seviyesindeki olaylar\u0131 izleyerek Cgroups'un performans \u00fczerindeki etkilerini daha detayl\u0131 anlaman\u0131za yard\u0131mc\u0131 olabilir.<\/li>\n<\/ul>\n<p class=\"expert-tip\">Uzman \u0130pucu: OOM Killer'\u0131 Cgroups ile y\u00f6netmek, kritik uygulamalar\u0131n beklenmedik bellek sorunlar\u0131 y\u00fcz\u00fcnden \u00e7\u00f6kmesini engelleyebilir. Bir Cgroup'a bellek limiti atad\u0131\u011f\u0131n\u0131zda, bu gruptaki s\u00fcre\u00e7ler limiti a\u015farsa sistem OOM Killer'\u0131 devreye sokar. Ancak, <code>memory.oom_control<\/code> dosyas\u0131n\u0131 kullanarak OOM Killer davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftirebilirsiniz. \u00d6rne\u011fin, <code>oom_score_adj<\/code> parametresini ayarlayarak bir s\u00fcrecin OOM Killer taraf\u0131ndan sonland\u0131r\u0131lma olas\u0131l\u0131\u011f\u0131n\u0131 art\u0131rabilir veya azaltabilirsiniz. Ayr\u0131ca, <code>memory.failcnt<\/code> dosyas\u0131n\u0131 kontrol ederek bir Cgroup'un ka\u00e7 kez bellek limitine ula\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<p>Cgroups ile ileri d\u00fczey optimizasyon ve g\u00f6zetim, sistem y\u00f6neticilerine ve geli\u015ftiricilere, uygulama performans\u0131n\u0131 ve sistem stabilitesini daha da geli\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. Do\u011fru yap\u0131land\u0131rma ve s\u00fcrekli izleme ile kaynak k\u0131s\u0131tlamalar\u0131n\u0131n \u00f6tesine ge\u00e7erek, sistemlerinizi en verimli \u015fekilde \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular ve Sonu\u00e7: Cgroups Bilginizi Nas\u0131l Daha da Geli\u015ftirebilirsiniz?<\/h2>\n<p>Linux Cgroups, modern bili\u015fim altyap\u0131lar\u0131n\u0131n temelini olu\u015fturan g\u00fc\u00e7l\u00fc bir kaynak y\u00f6netim arac\u0131d\u0131r. Bu rehber boyunca, Cgroups'un ne oldu\u011fu, neden \u00f6nemli oldu\u011fu, temel altsistemleri, manuel yap\u0131land\u0131rma \u00f6rnekleri ve Docker\/Kubernetes gibi ger\u00e7ek d\u00fcnya uygulamalar\u0131ndaki rol\u00fc \u00fczerinde durduk. Ayr\u0131ca, Cgroups v1 ve v2 aras\u0131ndaki farklar\u0131, <code>systemd<\/code> ile entegrasyonu ve ileri d\u00fczey izleme tekniklerini de inceledik. \u00d6zetle, Cgroups, sistem y\u00f6neticilerine ve geli\u015ftiricilere s\u00fcre\u00e7lerin CPU, bellek, disk G\/\u00c7 ve di\u011fer kaynaklar\u0131 nas\u0131l t\u00fcketti\u011fi \u00fczerinde hassas ve hiyerar\u015fik bir kontrol sa\u011flayarak, sistem stabilizasyonunu, adil kaynak da\u011f\u0131t\u0131m\u0131n\u0131 ve \u00f6ng\u00f6r\u00fclebilir performans\u0131 m\u00fcmk\u00fcn k\u0131lar.<\/p>\n<p>Konteynerizasyon ve mikroservis mimarilerinin yayg\u0131nla\u015fmas\u0131yla birlikte, Cgroups'un \u00f6nemi daha da artm\u0131\u015ft\u0131r. \u0130ster basit bir test sunucusunda kaynaklar\u0131 izole etmek, ister b\u00fcy\u00fck \u00f6l\u00e7ekli bir Kubernetes k\u00fcmesinde Pod kaynaklar\u0131n\u0131 y\u00f6netmek olsun, Cgroups bilgisi, kar\u015f\u0131la\u015f\u0131lan performans sorunlar\u0131na kar\u015f\u0131 sa\u011flam \u00e7\u00f6z\u00fcmler sunar. Bu teknolojiye hakim olmak, yaln\u0131zca mevcut sistemlerinizi optimize etmekle kalmaz, ayn\u0131 zamanda gelecekteki mimarileri daha verimli ve dayan\u0131kl\u0131 bir \u015fekilde tasarlaman\u0131za da olanak tan\u0131r. Cgroups d\u00fcnyas\u0131nda kendinizi daha da geli\u015ftirmek i\u00e7in Linux \u00e7ekirde\u011fi belgelerini incelemek, farkl\u0131 altsistemlerin derinlemesine parametrelerini ke\u015ffetmek ve \u00e7e\u015fitli ger\u00e7ek d\u00fcnya senaryolar\u0131nda pratik yapmak faydal\u0131 olacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ol>\n<li><strong>Cgroups sadece Linux'a m\u0131 \u00f6zeldir?<\/strong>\n<p>Evet, Cgroups (Control Groups) Linux \u00e7ekirde\u011finin bir \u00f6zelli\u011fidir ve yaln\u0131zca Linux i\u015fletim sistemlerinde bulunur. Di\u011fer Unix benzeri sistemlerde (\u00f6rne\u011fin FreeBSD'deki jails veya Solaris'teki zones) benzer kaynak y\u00f6netim mekanizmalar\u0131 olsa da, bunlar Cgroups'tan farkl\u0131d\u0131r.<\/p>\n<\/li>\n<li><strong>Cgroups kullanmak performans\u0131 nas\u0131l etkiler?<\/strong>\n<p>Cgroups kullanmak, do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda genel sistem performans\u0131n\u0131 art\u0131r\u0131r. Kaynaklar\u0131 adil bir \u015fekilde da\u011f\u0131tarak ve k\u00f6t\u00fc davranan uygulamalar\u0131n di\u011ferlerini etkilemesini \u00f6nleyerek sistemin stabil kalmas\u0131n\u0131 sa\u011flar. Ancak, yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f Cgroups limitleri (\u00f6rne\u011fin, \u00e7ok d\u00fc\u015f\u00fck limitler), uygulamalar\u0131n performans\u0131n\u0131 k\u0131s\u0131tlayarak beklentilerin alt\u0131nda kalmas\u0131na neden olabilir. A\u015f\u0131r\u0131 say\u0131da Cgroup olu\u015fturmak veya \u00e7ok karma\u015f\u0131k hiyerar\u015filer kullanmak da hafif bir overhead yaratabilir, ancak bu genellikle ihmal edilebilir d\u00fczeydedir.<\/p>\n<\/li>\n<li><strong>Docker veya Kubernetes kullan\u0131yorsam Cgroups'u manuel olarak y\u00f6netmem gerekir mi?<\/strong>\n<p>Genellikle hay\u0131r. Docker ve Kubernetes gibi konteyner orkestrasyon platformlar\u0131, kullan\u0131c\u0131 taraf\u0131ndan belirlenen kaynak istekleri ve limitleri (<code>--memory<\/code>, <code>--cpu<\/code>, <code>requests<\/code>, <code>limits<\/code>) temel alarak Cgroups'u arka planda otomatik olarak y\u00f6netirler. Bu platformlar\u0131n sundu\u011fu soyutlama katman\u0131 sayesinde, Cgroups detaylar\u0131yla do\u011frudan ilgilenmenize gerek kalmaz. Ancak, geli\u015fmi\u015f hata ay\u0131klama, \u00f6zel kaynak y\u00f6netimi senaryolar\u0131 veya platformun dahili i\u015fleyi\u015fini anlamak istedi\u011finiz durumlarda Cgroups bilgisi yine de \u00e7ok de\u011ferlidir.<\/p>\n<\/li>\n<li><strong>Cgroups ile a\u011f bant geni\u015fli\u011fini do\u011frudan s\u0131n\u0131rlayabilir miyim?<\/strong>\n<p>Cgroups'un <code>net_cls<\/code> ve <code>net_prio<\/code> altsistemleri, do\u011frudan a\u011f bant geni\u015fli\u011fini k\u0131s\u0131tlamaz. Bunun yerine, Cgroup'taki s\u00fcre\u00e7lerden gelen a\u011f trafi\u011fini etiketler ve \u00f6nceliklendirir. Ger\u00e7ek bant geni\u015fli\u011fi k\u0131s\u0131tlamas\u0131n\u0131 uygulamak i\u00e7in, bu Cgroups etiketleriyle birlikte Linux'un Traffic Control (<code>tc<\/code>) arac\u0131 kullan\u0131l\u0131r. <code>tc<\/code>, etiketlenmi\u015f paketlere \u00f6zel kural setleri uygulayarak bant geni\u015fli\u011fi limitleri, gecikme ve di\u011fer a\u011f parametrelerini y\u00f6netebilir.<\/p>\n<\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde,&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[241],"tags":[],"class_list":{"0":"post-34446","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon<\/title>\n<meta name=\"description\" content=\"Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde, Cgroups&#039;un temellerini, yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ke\u015ffedin. Sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in kritik \u00f6neme sahip bu teknoloji, sunucu performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon\" \/>\n<meta property=\"og:description\" content=\"Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde, Cgroups&#039;un temellerini, yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ke\u015ffedin. Sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in kritik \u00f6neme sahip bu teknoloji, sunucu performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-16T16:01:01+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon\",\"datePublished\":\"2025-11-16T16:01:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/\"},\"wordCount\":4462,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/\",\"name\":\"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-16T16:01:01+00:00\",\"description\":\"Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde, Cgroups'un temellerini, yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ke\u015ffedin. Sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in kritik \u00f6neme sahip bu teknoloji, sunucu performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon","description":"Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde, Cgroups'un temellerini, yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ke\u015ffedin. Sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in kritik \u00f6neme sahip bu teknoloji, sunucu performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/","og_locale":"tr_TR","og_type":"article","og_title":"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon","og_description":"Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde, Cgroups'un temellerini, yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ke\u015ffedin. Sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in kritik \u00f6neme sahip bu teknoloji, sunucu performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-16T16:01:01+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"24 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon","datePublished":"2025-11-16T16:01:01+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/"},"wordCount":4462,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/","url":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/","name":"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-16T16:01:01+00:00","description":"Linux Cgroups (Control Groups) nedir, sistem kaynaklar\u0131n\u0131 nas\u0131l y\u00f6netir ve uygulamalar\u0131n performans\u0131n\u0131 nas\u0131l izole eder? Bu detayl\u0131 rehberde, Cgroups'un temellerini, yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ke\u015ffedin. Sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in kritik \u00f6neme sahip bu teknoloji, sunucu performans\u0131n\u0131 optimize etmenin anahtar\u0131d\u0131r.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/understanding-linux-cgroups-kaynak-yonetimi-ve-izolasyon\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding Linux Cgroups: Kaynak Y\u00f6netimi ve \u0130zolasyon"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=34446"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34446\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}