{"id":3586,"date":"2025-12-28T16:58:29","date_gmt":"2025-12-28T13:58:29","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/vpste-ram-swap-ve-oom-killer-yonetimi\/"},"modified":"2025-12-28T16:58:29","modified_gmt":"2025-12-28T13:58:29","slug":"vpste-ram-swap-ve-oom-killer-yonetimi","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/vpste-ram-swap-ve-oom-killer-yonetimi\/","title":{"rendered":"VPS\u2019te RAM, Swap ve OOM Killer Y\u00f6netimi"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#VPSte_Bellek_Yonetimi_Neden_Bu_Kadar_Onemli\"><span class=\"toc_number toc_depth_1\">1<\/span> VPS\u2019te Bellek Y\u00f6netimi Neden Bu Kadar \u00d6nemli?<\/a><\/li><li><a href=\"#RAM_Swap_ve_Linux_Bellek_Modeli\"><span class=\"toc_number toc_depth_1\">2<\/span> RAM, Swap ve Linux Bellek Modeli<\/a><ul><li><a href=\"#RAM_tam_olarak_neyi_tutar\"><span class=\"toc_number toc_depth_2\">2.1<\/span> RAM tam olarak neyi tutar?<\/a><\/li><li><a href=\"#8220Bos_RAM_iyi_RAM_degildir8221_yanilgisi\"><span class=\"toc_number toc_depth_2\">2.2<\/span> &#8220;Bo\u015f RAM iyi RAM de\u011fildir&#8221; yan\u0131lg\u0131s\u0131<\/a><\/li><li><a href=\"#Swap_nedir_gercekte_ne_ise_yarar\"><span class=\"toc_number toc_depth_2\">2.3<\/span> Swap nedir, ger\u00e7ekte ne i\u015fe yarar?<\/a><\/li><\/ul><\/li><li><a href=\"#OOM_Killer_Nedir_Nasil_Calisir\"><span class=\"toc_number toc_depth_1\">3<\/span> OOM Killer Nedir, Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/a><ul><li><a href=\"#OOM_Out_Of_Memory_durumu\"><span class=\"toc_number toc_depth_2\">3.1<\/span> OOM (Out Of Memory) durumu<\/a><\/li><li><a href=\"#OOM_killer_hangi_sureci_oldurecegine_nasil_karar_verir\"><span class=\"toc_number toc_depth_2\">3.2<\/span> OOM killer hangi s\u00fcreci \u00f6ld\u00fcrece\u011fine nas\u0131l karar verir?<\/a><\/li><li><a href=\"#OOM_loglarini_nerede_goruruz\"><span class=\"toc_number toc_depth_2\">3.3<\/span> OOM log\u2019lar\u0131n\u0131 nerede g\u00f6r\u00fcr\u00fcz?<\/a><\/li><\/ul><\/li><li><a href=\"#VPSte_Bellek_Tasmasi_Senaryolari_Gercekci_Ornekler\"><span class=\"toc_number toc_depth_1\">4<\/span> VPS\u2019te Bellek Ta\u015fmas\u0131 Senaryolar\u0131: Ger\u00e7ek\u00e7i \u00d6rnekler<\/a><ul><li><a href=\"#Senaryo_1_PHP-FPM_ve_WordPressWooCommerce\"><span class=\"toc_number toc_depth_2\">4.1<\/span> Senaryo 1: PHP-FPM ve WordPress\/WooCommerce<\/a><\/li><li><a href=\"#Senaryo_2_PHP_memory_limit_ve_agir_rapor_isleri\"><span class=\"toc_number toc_depth_2\">4.2<\/span> Senaryo 2: PHP memory_limit ve a\u011f\u0131r rapor i\u015fleri<\/a><\/li><li><a href=\"#Senaryo_3_MySQLPostgreSQL_buffer_ayarlari\"><span class=\"toc_number toc_depth_2\">4.3<\/span> Senaryo 3: MySQL\/PostgreSQL buffer ayarlar\u0131<\/a><\/li><li><a href=\"#Senaryo_4_Izleme_log_ve_backup_surecleri\"><span class=\"toc_number toc_depth_2\">4.4<\/span> Senaryo 4: \u0130zleme, log ve backup s\u00fcre\u00e7leri<\/a><\/li><\/ul><\/li><li><a href=\"#Adim_Adim_RAM_ve_Swap_Teshisi\"><span class=\"toc_number toc_depth_1\">5<\/span> Ad\u0131m Ad\u0131m RAM ve Swap Te\u015fhisi<\/a><ul><li><a href=\"#free_tophtop_ve_proc_uzerinden_temel_analiz\"><span class=\"toc_number toc_depth_2\">5.1<\/span> free, top\/htop ve \/proc \u00fczerinden temel analiz<\/a><\/li><li><a href=\"#Swap_kullanimini_dogru_okumak\"><span class=\"toc_number toc_depth_2\">5.2<\/span> Swap kullan\u0131m\u0131n\u0131 do\u011fru okumak<\/a><\/li><li><a href=\"#Detayli_izleme_ve_alarmlar\"><span class=\"toc_number toc_depth_2\">5.3<\/span> Detayl\u0131 izleme ve alarmlar<\/a><\/li><\/ul><\/li><li><a href=\"#Swap_Dosyasi_Olusturma_ve_Ayarlari\"><span class=\"toc_number toc_depth_1\">6<\/span> Swap Dosyas\u0131 Olu\u015fturma ve Ayarlar\u0131<\/a><ul><li><a href=\"#Swap_boyutunu_nasil_secmeli\"><span class=\"toc_number toc_depth_2\">6.1<\/span> Swap boyutunu nas\u0131l se\u00e7meli?<\/a><\/li><li><a href=\"#Swap_dosyasi_olusturma_ornegi\"><span class=\"toc_number toc_depth_2\">6.2<\/span> Swap dosyas\u0131 olu\u015fturma \u00f6rne\u011fi<\/a><\/li><li><a href=\"#vmswappiness_ve_diger_kernel_ayarlari\"><span class=\"toc_number toc_depth_2\">6.3<\/span> vm.swappiness ve di\u011fer kernel ayarlar\u0131<\/a><\/li><\/ul><\/li><li><a href=\"#OOM_Killeri_Yonetmek_Onleme_Sinirlama_ve_Izleme\"><span class=\"toc_number toc_depth_1\">7<\/span> OOM Killer\u2019\u0131 Y\u00f6netmek: \u00d6nleme, S\u0131n\u0131rlama ve \u0130zleme<\/a><ul><li><a href=\"#Overcommit_ayarlari\"><span class=\"toc_number toc_depth_2\">7.1<\/span> Overcommit ayarlar\u0131<\/a><\/li><li><a href=\"#systemd_ile_servis_bazli_bellek_limitleri\"><span class=\"toc_number toc_depth_2\">7.2<\/span> systemd ile servis bazl\u0131 bellek limitleri<\/a><\/li><li><a href=\"#OOM_scorer_ile_kritik_surecleri_korumak\"><span class=\"toc_number toc_depth_2\">7.3<\/span> OOM scorer ile kritik s\u00fcre\u00e7leri korumak<\/a><\/li><\/ul><\/li><li><a href=\"#Uygulama_Tarafi_PHP_Nodejs_Java_ve_Digerleri\"><span class=\"toc_number toc_depth_1\">8<\/span> Uygulama Taraf\u0131: PHP, Node.js, Java ve Di\u011ferleri<\/a><ul><li><a href=\"#PHP_ve_PHP-FPM_icin_pratik_oneriler\"><span class=\"toc_number toc_depth_2\">8.1<\/span> PHP ve PHP-FPM i\u00e7in pratik \u00f6neriler<\/a><\/li><li><a href=\"#Nodejs_uygulamalari\"><span class=\"toc_number toc_depth_2\">8.2<\/span> Node.js uygulamalar\u0131<\/a><\/li><li><a href=\"#Java_ve_JVM_tabanli_uygulamalar\"><span class=\"toc_number toc_depth_2\">8.3<\/span> Java ve JVM tabanl\u0131 uygulamalar<\/a><\/li><\/ul><\/li><li><a href=\"#Kapasite_Planlama_ve_Onleyici_Stratejiler\"><span class=\"toc_number toc_depth_1\">9<\/span> Kapasite Planlama ve \u00d6nleyici Stratejiler<\/a><ul><li><a href=\"#Baslangicta_dogru_VPS_boyutlandirmasi\"><span class=\"toc_number toc_depth_2\">9.1<\/span> Ba\u015flang\u0131\u00e7ta do\u011fru VPS boyutland\u0131rmas\u0131<\/a><\/li><li><a href=\"#Periyodik_izleme_ve_trend_analizi\"><span class=\"toc_number toc_depth_2\">9.2<\/span> Periyodik izleme ve trend analizi<\/a><\/li><li><a href=\"#Alarm_esigi_nasil_belirlenmeli\"><span class=\"toc_number toc_depth_2\">9.3<\/span> Alarm e\u015fi\u011fi nas\u0131l belirlenmeli?<\/a><\/li><\/ul><\/li><li><a href=\"#Sonuc_VPSte_RAM_Swap_ve_OOM_Killeri_Rayina_Oturtmak\"><span class=\"toc_number toc_depth_1\">10<\/span> Sonu\u00e7: VPS\u2019te RAM, Swap ve OOM Killer\u2019\u0131 Ray\u0131na Oturtmak<\/a><\/li><\/ul><\/div>\n<h2><span id=\"VPSte_Bellek_Yonetimi_Neden_Bu_Kadar_Onemli\">VPS\u2019te Bellek Y\u00f6netimi Neden Bu Kadar \u00d6nemli?<\/span><\/h2>\n<p>VPS kullan\u0131rken \u00e7o\u011fu proje ba\u015flang\u0131\u00e7ta CPU, disk ve trafik limitlerine odaklan\u0131yor; RAM, swap ve OOM killer ise ancak ilk <strong>ani crash<\/strong> veya beklenmedik <strong>restart<\/strong> sonras\u0131 g\u00fcndeme geliyor. Oysa Linux\u2019ta bellek y\u00f6netimi do\u011fru kurgulanmad\u0131\u011f\u0131nda, siteniz trafi\u011fi kald\u0131rabilecek durumda olsa bile tek bir k\u00f6t\u00fc ayar y\u00fcz\u00fcnden t\u00fcm uygulama istikrars\u0131z h\u00e2le gelebilir. \u00d6zellikle PHP-FPM, Node.js, Java, veritaban\u0131 (MySQL\/PostgreSQL) ve arka plan kuyruk i\u015f\u00e7ileri gibi RAM t\u00fcketimi y\u00fcksek servisler bir aradaysa, OOM killer\u2019\u0131n ne zaman devreye girece\u011fini tahmin etmek zorla\u015f\u0131r.<\/p>\n<p>Bu yaz\u0131da DCHost ekibi olarak <a href=\"https:\/\/www.dchost.com\/tr\/vps\">VPS<\/a>\u2019lerde <strong>RAM, swap ve OOM killer<\/strong> davran\u0131\u015f\u0131n\u0131 detayl\u0131 ama anla\u015f\u0131l\u0131r \u015fekilde ele alaca\u011f\u0131z. Hedefimiz; bellek ta\u015fmalar\u0131n\u0131 te\u015fhis edebilmeniz, swap\u2019i mant\u0131kl\u0131 kullanabilmeniz ve OOM y\u00fcz\u00fcnden ya\u015fanan beklenmedik servis duru\u015flar\u0131n\u0131 kal\u0131c\u0131 olarak azaltman\u0131z. Ad\u0131m ad\u0131m ilerleyip hem sistem seviyesinde (<code>sysctl<\/code>, swap, cgroup\/systemd limitleri) hem de uygulama taraf\u0131nda (PHP <code>memory_limit<\/code>, PHP-FPM havuz ayarlar\u0131, veritaban\u0131 buffer\u2019lar\u0131 vb.) yap\u0131lmas\u0131 gerekenleri konu\u015faca\u011f\u0131z.<\/p>\n<h2><span id=\"RAM_Swap_ve_Linux_Bellek_Modeli\">RAM, Swap ve Linux Bellek Modeli<\/span><\/h2>\n<h3><span id=\"RAM_tam_olarak_neyi_tutar\">RAM tam olarak neyi tutar?<\/span><\/h3>\n<p>RAM, \u00e7al\u0131\u015fan t\u00fcm s\u00fcre\u00e7lerin (process) aktif verilerini ve kodlar\u0131n\u0131 tuttu\u011fu ana bellek alan\u0131d\u0131r. Linux \u00e7ekirde\u011fi bu RAM\u2019i sadece uygulama kodu ve verisi i\u00e7in de\u011fil, ayn\u0131 zamanda <strong>disk \u00f6nbelle\u011fi (page cache)<\/strong> ve <strong>buffer\u2019lar<\/strong> i\u00e7in de kullan\u0131r. Bu sayede s\u0131k okunan dosyalar ve veritaban\u0131 sayfalar\u0131 RAM\u2019de tutulur, disk eri\u015fimi azal\u0131r, performans artar.<\/p>\n<p>\u00d6zetle RAM\u2019de \u015funlar bulunur:<\/p>\n<ul>\n<li>\u00c7al\u0131\u015fan s\u00fcre\u00e7lerin kodu ve heap\/stack bellekleri<\/li>\n<li>Disk \u00f6nbelle\u011fi (page cache)<\/li>\n<li>Filesystem ve a\u011f buffer\u2019lar\u0131<\/li>\n<li>Kernel veri yap\u0131lar\u0131<\/li>\n<\/ul>\n<p>Bu y\u00fczden <code>free -h<\/code> \u00e7\u0131kt\u0131s\u0131nda RAM\u2019in &#8220;dolu&#8221; g\u00f6r\u00fcnmesi her zaman k\u00f6t\u00fc bir \u015fey de\u011fildir. \u00d6nemli olan; ger\u00e7ekten kullan\u0131lamayan (reclaim edilemeyen) bellek miktar\u0131d\u0131r.<\/p>\n<h3><span id=\"8220Bos_RAM_iyi_RAM_degildir8221_yanilgisi\">&#8220;Bo\u015f RAM iyi RAM de\u011fildir&#8221; yan\u0131lg\u0131s\u0131<\/span><\/h3>\n<p>Linux\u2019ta ama\u00e7 RAM\u2019i bo\u015f tutmak de\u011fil, <strong>verimli kullanmakt\u0131r<\/strong>. <code>free -h<\/code> \u00e7\u0131kt\u0131s\u0131nda <em>available<\/em> alan\u0131, uygulamalar\u0131n kullanabilece\u011fi yakla\u015f\u0131k bellek miktar\u0131n\u0131 g\u00f6sterir. <em>used<\/em> alan\u0131n\u0131n y\u00fcksek olmas\u0131, \u00e7o\u011fu zaman disk \u00f6nbelle\u011finin geni\u015f oldu\u011funu ve sistemin iyi \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 bile g\u00f6sterebilir.<\/p>\n<p>\u0130zlerken \u015fu sat\u0131ra odaklanmak iyi bir pratiktir:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">free -h\n              total        used        free      shared  buff\/cache   available\nMem:           4.0G        2.5G        200M        100M        1.3G        1.0G\n<\/code><\/pre>\n<p>Burada <strong>available = 1.0G<\/strong> h\u00e2l\u00e2 uygulamalar i\u00e7in ayr\u0131labilir RAM oldu\u011funu, yani hemen OOM riski ta\u015f\u0131mad\u0131\u011f\u0131n\u0131z\u0131 g\u00f6sterir.<\/p>\n<h3><span id=\"Swap_nedir_gercekte_ne_ise_yarar\">Swap nedir, ger\u00e7ekte ne i\u015fe yarar?<\/span><\/h3>\n<p>Swap, RAM yetersiz kald\u0131\u011f\u0131nda nadiren kullan\u0131lan bellek sayfalar\u0131n\u0131n diske ta\u015f\u0131nmas\u0131n\u0131 sa\u011flayan, RAM\u2019in &#8220;emniyet supab\u0131&#8221; g\u00f6revi g\u00f6ren alan\u0131d\u0131r. Linux, aktif olmayan sayfalar\u0131 swap\u2019e atarak RAM\u2019i bo\u015faltabilir ve daha \u00f6ncelikli i\u015f y\u00fckleri i\u00e7in alan a\u00e7ar.<\/p>\n<p>Swap\u2019in temel ama\u00e7lar\u0131:<\/p>\n<ul>\n<li>Beklenmedik y\u00fck art\u0131\u015flar\u0131nda sistemi hemen \u00e7\u00f6kertmek yerine nefes ald\u0131rmak<\/li>\n<li>Nadiren kullan\u0131lan bellek sayfalar\u0131n\u0131 diske ta\u015f\u0131y\u0131p RAM\u2019i aktif i\u015fler i\u00e7in serbest b\u0131rakmak<\/li>\n<li>OOM killer\u2019\u0131n devreye giri\u015fini geciktirmek veya tamamen engellemek<\/li>\n<\/ul>\n<p>Ancak swap, disk h\u0131z\u0131na ba\u011fl\u0131d\u0131r. NVMe diskteki swap ile yava\u015f HDD \u00fczerindeki swap aras\u0131nda b\u00fcy\u00fck fark vard\u0131r. Yine de <strong>swap performans arac\u0131 de\u011fil, istikrar arac\u0131d\u0131r<\/strong>; fazla swap kullan\u0131m\u0131 sitenizi yava\u015flatabilir, ama hi\u00e7 swap olmamas\u0131 \u00e7o\u011fu zaman ani crash\u2019lere davetiye \u00e7\u0131kar\u0131r.<\/p>\n<h2><span id=\"OOM_Killer_Nedir_Nasil_Calisir\">OOM Killer Nedir, Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/span><\/h2>\n<h3><span id=\"OOM_Out_Of_Memory_durumu\">OOM (Out Of Memory) durumu<\/span><\/h3>\n<p>Linux \u00e7ekirde\u011fi, toplam RAM + kullan\u0131labilir swap tamamen bitti\u011finde ve yeni bellek iste\u011fini kar\u015f\u0131layamad\u0131\u011f\u0131nda &#8220;Out Of Memory&#8221; durumuna girer. Bu noktada sistemin tamamen donmas\u0131n\u0131 engellemek i\u00e7in <strong>OOM killer<\/strong> devreye girer ve bir veya daha fazla s\u00fcreci zorla \u00f6ld\u00fcrerek bellek a\u00e7maya \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>Bu durum \u00f6zellikle k\u00fc\u00e7\u00fck ve orta boy VPS\u2019lerde \u015fu senaryolarda s\u0131k g\u00f6r\u00fcl\u00fcr:<\/p>\n<ul>\n<li>PHP-FPM havuzunda \u00e7ok fazla child process a\u00e7\u0131lmas\u0131<\/li>\n<li>Node.js veya Java uygulamas\u0131nda bellek ka\u00e7a\u011f\u0131<\/li>\n<li>MySQL\/PostgreSQL buffer ve cache ayarlar\u0131n\u0131n a\u015f\u0131r\u0131 agresif olmas\u0131<\/li>\n<li>Arka plan kuyruk i\u015f\u00e7ilerinin (queue workers) s\u0131n\u0131rs\u0131z \u00e7o\u011falmas\u0131<\/li>\n<\/ul>\n<h3><span id=\"OOM_killer_hangi_sureci_oldurecegine_nasil_karar_verir\">OOM killer hangi s\u00fcreci \u00f6ld\u00fcrece\u011fine nas\u0131l karar verir?<\/span><\/h3>\n<p>Kernel her s\u00fcre\u00e7 i\u00e7in bir <code>oom_score<\/code> hesaplar. Bellek kullan\u0131m miktar\u0131, s\u00fcrecin \u00f6nemi, root olup olmad\u0131\u011f\u0131 gibi fakt\u00f6rler bu skoru etkiler. OOM durumu olu\u015ftu\u011funda, genellikle <strong>en y\u00fcksek skorlu ve en \u00e7ok RAM t\u00fcketen s\u00fcre\u00e7<\/strong> \u00f6ld\u00fcr\u00fcl\u00fcr.<\/p>\n<p>Bir s\u00fcrecin skorunu g\u00f6rmek i\u00e7in \u00f6rnek:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">pidof php-fpm\ncat \/proc\/&lt;PID&gt;\/oom_score\ncat \/proc\/&lt;PID&gt;\/oom_score_adj\n<\/code><\/pre>\n<p>Bu skorlar sayesinde, kritik servislerin OOM taraf\u0131ndan \u00f6ld\u00fcr\u00fclmemesi i\u00e7in ayar yap\u0131labilir. \u00d6rne\u011fin veritaban\u0131 s\u00fcrecinin <code>oom_score_adj<\/code> de\u011ferini d\u00fc\u015f\u00fcrmek, onun son \u00f6ld\u00fcr\u00fclecek s\u00fcre\u00e7 olmas\u0131na yard\u0131mc\u0131 olur; ama bu ayar dikkatle yap\u0131lmal\u0131d\u0131r.<\/p>\n<h3><span id=\"OOM_loglarini_nerede_goruruz\">OOM log\u2019lar\u0131n\u0131 nerede g\u00f6r\u00fcr\u00fcz?<\/span><\/h3>\n<p>OOM olaylar\u0131 genellikle kernel log\u2019lar\u0131na d\u00fc\u015fer. A\u015fa\u011f\u0131daki komutlarla OOM ge\u00e7mi\u015fini g\u00f6rebilirsiniz:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">dmesg | grep -i oom\njournalctl -k | grep -i &quot;out of memory&quot;\n<\/code><\/pre>\n<p>Burada hangi s\u00fcrecin \u00f6ld\u00fcr\u00fcld\u00fc\u011f\u00fcn\u00fc, ne kadar bellek kulland\u0131\u011f\u0131n\u0131 ve sistemin toplam bellek durumunu g\u00f6rebilirsiniz. S\u0131k s\u0131k ayn\u0131 s\u00fcrecin hedef al\u0131nd\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z, muhtemelen o servis i\u00e7in bellek limitlerini veya concurrency ayarlar\u0131n\u0131 yeniden d\u00fc\u015f\u00fcnmeniz gerekiyordur.<\/p>\n<h2><span id=\"VPSte_Bellek_Tasmasi_Senaryolari_Gercekci_Ornekler\">VPS\u2019te Bellek Ta\u015fmas\u0131 Senaryolar\u0131: Ger\u00e7ek\u00e7i \u00d6rnekler<\/span><\/h2>\n<h3><span id=\"Senaryo_1_PHP-FPM_ve_WordPressWooCommerce\">Senaryo 1: PHP-FPM ve WordPress\/WooCommerce<\/span><\/h3>\n<p>WordPress veya WooCommerce \u00e7al\u0131\u015ft\u0131r\u0131lan VPS\u2019lerde en s\u0131k g\u00f6rd\u00fc\u011f\u00fcm\u00fcz durum, PHP-FPM havuzunda <strong>pm.max_children<\/strong> de\u011ferinin RAM\u2019e g\u00f6re fazla y\u00fcksek ayarlanmas\u0131. Her child process, tipik bir WordPress kurulumunda 60\u2013150 MB aras\u0131 RAM t\u00fcketebiliyor. 2 GB RAM\u2019li bir VPS\u2019te 20 child process a\u00e7arsan\u0131z, di\u011fer servisleri hesaba katmadan bile 1.5\u20133 GB aras\u0131 RAM ihtiyac\u0131 do\u011fabilir.<\/p>\n<p>Bu konuyu detayl\u0131 i\u015fledi\u011fimiz <a href=\"https:\/\/www.dchost.com\/blog\/wordpress-ve-woocommerce-icin-php-fpm-ayarlari-pm-pm-max_children-ve-pm-max_requests-hesaplama-rehberi\/\">WordPress ve WooCommerce i\u00e7in PHP-FPM ayarlar\u0131 rehberinde<\/a> her child\u2019\u0131n tahmini RAM t\u00fcketimi \u00fczerinden nas\u0131l hesap yap\u0131laca\u011f\u0131n\u0131 anlatt\u0131k. Buradaki hesaplamay\u0131 yapmadan pm.max_children\u2019i &#8220;bol keseden&#8221; y\u00fckseltmek, OOM killer davetiyesi anlam\u0131na geliyor.<\/p>\n<h3><span id=\"Senaryo_2_PHP_memory_limit_ve_agir_rapor_isleri\">Senaryo 2: PHP memory_limit ve a\u011f\u0131r rapor i\u015fleri<\/span><\/h3>\n<p>Bir di\u011fer klasik durum; <code>php.ini<\/code> veya panel \u00fczerinden <code>memory_limit<\/code> de\u011ferinin 256M\/512M gibi y\u00fcksek seviyelere \u00e7ekilmesi. Bunu tek sayfal\u0131k bir script i\u00e7in d\u00fc\u015f\u00fcnmek masum gelebilir; fakat e\u015fzamanl\u0131 \u00e7al\u0131\u015fan onlarca PHP s\u00fcrecini hesaba katt\u0131\u011f\u0131n\u0131zda RAM \u00e7arpan\u0131 ortaya \u00e7\u0131kar.<\/p>\n<p>Bu dengeyi kurmak i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/php-ayarlarini-dogru-yapmak-memory_limit-max_execution_time-ve-upload_max_filesize-kac-olmali\/\">PHP memory_limit ve di\u011fer kritik ayarlar\u0131 do\u011fru yapmak<\/a> \u00fczerine haz\u0131rlad\u0131\u011f\u0131m\u0131z rehbere g\u00f6z atman\u0131z\u0131 \u00f6neririz. Do\u011fru limitler, OOM riskini dramatik \u015fekilde d\u00fc\u015f\u00fcr\u00fcr.<\/p>\n<h3><span id=\"Senaryo_3_MySQLPostgreSQL_buffer_ayarlari\">Senaryo 3: MySQL\/PostgreSQL buffer ayarlar\u0131<\/span><\/h3>\n<p>Veritaban\u0131 sunucusunda performans u\u011fruna <code>innodb_buffer_pool_size<\/code> veya <code>shared_buffers<\/code> de\u011ferlerini &#8220;RAM\u2019in yar\u0131s\u0131&#8221; gibi yuvarlak rakamlarla ayarlamak da tehlikelidir. Ayn\u0131 VPS \u00fczerinde PHP-FPM, Nginx, Redis, backup script\u2019leri ve cron i\u015fleriniz varsa, veritaban\u0131na bu kadar RAM ay\u0131rmak toplam sistemi kilitleyebilir.<\/p>\n<p>\u00d6zellikle b\u00fcy\u00fck kataloglu e-ticaret projelerinde bu ayarlar\u0131n sorgu optimizasyonu ile birlikte d\u00fc\u015f\u00fcn\u00fclmesi gerekir. Bunun i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/woocommerce-ve-buyuk-katalog-siteleri-icin-mysql-indeksleme-ve-sorgu-optimizasyonu-rehberi\/\">WooCommerce ve b\u00fcy\u00fck katalog siteleri i\u00e7in MySQL optimizasyon rehberi<\/a>nde index ve sorgu d\u00fczenlemelerinin RAM ihtiyac\u0131n\u0131 nas\u0131l azaltt\u0131\u011f\u0131n\u0131 detayl\u0131 anlatt\u0131k.<\/p>\n<h3><span id=\"Senaryo_4_Izleme_log_ve_backup_surecleri\">Senaryo 4: \u0130zleme, log ve backup s\u00fcre\u00e7leri<\/span><\/h3>\n<p>Bir\u00e7ok ekip, ana uygulamay\u0131 optimize ederken izleme agent\u2019lar\u0131, log toplama s\u00fcre\u00e7leri ve yedekleme script\u2019lerini g\u00f6zden ka\u00e7\u0131r\u0131yor. \u00d6zellikle yo\u011fun disk IO yapan backup ara\u00e7lar\u0131 ve s\u0131k\u0131\u015ft\u0131rma (gzip, zstd) i\u015flemleri k\u0131sa s\u00fcreli RAM patlamalar\u0131na neden olabilir.<\/p>\n<p>Bu y\u00fczden VPS \u00fczerinde t\u00fcm s\u00fcre\u00e7leri u\u00e7tan uca izlemek kritik. <a href=\"https:\/\/www.dchost.com\/blog\/vps-kaynak-kullanimi-izleme-rehberi-htop-iotop-netdata-ve-prometheus\/\">htop, iotop, Netdata ve Prometheus ile VPS kaynak kullan\u0131m\u0131 izleme rehberimizde<\/a> RAM, CPU ve disk IO\u2019yu birlikte izleyerek dar bo\u011fazlar\u0131 nas\u0131l tespit edebilece\u011finizi g\u00f6steriyoruz.<\/p>\n<h2><span id=\"Adim_Adim_RAM_ve_Swap_Teshisi\">Ad\u0131m Ad\u0131m RAM ve Swap Te\u015fhisi<\/span><\/h2>\n<h3><span id=\"free_tophtop_ve_proc_uzerinden_temel_analiz\">free, top\/htop ve \/proc \u00fczerinden temel analiz<\/span><\/h3>\n<p>Bellek sorunu ya\u015fad\u0131\u011f\u0131n\u0131zda ilk bakman\u0131z gerekenler:<\/p>\n<ul>\n<li><code>free -h<\/code>: Toplam, kullan\u0131lan, bo\u015f, buff\/cache ve available bellek g\u00f6r\u00fcn\u00fcm\u00fc<\/li>\n<li><code>top<\/code> veya <code>htop<\/code>: En \u00e7ok RAM t\u00fcketen s\u00fcre\u00e7ler<\/li>\n<li><code>vmstat 1<\/code>: Bellek, swap ve IO hareketini ger\u00e7ek zamanl\u0131 izleme<\/li>\n<\/ul>\n<p>\u00d6rnek bir te\u015fhis ak\u0131\u015f\u0131:<\/p>\n<ol>\n<li><code>free -h<\/code> ile <em>available<\/em> ve <em>Swap used<\/em> de\u011ferlerine bak\u0131n.<\/li>\n<li><code>htop<\/code>\u2019ta <code>RES<\/code> s\u00fctununa g\u00f6re s\u0131ralay\u0131p RAM canavarlar\u0131n\u0131 g\u00f6r\u00fcn.<\/li>\n<li>OOM \u015f\u00fcphesi varsa <code>dmesg | grep -i oom<\/code> ile ge\u00e7mi\u015f log\u2019lar\u0131 inceleyin.<\/li>\n<\/ol>\n<h3><span id=\"Swap_kullanimini_dogru_okumak\">Swap kullan\u0131m\u0131n\u0131 do\u011fru okumak<\/span><\/h3>\n<p>Swap kullan\u0131m\u0131n\u0131n 0 olmas\u0131 her zaman iyi haber de\u011fildir. Bu, sisteminizin swap alan\u0131na sahip olmad\u0131\u011f\u0131 veya hi\u00e7 kullanmad\u0131\u011f\u0131 anlam\u0131na gelebilir; ancak ani y\u00fck dalgalar\u0131nda OOM riskinizi art\u0131r\u0131r. \u00d6te yandan s\u00fcrekli y\u00fcksek swap kullan\u0131m\u0131 da RAM\u2019in yetersiz oldu\u011funu veya bellek s\u0131z\u0131nt\u0131s\u0131 (memory leak) oldu\u011funu g\u00f6sterebilir.<\/p>\n<p>Sa\u011fl\u0131kl\u0131 bir VPS\u2019te \u00e7o\u011fu zaman \u015fu tabloyu g\u00f6rmek istersiniz:<\/p>\n<ul>\n<li>Toplam swap &gt; 0 (\u00f6rne\u011fin 1\u20134 GB aras\u0131)<\/li>\n<li>Swap used d\u00fc\u015f\u00fck veya orta seviye (ani s\u0131\u00e7ramalar incelenmeli)<\/li>\n<li>Disk IO de\u011ferleri (\u00f6zellikle <code>si\/so<\/code>) makul seviyede<\/li>\n<\/ul>\n<h3><span id=\"Detayli_izleme_ve_alarmlar\">Detayl\u0131 izleme ve alarmlar<\/span><\/h3>\n<p>Orta ve b\u00fcy\u00fck \u00f6l\u00e7ekli projelerde manuel komutlarla izleme yetersiz kal\u0131r. Prometheus + Grafana gibi \u00e7\u00f6z\u00fcmlerle RAM, swap, OOM olaylar\u0131, process say\u0131lar\u0131, load average gibi metrikleri paneller \u00fczerinden takip edip e\u015fik de\u011ferlerine alarm koymak \u00e7ok daha sa\u011fl\u0131kl\u0131 olacakt\u0131r.<\/p>\n<p>Bu konuda ba\u015flang\u0131\u00e7 yapmak isterseniz, <a href=\"https:\/\/www.dchost.com\/blog\/vps-izleme-ve-alarm-kurulumu-prometheus-grafana-ve-uptime-kuma-ile-baslangic\/\">VPS izleme ve alarm kurulumu rehberimizde<\/a> RAM ve CPU gibi temel metrikler i\u00e7in pratik alarm \u00f6rnekleri payla\u015ft\u0131k.<\/p>\n<h2><span id=\"Swap_Dosyasi_Olusturma_ve_Ayarlari\">Swap Dosyas\u0131 Olu\u015fturma ve Ayarlar\u0131<\/span><\/h2>\n<h3><span id=\"Swap_boyutunu_nasil_secmeli\">Swap boyutunu nas\u0131l se\u00e7meli?<\/span><\/h3>\n<p>Y\u0131llarca dola\u015fan &#8220;swap = 2 \u00d7 RAM&#8221; kural\u0131 bug\u00fcn i\u00e7in her zaman ge\u00e7erli de\u011fil; ama h\u00e2l\u00e2 kabaca referans olabilir. Modern VPS senaryolar\u0131nda pratik yakla\u015f\u0131m \u015f\u00f6yle olabilir:<\/p>\n<ul>\n<li>1\u20132 GB RAM: En az 1\u20132 GB swap<\/li>\n<li>4\u20138 GB RAM: 2\u20134 GB swap<\/li>\n<li>16 GB+ RAM: \u0130\u015f y\u00fck\u00fcne g\u00f6re 4\u20138 GB veya daha fazlas\u0131<\/li>\n<\/ul>\n<p>\u00d6nemli olan, swap\u2019in a\u015f\u0131r\u0131 k\u00fc\u00e7\u00fck olmamas\u0131 (hemen OOM\u2019a d\u00fc\u015fmemek i\u00e7in) ve a\u015f\u0131r\u0131 b\u00fcy\u00fck olup diski bo\u011fmamas\u0131d\u0131r. NVMe diskli DCHost VPS\u2019lerde makul b\u00fcy\u00fckl\u00fckte swap, hem istikrar hem de performans a\u00e7\u0131s\u0131ndan iyi bir dengedir.<\/p>\n<h3><span id=\"Swap_dosyasi_olusturma_ornegi\">Swap dosyas\u0131 olu\u015fturma \u00f6rne\u011fi<\/span><\/h3>\n<p>Varsayal\u0131m 2 GB\u2019l\u0131k bir swap dosyas\u0131 olu\u015fturmak istiyorsunuz:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">fallocate -l 2G \/swapfile\nchmod 600 \/swapfile\nmkswap \/swapfile\nswapon \/swapfile\n<\/code><\/pre>\n<p>Kal\u0131c\u0131 olmas\u0131 i\u00e7in <code>\/etc\/fstab<\/code> dosyas\u0131na \u015fu sat\u0131r\u0131 ekleyin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">\/swapfile   none    swap    sw    0   0\n<\/code><\/pre>\n<p>Mevcut swap durumunu g\u00f6rmek i\u00e7in:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">swapon --show\nfree -h\n<\/code><\/pre>\n<h3><span id=\"vmswappiness_ve_diger_kernel_ayarlari\">vm.swappiness ve di\u011fer kernel ayarlar\u0131<\/span><\/h3>\n<p><code>vm.swappiness<\/code>, \u00e7ekirde\u011fin RAM yerine swap kullanmaya ne kadar istekli olaca\u011f\u0131n\u0131 belirler. 0\u2019a yak\u0131n de\u011ferler swap\u2019i minimumda tutar, 100\u2019e yak\u0131n de\u011ferler daha agresif kullan\u0131m sa\u011flar. Tipik web sunucular\u0131nda 10\u201330 aras\u0131 de\u011ferler iyi \u00e7al\u0131\u015f\u0131r.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sysctl vm.swappiness\nsysctl -w vm.swappiness=20\n<\/code><\/pre>\n<p>Kal\u0131c\u0131 yapmak i\u00e7in <code>\/etc\/sysctl.d\/99-sysctl.conf<\/code> dosyas\u0131na ekleyebilirsiniz:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">vm.swappiness = 20\nvm.vfs_cache_pressure = 100\n<\/code><\/pre>\n<p><code>vm.vfs_cache_pressure<\/code> ise kernel\u2019in inode\/dentry cache\u2019lerini ne kadar agresif temizleyece\u011fini belirler; a\u015f\u0131r\u0131 d\u00fc\u015f\u00fck ayarlamak bellek bask\u0131s\u0131nda sorun \u00e7\u0131karabilir.<\/p>\n<h2><span id=\"OOM_Killeri_Yonetmek_Onleme_Sinirlama_ve_Izleme\">OOM Killer\u2019\u0131 Y\u00f6netmek: \u00d6nleme, S\u0131n\u0131rlama ve \u0130zleme<\/span><\/h2>\n<h3><span id=\"Overcommit_ayarlari\">Overcommit ayarlar\u0131<\/span><\/h3>\n<p>Linux, bellek tahsisi konusunda &#8220;overcommit&#8221; denilen bir mekanizma kullan\u0131r. Yani s\u00fcre\u00e7lere teorik olarak toplam RAM + swap\u2019ten daha fazla bellek &#8220;vaadedebilir&#8221;. Bu davran\u0131\u015f\u0131 \u015fu ayarlarla kontrol edebilirsiniz:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sysctl vm.overcommit_memory\nsysctl vm.overcommit_ratio\n<\/code><\/pre>\n<p>De\u011ferler k\u0131saca:<\/p>\n<ul>\n<li><strong>vm.overcommit_memory=0<\/strong>: Varsay\u0131lan, heuristik.<\/li>\n<li><strong>1<\/strong>: Serbest; kernel neredeyse her iste\u011fi kabul eder.<\/li>\n<li><strong>2<\/strong>: Daha kat\u0131; toplam bellek + oran k\u0131s\u0131tlamas\u0131 uygular.<\/li>\n<\/ul>\n<p>Kritik veritaban\u0131 sunucular\u0131nda <code>overcommit_memory=2<\/code> kullanmak tercih edilebilir; ancak web + DB ayn\u0131 VPS\u2019teyse yanl\u0131\u015f yap\u0131land\u0131rma istenmeyen hatalara yol a\u00e7abilir. K\u00fc\u00e7\u00fck VPS\u2019lerde genellikle varsay\u0131lan de\u011ferle kal\u0131p uygulama ve service seviyesinde limit koymak daha g\u00fcvenlidir.<\/p>\n<h3><span id=\"systemd_ile_servis_bazli_bellek_limitleri\">systemd ile servis bazl\u0131 bellek limitleri<\/span><\/h3>\n<p>Modern Linux da\u011f\u0131t\u0131mlar\u0131nda (Ubuntu, Debian, AlmaLinux vb.) systemd \u00fczerinden her servise \u00f6zel RAM s\u0131n\u0131rlar\u0131 koyabilirsiniz. \u00d6rne\u011fin PHP-FPM i\u00e7in:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">systemctl edit php-fpm.service\n<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyaya:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">[Service]\nMemoryMax=1G\n<\/code><\/pre>\n<p>ekleyip kaydedin, ard\u0131ndan:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">systemctl daemon-reload\nsystemctl restart php-fpm\n<\/code><\/pre>\n<p>Bu sayede PHP-FPM toplamda 1 GB\u2019tan fazla RAM kullanamayacak; limit a\u015f\u0131ld\u0131\u011f\u0131nda OOM killer yerine systemd devreye girip s\u00fcreci kontroll\u00fc bi\u00e7imde yeniden ba\u015flatacakt\u0131r. Benzer limitleri Node.js, arka plan worker\u2019lar\u0131 veya log toplay\u0131c\u0131lar i\u00e7in de uygulayabilirsiniz.<\/p>\n<h3><span id=\"OOM_scorer_ile_kritik_surecleri_korumak\">OOM scorer ile kritik s\u00fcre\u00e7leri korumak<\/span><\/h3>\n<p>Veritaban\u0131 gibi kritik servislerin, OOM durumunda en son \u00f6ld\u00fcr\u00fclecek s\u00fcre\u00e7 olmas\u0131n\u0131 isteyebilirsiniz. Bunun i\u00e7in ilgili servisin unit dosyas\u0131nda a\u015fa\u011f\u0131daki gibi bir ayar yap\u0131labilir:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">[Service]\nOOMScoreAdjust=-500\n<\/code><\/pre>\n<p>Bu de\u011fer -1000 (asla \u00f6ld\u00fcrme) ile +1000 (hedefte olsun) aras\u0131nda de\u011fi\u015fir. Kritik servisleri korurken, gereksiz arka plan s\u00fcre\u00e7lerine daha y\u00fcksek skor verip OOM an\u0131nda onlar\u0131n feda edilmesini sa\u011flayabilirsiniz. Yine de bu ayarlar\u0131 yapmadan \u00f6nce mutlaka test ortam\u0131nda denemenizi \u00f6neririz.<\/p>\n<h2><span id=\"Uygulama_Tarafi_PHP_Nodejs_Java_ve_Digerleri\">Uygulama Taraf\u0131: PHP, Node.js, Java ve Di\u011ferleri<\/span><\/h2>\n<h3><span id=\"PHP_ve_PHP-FPM_icin_pratik_oneriler\">PHP ve PHP-FPM i\u00e7in pratik \u00f6neriler<\/span><\/h3>\n<p>PHP tabanl\u0131 sitelerde bellek ta\u015fmalar\u0131n\u0131n \u00e7o\u011fu, PHP-FPM veya Apache PHP handler\u2019lar\u0131n\u0131n yanl\u0131\u015f ayarlar\u0131ndan kaynaklan\u0131r. Dikkat edilmesi gerekenler:<\/p>\n<ul>\n<li><strong>memory_limit<\/strong>: Ger\u00e7ek ihtiya\u00e7lar \u00fczerinden hesaplanmal\u0131, &#8220;sonsuz&#8221; b\u0131rak\u0131lmamal\u0131.<\/li>\n<li><strong>pm.max_children<\/strong>: Kullan\u0131labilir RAM \/ (ortalama child RAM t\u00fcketimi) \u00fczerinden hesaplanmal\u0131.<\/li>\n<li><strong>pm.max_requests<\/strong>: Belirli say\u0131da istekte bir child\u2019lar\u0131n yeniden ba\u015flat\u0131lmas\u0131, bellek s\u0131z\u0131nt\u0131lar\u0131n\u0131 azalt\u0131r.<\/li>\n<\/ul>\n<p>Bu parametreleri ger\u00e7ek senaryolar \u00fczerinden nas\u0131l hesaplayaca\u011f\u0131n\u0131z\u0131 zaten <a href=\"https:\/\/www.dchost.com\/blog\/wordpress-ve-woocommerce-icin-php-fpm-ayarlari-pm-pm-max_children-ve-pm-max_requests-hesaplama-rehberi\/\">PHP-FPM ayarlar\u0131 rehberimizde<\/a> ad\u0131m ad\u0131m g\u00f6sterdik. Bu rehberi RAM ve OOM y\u00f6netimiyle birlikte d\u00fc\u015f\u00fcnmek en sa\u011fl\u0131kl\u0131 yakla\u015f\u0131m olacakt\u0131r.<\/p>\n<h3><span id=\"Nodejs_uygulamalari\">Node.js uygulamalar\u0131<\/span><\/h3>\n<p>Node.js, tek i\u015f par\u00e7ac\u0131kl\u0131 olsa da yo\u011fun JSON i\u015fleme, b\u00fcy\u00fck sorgu sonu\u00e7lar\u0131 veya cache\u2019lenmi\u015f verilerle \u00e7al\u0131\u015f\u0131rken rahatl\u0131kla y\u00fczlerce MB RAM t\u00fcketebilir. Dikkat edilmesi gerekenler:<\/p>\n<ul>\n<li>Node process\u2019lerini <strong>PM2 veya systemd<\/strong> ile y\u00f6netip <code>--max_old_space_size<\/code> parametresiyle \u00fcst s\u0131n\u0131r koymak<\/li>\n<li>Her Node instance\u2019\u0131 i\u00e7in RAM hesab\u0131 yap\u0131p, ayn\u0131 VPS\u2019te ka\u00e7 instance \u00e7al\u0131\u015ft\u0131rabilece\u011finizi belirlemek<\/li>\n<li>Uzun ya\u015fayan, haf\u0131zada veri tutan yap\u0131lar\u0131n (in-memory cache) boyutlar\u0131na limit koymak<\/li>\n<\/ul>\n<p>Node.js projelerini canl\u0131ya al\u0131rken genel mimariyi nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 merak ediyorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/node-js-uygulamalarini-nerede-host-etmeli-cpanel-paylasimli-hosting-ve-vps-karsilastirmasi\/\">Node.js uygulamalar\u0131n\u0131 host etme rehberimizde<\/a> VPS taraf\u0131ndaki temel yakla\u015f\u0131mlar\u0131 \u00f6zetledik.<\/p>\n<h3><span id=\"Java_ve_JVM_tabanli_uygulamalar\">Java ve JVM tabanl\u0131 uygulamalar<\/span><\/h3>\n<p>Java veya Kotlin tabanl\u0131 servisler, bellek y\u00f6netimi a\u00e7\u0131s\u0131ndan daha deterministiktir; \u00e7\u00fcnk\u00fc JVM\u2019e ba\u015flang\u0131\u00e7ta <code>-Xms<\/code> ve <code>-Xmx<\/code> parametreleriyle net s\u0131n\u0131rlar verirsiniz. Yine de bu s\u0131n\u0131rlar\u0131 hesaplarken:<\/p>\n<ul>\n<li>Toplam RAM ve di\u011fer servislerin ihtiyac\u0131<\/li>\n<li>GC (Garbage Collector) davran\u0131\u015f\u0131 ve ek overhead<\/li>\n<li>Container veya cgroup limitleri (Docker kullan\u0131yorsan\u0131z)<\/li>\n<\/ul>\n<p>gibi etkenleri hesaba katman\u0131z gerekir. Varsay\u0131lan JVM ayarlar\u0131 \u00e7o\u011fu zaman VPS ortamlar\u0131 i\u00e7in fazla c\u00f6merttir; parametreleri i\u015f y\u00fck\u00fcn\u00fcze g\u00f6re sadele\u015ftirmeniz gerekir.<\/p>\n<h2><span id=\"Kapasite_Planlama_ve_Onleyici_Stratejiler\">Kapasite Planlama ve \u00d6nleyici Stratejiler<\/span><\/h2>\n<h3><span id=\"Baslangicta_dogru_VPS_boyutlandirmasi\">Ba\u015flang\u0131\u00e7ta do\u011fru VPS boyutland\u0131rmas\u0131<\/span><\/h3>\n<p>RAM, swap ve OOM sorunlar\u0131n\u0131 minimize etmenin en kolay yolu, ba\u015flang\u0131\u00e7ta i\u015f y\u00fck\u00fcn\u00fcze uygun bir VPS boyutu se\u00e7mektir. Ziyaret\u00e7i say\u0131s\u0131, sayfa ba\u015f\u0131na ortalama i\u015flem s\u00fcresi, kullan\u0131lan teknoloji y\u0131\u011f\u0131n\u0131 (WordPress, Laravel, Node.js, Magento vb.) ve arka plan i\u015fleri (cron, queue, raporlar) birlikte de\u011ferlendirilmelidir.<\/p>\n<p>Yeni bir proje i\u00e7in temel hesaplara nereden ba\u015flayaca\u011f\u0131n\u0131z\u0131 bilmiyorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/yeni-web-sitesi-icin-cpu-ram-ve-trafik-nasil-hesaplanir\/\">yeni web sitesi i\u00e7in CPU, RAM ve trafik hesaplama rehberimizde<\/a> kapasite planlamas\u0131 i\u00e7in kullan\u0131labilir pratik form\u00fcller payla\u015ft\u0131k. Bu hesaplar \u00fczerine biraz g\u00fcvenlik pay\u0131 koymak, OOM riskini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcr\u00fcr.<\/p>\n<h3><span id=\"Periyodik_izleme_ve_trend_analizi\">Periyodik izleme ve trend analizi<\/span><\/h3>\n<p>Bellek sorunlar\u0131 \u00e7o\u011fu zaman &#8220;bir anda&#8221; \u00e7\u0131km\u0131\u015f gibi g\u00f6r\u00fcnse de grafiklere bakt\u0131\u011f\u0131n\u0131zda yava\u015f yava\u015f artan bir trend oldu\u011funu g\u00f6r\u00fcrs\u00fcn\u00fcz. Bu y\u00fczden:<\/p>\n<ul>\n<li>RAM ve swap kullan\u0131m\u0131n\u0131 g\u00fcnl\u00fck\/haftal\u0131k grafiklerle izlemek<\/li>\n<li>Yeni s\u00fcr\u00fcm deploy\u2019lar\u0131ndan sonra bellek trendini yak\u0131ndan takip etmek<\/li>\n<li>Veritaban\u0131 veya cache konfig\u00fcrasyonu de\u011fi\u015fikliklerinden sonra metrikleri k\u0131yaslamak<\/li>\n<\/ul>\n<p>gibi pratikler, hen\u00fcz OOM killer devreye girmeden aksiyon alman\u0131z\u0131 sa\u011flar. DCHost altyap\u0131s\u0131nda \u00e7al\u0131\u015fan projelerde, m\u00fc\u015fterilerimize \u00f6zellikle staging\u2019de load test yapt\u0131ktan sonra RAM trendlerini izlemelerini tavsiye ediyoruz. Load test taraf\u0131na ilgi duyuyorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/trafik-patlamasindan-once-load-test-yapmak-k6-jmeter-ve-locust-ile-kapasite-olcme-rehberi\/\">k6, JMeter ve Locust ile kapasite \u00f6l\u00e7me rehberimiz<\/a> iyi bir ba\u015flang\u0131\u00e7 olacakt\u0131r.<\/p>\n<h3><span id=\"Alarm_esigi_nasil_belirlenmeli\">Alarm e\u015fi\u011fi nas\u0131l belirlenmeli?<\/span><\/h3>\n<p>\u0130zleme sistemi kurdu\u011funuzda, her k\u00fc\u00e7\u00fck dalgalanmada uyar\u0131 almak istemezsiniz. Pratik e\u015fik \u00f6nerileri:<\/p>\n<ul>\n<li><strong>RAM usage<\/strong>: %80 \u00fczerine 5\u201310 dakika \u00e7\u0131karsa &#8220;warning&#8221;, %90 \u00fczerine \u00e7\u0131karsa &#8220;critical&#8221;<\/li>\n<li><strong>Swap usage<\/strong>: Toplam swap\u2019in %20\u201330\u2019unu ge\u00e7erse uyar\u0131, %50 \u00fczeri s\u00fcrekli ise kapasite g\u00f6zden ge\u00e7irilmeli<\/li>\n<li><strong>OOM events<\/strong>: Her yeni OOM olay\u0131 &#8220;critical&#8221; kabul edilmeli ve k\u00f6k neden analizi yap\u0131lmal\u0131<\/li>\n<\/ul>\n<p>Bu e\u015fikler elbette i\u015f y\u00fck\u00fcn\u00fcz\u00fcn do\u011fas\u0131na g\u00f6re de\u011fi\u015febilir; fakat \u00f6zellikle e-ticaret ve SaaS projelerinde bu t\u00fcr s\u0131n\u0131rlar, m\u00fc\u015fteri \u015fik\u00e2yeti gelmeden \u00f6nce aksiyon alman\u0131z\u0131 sa\u011flar.<\/p>\n<h2><span id=\"Sonuc_VPSte_RAM_Swap_ve_OOM_Killeri_Rayina_Oturtmak\">Sonu\u00e7: VPS\u2019te RAM, Swap ve OOM Killer\u2019\u0131 Ray\u0131na Oturtmak<\/span><\/h2>\n<p>VPS d\u00fcnyas\u0131nda bellek y\u00f6netimi, \u00e7o\u011fu zaman &#8220;RAM\u2019i yetmeyince y\u00fckseltiriz&#8221; d\u00fczeyinde ele al\u0131n\u0131yor; ama ger\u00e7ek hayatta i\u015fin bu kadar basit olmad\u0131\u011f\u0131n\u0131 hep beraber g\u00f6r\u00fcyoruz. Swap\u2019i hi\u00e7 kullanmamak da, a\u015f\u0131r\u0131 g\u00fcvenmek de sorun; OOM killer\u2019\u0131 tamamen \u015feytanla\u015ft\u0131rmak da onu yok saymak da riskli. Sa\u011fl\u0131kl\u0131 bir mimaride:<\/p>\n<ul>\n<li>\u0130\u015f y\u00fck\u00fcne uygun RAM ve swap kombinasyonu<\/li>\n<li>Uygulama bazl\u0131 bellek limitleri (PHP, Node.js, Java, veritaban\u0131)<\/li>\n<li>systemd\/cgroup ve kernel (sysctl) ayarlar\u0131n\u0131n dengeli kullan\u0131m\u0131<\/li>\n<li>S\u00fcrekli izleme, alarm ve kapasite planlama<\/li>\n<\/ul>\n<p>birlikte d\u00fc\u015f\u00fcn\u00fclmeli. Biz DCHost ekibi olarak; VPS, <a href=\"https:\/\/www.dchost.com\/tr\/fiziksel-sunucu\">dedicated sunucu<\/a> ve colocation altyap\u0131lar\u0131m\u0131zda m\u00fc\u015fterilerimize tam olarak bu dengeyi kurmalar\u0131 i\u00e7in destek veriyoruz. Bellek ta\u015fmalar\u0131, OOM kaynakl\u0131 crash ve restart sorunlar\u0131 ya\u015f\u0131yorsan\u0131z, hem sunucu boyutland\u0131rmas\u0131 hem de Linux ayarlar\u0131 konusunda birlikte \u00e7al\u0131\u015farak projenizi daha dayan\u0131kl\u0131 h\u00e2le getirebiliriz.<\/p>\n<p>Mevcut VPS\u2019inizi optimize etmek veya yeni bir projeyi ba\u015ftan do\u011fru kurgulamak istiyorsan\u0131z, DCHost \u00fczerinde ihtiya\u00e7lar\u0131n\u0131za uygun VPS veya fiziksel sunucu se\u00e7eneklerini de\u011ferlendirip, RAM\u2013swap\u2013OOM dengesini daha ilk g\u00fcnden planlamak uzun vadede size zaman, para ve uykusuz gecelerden tasarruf sa\u011flar.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0130&ccedil;indekiler1 VPS\u2019te Bellek Y\u00f6netimi Neden Bu Kadar \u00d6nemli?2 RAM, Swap ve Linux Bellek Modeli2.1 RAM tam olarak neyi tutar?2.2 &#8220;Bo\u015f RAM iyi RAM de\u011fildir&#8221; yan\u0131lg\u0131s\u01312.3 Swap nedir, ger\u00e7ekte ne i\u015fe yarar?3 OOM Killer Nedir, Nas\u0131l \u00c7al\u0131\u015f\u0131r?3.1 OOM (Out Of Memory) durumu3.2 OOM killer hangi s\u00fcreci \u00f6ld\u00fcrece\u011fine nas\u0131l karar verir?3.3 OOM log\u2019lar\u0131n\u0131 nerede g\u00f6r\u00fcr\u00fcz?4 VPS\u2019te Bellek [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3587,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-3586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/3586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=3586"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/3586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/3587"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=3586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=3586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=3586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}