<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ubuntu &#8211; Saviorhost İnternet Hizmetleri</title>
	<atom:link href="https://saviorhost.com/blog/category/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>https://saviorhost.com/blog</link>
	<description>Web projenizi kurtaran hosting sağlayıcısı: Savior Host!</description>
	<lastBuildDate>Wed, 22 Apr 2026 14:04:16 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://saviorhost.com/blog/wp-content/uploads/2018/07/cropped-favicon-150x150.png</url>
	<title>Ubuntu &#8211; Saviorhost İnternet Hizmetleri</title>
	<link>https://saviorhost.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Linux Sunucularda Kullanıcı Başına CPU Limiti Nasıl Ayarlanır? (Ubuntu &#038; CentOS)</title>
		<link>https://saviorhost.com/blog/linux-sunucularda-kullanici-basina-cpu-limiti-nasil-ayarlanir-ubuntu-centos/</link>
					<comments>https://saviorhost.com/blog/linux-sunucularda-kullanici-basina-cpu-limiti-nasil-ayarlanir-ubuntu-centos/#respond</comments>
		
		<dc:creator><![CDATA[admincim]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 14:03:32 +0000</pubDate>
				<category><![CDATA[Centos 7]]></category>
		<category><![CDATA[Keyhelp]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://saviorhost.com/blog/?p=2206</guid>

					<description><![CDATA[Paylaşımlı bir sunucuda (Shared Hosting), tek bir kullanıcının hatalı yazdığı bir kod veya yoğun trafik alan bir uygulaması tüm sunucunun işlemcisini (CPU) tüketebilir. Özellikle PHP-FPM dışında, doğrudan çekirdek üzerinde çalışan Node.js veya Python uygulamaları sunucuyu kolayca kilitleyebilir. Bu makalede, Ubuntu ve CentOS sunucularda systemd ve cgroups (Control Groups) mimarisini kullanarak kullanıcılara nasıl "vCPU" sınırı koyacağınızı adım adım anlatıyoruz.]]></description>
										<content:encoded><![CDATA[<p data-path-to-node="9">Sunucu yöneticilerinin en büyük kabuslarından biri <b data-path-to-node="9" data-index-in-node="51">&#8220;Gürültülü Komşu&#8221; (Noisy Neighbor)</b> sorunudur. Bir hosting müşteriniz, yazdığı Node.js uygulamasında sonsuz bir döngüye (infinite loop) girdiğinde veya saldırı aldığında, uygulamanın işlemci kullanımı saniyeler içinde %100&#8217;e vurabilir.</p>
<p data-path-to-node="10">Cpanel, KeyHelp veya Plesk gibi paneller RAM limitlerini yönetmekte başarılı olsa da, doğrudan terminal (SSH) üzerinden başlatılan işlemlere (Örn: PM2 ile başlatılan Node.js) müdahale edemezler. İşte tam bu noktada imdadımıza Linux&#8217;un kalbinde yatan <b data-path-to-node="10" data-index-in-node="250">systemd</b> ve <b data-path-to-node="10" data-index-in-node="261">cgroups</b> yetişiyor.</p>
<h3 data-path-to-node="11" id="cpuquota-mantigi-nasil-calisir">CPUQuota Mantığı Nasıl Çalışır?</h3>
<p data-path-to-node="12">Linux çekirdeğinde işlemci gücü yüzdelik dilimlerle hesaplanır. Formül oldukça basittir: <b data-path-to-node="12" data-index-in-node="89">1 Tam Çekirdek (1 vCPU) = %100 CPUQuota</b></p>
<p data-path-to-node="13">Yani sunucunuzda 16 çekirdek varsa ve siz bir kullanıcıya <code data-path-to-node="13" data-index-in-node="58">%200</code> limit verirseniz, o kullanıcı sistemin sadece 2 çekirdek gücü kadarını kullanabilir. Kalan 14 çekirdek diğer müşterileriniz için güvende kalır.</p>
<hr data-path-to-node="14" />
<h3 data-path-to-node="15" id="adim-adim-cpu-limiti-ayarlama-ubuntu-debian-centos-7-8-almalinux">Adım Adım CPU Limiti Ayarlama (Ubuntu, Debian, CentOS 7/8, AlmaLinux)</h3>
<p data-path-to-node="16">Modern Linux dağıtımlarının neredeyse tamamı servis yöneticisi olarak <code data-path-to-node="16" data-index-in-node="70">systemd</code> kullanır. Bu nedenle anlatacağımız yöntem hem <b data-path-to-node="16" data-index-in-node="124">Ubuntu/Debian</b> ailesinde hem de <b data-path-to-node="16" data-index-in-node="155">CentOS/RHEL/AlmaLinux</b> ailesinde kusursuz çalışır.</p>
<h4 data-path-to-node="17" id="1-kullanicinin-uid-user-id-degerini-bulun">1. Kullanıcının UID (User ID) Değerini Bulun</h4>
<p data-path-to-node="18">Limitlendirme işlemini kullanıcı adı (username) üzerinden değil, kullanıcının Linux ID&#8217;si (UID) üzerinden yapacağız. Örneğin, <code data-path-to-node="18" data-index-in-node="126">ornekuser</code> isimli müşterinin UID&#8217;sini bulmak için SSH üzerinden şu komutu yazın:</p>
<div class="code-block ng-tns-c3006272665-526 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiu8puuyf6TAxUAAAAAHQAAAAAQ4QM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c3006272665-526 ng-star-inserted">
<p><span class="ng-tns-c3006272665-526">Bash</span></p>
<div class="buttons ng-tns-c3006272665-526 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c3006272665-526">
<div class="animated-opacity ng-tns-c3006272665-526">
<pre class="ng-tns-c3006272665-526"><code class="code-container formatted ng-tns-c3006272665-526" role="text" data-test-id="code-content">id -u ornekuser
</code></pre>
</div>
</div>
</div>
<p data-path-to-node="20"><i data-path-to-node="20" data-index-in-node="0">Bu komut size <code data-path-to-node="20" data-index-in-node="14">1005</code> gibi bir sayı döndürecektir.</i></p>
<h4 data-path-to-node="21" id="2-limiti-uygulayin">2. Limiti Uygulayın</h4>
<p data-path-to-node="22">Bulduğunuz UID değerini kullanarak kullanıcıya limit atayın. Aşağıdaki komut, <code data-path-to-node="22" data-index-in-node="78">ornekuser</code> isimli müşterinin sunucuda çalıştıracağı tüm işlemleri (Web sitesi, Cron görevleri, PM2 vb.) toplamda <b data-path-to-node="22" data-index-in-node="190">1 Çekirdek (1 vCPU)</b> ile sınırlandırır:</p>
<div class="code-block ng-tns-c3006272665-527 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiu8puuyf6TAxUAAAAAHQAAAAAQ4gM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c3006272665-527 ng-star-inserted">
<p><span class="ng-tns-c3006272665-527">Bash</span></p>
<div class="buttons ng-tns-c3006272665-527 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c3006272665-527">
<div class="animated-opacity ng-tns-c3006272665-527">
<pre class="ng-tns-c3006272665-527"><code class="code-container formatted ng-tns-c3006272665-527" role="text" data-test-id="code-content">systemctl set-property user-1005.slice CPUQuota=100%
</code></pre>
</div>
</div>
</div>
<p data-path-to-node="24">Eğer başlangıç seviyesi bir paket sunuyorsanız ve yarım çekirdek (0.5 vCPU) vermek isterseniz:</p>
<div class="code-block ng-tns-c3006272665-528 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiu8puuyf6TAxUAAAAAHQAAAAAQ4wM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c3006272665-528 ng-star-inserted">
<p><span class="ng-tns-c3006272665-528">Bash</span></p>
<div class="buttons ng-tns-c3006272665-528 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c3006272665-528">
<div class="animated-opacity ng-tns-c3006272665-528">
<pre class="ng-tns-c3006272665-528"><code class="code-container formatted ng-tns-c3006272665-528" role="text" data-test-id="code-content">systemctl set-property user-1005.slice CPUQuota=50%
</code></pre>
</div>
</div>
</div>
<h4 data-path-to-node="26" id="3-mevcut-siniri-kontrol-etmek">3. Mevcut Sınırı Kontrol Etmek</h4>
<p data-path-to-node="27">Bir müşteriye daha önce ne kadar limit verdiğinizi görmek isterseniz şu komutu kullanabilirsiniz:</p>
<div class="code-block ng-tns-c3006272665-529 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiu8puuyf6TAxUAAAAAHQAAAAAQ5AM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c3006272665-529 ng-star-inserted">
<p><span class="ng-tns-c3006272665-529">Bash</span></p>
<div class="buttons ng-tns-c3006272665-529 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c3006272665-529">
<div class="animated-opacity ng-tns-c3006272665-529">
<pre class="ng-tns-c3006272665-529"><code class="code-container formatted ng-tns-c3006272665-529" role="text" data-test-id="code-content">systemctl show user-1005.slice -p CPUQuota
</code></pre>
</div>
</div>
</div>
<p data-path-to-node="29"><i data-path-to-node="29" data-index-in-node="0">Çıktı <code data-path-to-node="29" data-index-in-node="6">CPUQuota=100%</code> şeklindeyse işlem başarılıdır. Eğer <code data-path-to-node="29" data-index-in-node="56">[not set]</code> yazıyorsa o kullanıcının bir sınırı yoktur ve tüm işlemciyi kullanabilir.</i></p>
<h4 data-path-to-node="30" id="4-limiti-tamamen-kaldirmak-sinirsiz-yapmak">4. Limiti Tamamen Kaldırmak (Sınırsız Yapmak)</h4>
<p data-path-to-node="31">Kullanıcı daha üst bir pakete geçtiğinde veya sınırı kaldırmak istediğinizde, eşittir (<code data-path-to-node="31" data-index-in-node="87">=</code>) işaretinden sonrasını boş bırakarak komutu tekrar çalıştırın:</p>
<div class="code-block ng-tns-c3006272665-530 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiu8puuyf6TAxUAAAAAHQAAAAAQ5QM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c3006272665-530 ng-star-inserted">
<p><span class="ng-tns-c3006272665-530">Bash</span></p>
<div class="buttons ng-tns-c3006272665-530 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c3006272665-530">
<div class="animated-opacity ng-tns-c3006272665-530">
<pre class="ng-tns-c3006272665-530"><code class="code-container formatted ng-tns-c3006272665-530" role="text" data-test-id="code-content">systemctl set-property user-1005.slice CPUQuota=
</code></pre>
</div>
</div>
</div>
<hr data-path-to-node="33" />
<h3 data-path-to-node="34" id="bonus-tum-keyhelp-kullanicilarina-tek-seferde-limit-koymak-otomasyon">Bonus: Tüm KeyHelp Kullanıcılarına Tek Seferde Limit Koymak (Otomasyon)</h3>
<p data-path-to-node="35">Eğer halihazırda KeyHelp, cPanel veya benzeri bir sistem kullanıyorsanız ve sunucunuzdaki <b data-path-to-node="35" data-index-in-node="90">mevcut tüm müşterilere</b> tek seferde 1 vCPU (1 Çekirdek) sınırı koymak istiyorsanız, SSH üzerinden root yetkisiyle aşağıdaki basit <i data-path-to-node="35" data-index-in-node="219">bash</i> döngüsünü çalıştırabilirsiniz.</p>
<p data-path-to-node="36"><i data-path-to-node="36" data-index-in-node="0">(Not: Aşağıdaki script, kullanıcı dizinlerinin <code data-path-to-node="36" data-index-in-node="47">/home/users/</code> altında olduğu KeyHelp mimarisine göre yazılmıştır. cPanel için dizini <code data-path-to-node="36" data-index-in-node="131">/home/</code> olarak değiştirebilirsiniz).</i></p>
<div class="code-block ng-tns-c3006272665-531 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiu8puuyf6TAxUAAAAAHQAAAAAQ5gM">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c3006272665-531 ng-star-inserted">
<p><span class="ng-tns-c3006272665-531">Bash</span></p>
<div class="buttons ng-tns-c3006272665-531 ng-star-inserted"></div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c3006272665-531">
<div class="animated-opacity ng-tns-c3006272665-531">
<pre class="ng-tns-c3006272665-531"><code class="code-container formatted ng-tns-c3006272665-531" role="text" data-test-id="code-content"><span class="hljs-keyword">for</span> d <span class="hljs-keyword">in</span> /home/users/*; <span class="hljs-keyword">do</span>
    kullanici=$(basename <span class="hljs-string">"<span class="hljs-variable">$d</span>"</span>)
    uid=$(id -u <span class="hljs-string">"<span class="hljs-variable">$kullanici</span>"</span> 2&gt;/dev/null)
    
    <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$uid</span>"</span> ]; <span class="hljs-keyword">then</span>
        <span class="hljs-built_in">echo</span> <span class="hljs-string">"<span class="hljs-variable">$kullanici</span> (UID: <span class="hljs-variable">$uid</span>) için 1 vCPU sınırı ayarlanıyor..."</span>
        systemctl set-property user-<span class="hljs-variable">$uid</span>.slice CPUQuota=100%
    <span class="hljs-keyword">fi</span>
<span class="hljs-keyword">done</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"İşlem Tamamlandı! Tüm mevcut müşteriler sınırlandırıldı."</span>
</code></pre>
</div>
</div>
</div>
<h3 data-path-to-node="38" id="sonuc">Sonuç</h3>
<p data-path-to-node="39">Bu basit ama güçlü yöntem sayesinde paylaşımlı sunucularınızı modern bir bulut altyapısına (PaaS) dönüştürebilir, &#8220;kaynak sattıkça kazanç sağlayan&#8221; bir iş modeli kurabilirsiniz. İşlemci sömüren hesapları engellemek, diğer müşterilerinizin hız ve performans kalitesini anında artıracaktır.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://saviorhost.com/blog/linux-sunucularda-kullanici-basina-cpu-limiti-nasil-ayarlanir-ubuntu-centos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
