{"id":1117,"date":"2017-07-25T15:12:17","date_gmt":"2017-07-25T12:12:17","guid":{"rendered":"https:\/\/burakcaliskan.org\/blog\/?p=1117"},"modified":"2017-08-29T12:42:24","modified_gmt":"2017-08-29T09:42:24","slug":"server-ram-hafiza-kullanimi-artarsa-apache-resetle","status":"publish","type":"post","link":"https:\/\/burakcaliskan.org\/blog\/server-ram-hafiza-kullanimi-artarsa-apache-resetle\/","title":{"rendered":"Server Ram \/ Haf\u0131za kullan\u0131m\u0131 artarsa apache resetle"},"content":{"rendered":"<p>Vps server veya dedicated server tarz\u0131 bir sistemin ba\u015f\u0131ndaysak ,ve ram a\u015f\u0131r\u0131 y\u00fcklenmeden \u00f6t\u00fcr\u00fc genel bir yava\u015fl\u0131k sorunu ya\u015f\u0131yorsak bu script bir nebze olsun rahatlaman\u0131z\u0131 sa\u011flayacak.<\/p>\n<p>Konuya girmeden \u00f6nce belirtmeliyim ki bu \u00e7\u00f6z\u00fcm niteli\u011findeki komut sat\u0131r\u0131 uygulamas\u0131 as\u0131l sorunun oda\u011f\u0131na gitmedi\u011finden ge\u00e7ici bir rahatlama imkan\u0131ndan ba\u015fka bir \u015fey sunmayacakt\u0131r. Bu ram kullan\u0131m\u0131n\u0131n as\u0131l sebeplerine odaklanman\u0131z daha yerinde olacakt\u0131r. \u00d6rne\u011fin serveriniz ger\u00e7ek manada a\u015f\u0131r\u0131 y\u00fck\u00fc kald\u0131ramayacak seviyede bir yo\u011funlu\u011fa m\u0131 sahip. Bu durumda i\u015flemci ve ram art\u0131r\u0131m\u0131na gitmeniz ak\u0131ll\u0131ca olacakt\u0131r. Ya da serverinizde \u00e7al\u0131\u015fan bir cms ,veya script bu yo\u011funlu\u011fa m\u0131 sebep olmaktad\u0131r. WordPress kuruluysa kulland\u0131\u011f\u0131n\u0131z pluginlerden birisi gereksiz trafi\u011fe neden oluyor olabilir. visitor online ,statisctic ,post counter gibi web sitenizin istatisti\u011fini tutan pluginler genelde kasar. Veya kaynaklar\u0131n\u0131z yetersizse cache pluginleriyle mysql i daha az yoran html \u00e7\u0131kt\u0131lar\u0131 \u00fcretip yay\u0131nlayabilirsiniz. vsvs konular\u0131yla u\u011fra\u015fmak daha etkili \u00e7\u00f6z\u00fcm olacakt\u0131r.<\/p>\n<p>KOD<br \/>\nA\u015fa\u011f\u0131daki \u00f6rnekte ram total kullan\u0131m\u0131 %95 e ula\u015ft\u0131\u011f\u0131nda apache yi yeniden ba\u015flat\u0131p biriken i\u015f y\u0131\u011f\u0131n\u0131n\u0131 bitirecek,yeni gelen g\u00f6revlere m\u00fcsait hale gelecektir.<\/p>\n<p>\u0130lk olarak komut sat\u0131r\u0131na ; nano apache-free.sh veya vi apache-free.sh yazarak bo\u015f bir dosya olu\u015fumuna vesile olal\u0131m. Komut sat\u0131r\u0131nda a\u00e7\u0131lan bo\u015f dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki kodu CTRL+C ile kopyalad\u0131ktan sonra edit\u00f6r\u00fcn i\u00e7inde sa\u011f t\u0131klayarak yap\u0131\u015ft\u0131ral\u0131m.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true \">#!\/bin\/sh\r\nTOTAL=`cat \/proc\/meminfo | grep MemTotal: | awk '{print $2}'`\r\nUSEDMEM=`cat \/proc\/meminfo | grep Active: | awk '{print $2}'`\r\nLOG=\/var\/log\/apache-free.log\r\nLIMIT=95\r\nDATA=`date +%Y-%m-%d\" \"%H:%M:%S`\r\nPROCESS=$(ps aux r)\r\nTOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1)\r\nif [ \"$USEDMEM\" -gt 0 ]\r\n\u00a0then\r\n\u00a0\u00a0\u00a0 USEDMEMPER=$(($USEDMEM * 100 \/ $TOTAL))\r\n\u00a0\u00a0\u00a0 USEDMEMPERLOG=$USEDMEMPER\r\n\u00a0\u00a0\u00a0 if [ $USEDMEMPER -lt $LIMIT ]; then\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 echo \"$DATA | Memory: $USEDMEMPER%, (limit: $LIMIT%) | Do not restart!\"\r\n\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 echo \"$DATA | Memory limit reached ($LIMIT%): $USEDMEMPERLOG% | Restarting apache...\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # restart apache , centos'ta asagidaki sekilde yeniden baslar. Diger oslar icin farkli olabilir.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sudo \/etc\/init.d\/httpd restart\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TOTAL=`cat \/proc\/meminfo | grep MemTotal: | awk '{print $2}'`\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USEDMEM=`cat \/proc\/meminfo | grep Active: | awk '{print $2}'`\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 USEDMEMPER=$(($USEDMEM * 100 \/ $TOTAL))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 echo \"$DATA | Memory limit reached ($LIMIT%): $USEDMEMPERLOG% | Memory after restart: $USEDMEMPER%\" &gt;&gt; \/var\/log\/apache-free.log 2&gt;&amp;1\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 tail -1 $LOG\r\n# mail atmaya hazirlan\r\n\u00a0 SUBJECT=\"SERVER RAM KULLANIM ISTATISLIK\"\r\n\u00a0 # Email Kime\r\n\u00a0 EMAIL=\"mailadresiniz@gmail.com\"\r\n\u00a0 # Email text mesaji\r\n\u00a0 EMAILMESSAGE=\"\/var\/log\/apache-free.log\"\r\n\u00a0 echo \"Sistem Ram Y\u00fck durumu : $USEDMEM \/ $TOTAL\u00a0 \"&gt; $EMAILMESSAGE\r\n\u00a0 echo \"En \u00e7ok kaynak kullanan islemler $TOPPROCESS\" &gt;&gt;$EMAILMESSAGE\r\n\u00a0 echo \"Averaj $CPU_LOAD\" &gt;&gt;$EMAILMESSAGE\r\n\u00a0 echo \"Aktif islemler...\" &gt;&gt;$EMAILMESSAGE\r\n\u00a0 echo \"$PROCESS\" &gt;&gt;$EMAILMESSAGE\r\n\u00a0 mail -s \"$SUBJECT\" \"$EMAIL\" &lt; $EMAILMESSAGE\r\n\u00a0\u00a0\u00a0 fi\r\nfi<\/pre>\n<p>&nbsp;<\/p>\n<p>Vi edit\u00f6r kullan\u0131yorsak \u00f6nce\u00a0<strong>ESC<\/strong>\u00a0,sonra\u00a0<strong>SHIFT+ZZ<\/strong>\u00a0 tu\u015flar\u0131na basarak kaydedip \u00e7\u0131kal\u0131m ,nano edit\u00f6r\u00fc kullan\u0131yorsak\u00a0<strong>CTRL+x<\/strong>yapt\u0131ktan sonra y tu\u015funa bas\u0131p\u00a0<strong>ENTER<\/strong>\u00a0e dokunup kaydedelim.<\/p>\n<h2>UYGULAMA<\/h2>\n<p>Dosya izinlerini atamak i\u00e7in komut sat\u0131r\u0131na s\u0131ras\u0131yla\u00a0<strong>chmod +X \/home\/apache-free.sh<\/strong>\u00a0\u00a0 ve\u00a0\u00a0<strong>chmod 755 apache-free.sh<\/strong>\u00a0 komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yoruz. Daha sonra yine komut sat\u0131r\u0131na\u00a0<strong>\u00a0crontab -e<\/strong>\u00a0 yazarak a\u00e7\u0131landosyada en alt sat\u0131ra<strong>\u00a0*\/1 * * * * cd \/dir\/of\/script &amp;&amp; sh apache-free.sh\u00a0<\/strong>\u00a0yazarak yukar\u0131daki scriptin dakika 1 sistemdeki ram kullan\u0131m\u0131n\u0131 tespit edip , %95 in \u00fczerindeyse apacheyi otomatik resetlemesini sa\u011fl\u0131yoruz.<\/p>\n<p>Bu kod ram \u015fi\u015fince apache\u2019yi \u00f6ld\u00fcr\u00fcp yeniden ba\u015flat\u0131r ,e\u011fer sorun varsa log dosyas\u0131na yazar ve size durumun ne oldu\u011funa dair (Ram kullan\u0131m\u0131 ,toplam ram ,en \u00e7ok kasan i\u015flemler ,aktif i\u015flemler)\u00a0 bilgilendirme mesaj\u0131 at\u0131p i\u015fini bitirir.<\/p>\n<p>&nbsp;<\/p>\n<p>Scriptin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek isterseniz komut sat\u0131r\u0131na direkt\u00a0<strong>cd \/dir\/of\/script &amp;&amp; sh apache-free.sh\u00a0<\/strong>yazman\u0131z yeterlidir. Hata vermiyorsa crontab dakikada bir i\u015fini yapacakt\u0131r. Dilerseniz crontab\u2019a yazd\u0131\u011f\u0131m\u0131z\u00a0<strong>*\/1<\/strong>\u00a0ifadesini\u00a0<strong>*\/5<\/strong>\u00a0yaparak 5 dakikada bir \u00e7al\u0131\u015fmas\u0131n\u0131 da sa\u011flayabiliriz.<\/p>\n<p>Arada bir komut sat\u0131r\u0131na\u00a0<strong>cat\u00a0\/var\/log\/apache-free.log<\/strong>\u00a0dosyas\u0131n\u0131 a\u00e7\u0131p okuyarak crontab\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 s\u00fcreler i\u00e7erisinde ram kullan\u0131m\u0131n\u0131z\u0131n hangi aral\u0131klarda seyretti\u011fini g\u00f6zlemleyebilirsiniz.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vps server veya dedicated server tarz\u0131 bir sistemin ba\u015f\u0131ndaysak ,ve ram a\u015f\u0131r\u0131 y\u00fcklenmeden \u00f6t\u00fcr\u00fc genel bir yava\u015fl\u0131k sorunu ya\u015f\u0131yorsak bu script bir nebze olsun rahatlaman\u0131z\u0131 sa\u011flayacak. Konuya girmeden \u00f6nce belirtmeliyim ki bu \u00e7\u00f6z\u00fcm niteli\u011findeki komut sat\u0131r\u0131 uygulamas\u0131 as\u0131l sorunun oda\u011f\u0131na gitmedi\u011finden ge\u00e7ici bir rahatlama imkan\u0131ndan ba\u015fka bir \u015fey sunmayacakt\u0131r. Bu ram kullan\u0131m\u0131n\u0131n as\u0131l sebeplerine odaklanman\u0131z [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1155,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[253],"tags":[503,261,505,504],"_links":{"self":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/1117"}],"collection":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/comments?post=1117"}],"version-history":[{"count":1,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/1117\/revisions"}],"predecessor-version":[{"id":1118,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/1117\/revisions\/1118"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/media\/1155"}],"wp:attachment":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/media?parent=1117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/categories?post=1117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/tags?post=1117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}