Tem 23 2010

AIX, Linux Sistemlerde CPU ve RAM Kullanımlarının İncelenmesi

Category: Genel,Gezegen,Linux-KomutlarBayram Karagöz @ 23:51

Linkedin de sistemci bir arkadaşın yaşadığı problem üzerine verilen cevaplardan derlediğim bir inceleme makalesini sizlerle paylaşmak istedim. Sisteminizde yaşayabileceğiniz CPU RAM sorunlarını belirlemede bu komutlar işinize yarayabilir.

  • CPU yiyen proseslerin gösterilmesi;
#ps aux | head -1; ps aux | sort -rn +2 | head -10
  • RAM yiyen top 10 prosesin listelenmesi;
#ps aux | head -1; ps aux | sort -rn +3 | head
  • Sırasına göre cezalandırılmış süreçlerin listelenmesi;
#ps -eal | head -1; ps -eal | sort -rn +5
  • Proseslerin öncelik sırasına göre listelenmesi;
ps -eal | sort -n +6 | head
  • NICE değerlerine göre proseslerin listelenmesi;
#ps -eal | sort -n +7
  • Zaman sıralamasına göre proseslerin listelenmesi;
#ps vx | head -1;ps vx | grep -v PID | sort -rn +3 | head -10
  • Gerçek memory kullanımına göre proseslerin listelenmesi;
#ps vx | head -1; ps vx | grep -v PID | sort -rn +6 | head -10
  • I/O kullanımına göre proseslerin listelenmesi;
#ps vx | head -1; ps vx | grep -v PID | sort -rn +4 | head -10
  • Bekleyen proseslerin ID sine ulaşma;
#ps vg | head -1; ps vg | grep -w wait
  • Öncelik sıralama seviyelerine göre CPU kullanımı;
#topas -P
  • top 10 MEMORY tüketen proseslerin listelenmesi;
#svmon -Put 10

ps komutunun kullanımı ile alakalı daha ayrıntılı bilgi için;

http://unix.ittoolbox.com/groups/technical-functional/ibm-aix-l/memory-usage-901788

http://www.scribd.com/doc/26831738/AIX-Commands

http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/ps_command.htm

VN:F [1.9.3_1094]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.3_1094]
Rating: +1 (from 1 vote)
  • Share/Bookmark
PDF Download    Makaleyi PDF formatında gönder

Etiketler: , , , , , ,


Tem 17 2010

WEB Server Performansını Nasıl Arttırırım? -3

Category: Apache,FreeBSD,Gezegen,LighttpdBayram Karagöz @ 01:20

Yazımıza 3. kısım ile devam ediyorum. Bu kısımda sizlere performans ile alakalı anlatacaklarım altta sıralanmıştır. Tüm listeye  buradan ulaşabilirsiniz.

3- İşletim Sistemi Performans Arttırımı

4- WEB Server Performans Arttırımı

a) PHP Performans Arttırımı

b) Apache Performans Arttırımı

c) Lighttpd, NginX ve Cherokee Performans Arttırımı

3- İşletim Sistemi Performans Arttırımı

  • Grafiksel arayüzü olmadan kurulabilmesi, lisans maliyetinin olmaması nedeniyle Linux kullanmanız tavsiye edilir. Bunun yanında Unix bazlı sistemler(favorim tabiiki FreeBSD), Windows ve MAC OS X kullanabilirsiniz. Eğer çok işlemcili bir servera sahipseniz, SMP kullanımı için Solaris te kullanabilirsiniz.
  • İşletim sistemlerinin kendi optimizasyonlarını inceleyerek bunlar üzerinde gelişme kaydediniz.
    • Linux için buradan yararlanabilirsiniz.
    • Linux hdparm komutu ile çoklu sektore ve DMA ye okuma/yazma işlemini aktif edebilirsiniz. Ör: hdparm -m16 -d1
    • Diskleri async ve noatime seçenekleriyle birlikte mount ediniz.

4- WeB Server Performans Arttırımı

  • Firefox ve firebug extension unu kurarak her sayfadaki componentlerin açılma sürelerini incelemiş olursunuz. Bununla birlikte  Yslow extension ile sitenizin yahoo nun hızlı bir web sitesi için 14 kurala (video) uyup uymadığını veya ne kadar uyduğunu verdiği puanlar ile görebilirsiniz.

a) PHP Performans Arttırımı

  • CPU yükünü hafifletmek amacıyla PHP accelerator (PHP hızlandırıcıları) kullanmanız şiddetle tavsiye edilir. APC, PHPA, Xcache ve eAccelerator PHP hızlandırıcılara örnek olarak verilebilir. Bu hızlandırıcıları seçerken seçtiğiniz programın kullandığınız PHP versiyonu ile düzgün çalışabildiğine emin olun.
  • Cachelenmiş PHP sayfalarını TMPFS dosya sistemine koyabilirsiniz. Böylelikle okuma/yazma işlemlerinde performans artışı sağlarsınız. Fakat server kapanmalarında, restart veya web server restart durumlarında bu cachelenmiş dosyaların silinebileceğini unutmamak gereklidir. Dolayısıyla web servisini restart etmeden önce cachelenmiş dosyanın içeriğini kopyalayıp restart ettikten sonra tekrar geri kopyalama yapın.
  • Apache/IIS ISAPI module yüklendiğinde PHP nin performansı CGI ya göre daha iyi olur.
  • php.ini dosyasındaki memory_limit miktarını kontrol edin. PHP 5.2.1 de bu değer default olarak 128M atanmıştır. İhtiyacınıza göre bu değeri düşürün.

Nasıl Yüklenilir?

b) Apache Performans Arttırımı

Burada yapacağınız iyileştirmeler genel olarak httpd.conf dosyasında yapacağınız değişikliklerdir.

  • Eğer apache serverı windows üzerinde kullanıyorsanız,  Apache Lounge taki bilgilerden yararlanarak resmi bir apache server indirmeye göre performans ve stabilite  iyileştirmelerini yapabilirsiniz. Fakat şunuda göz önünde bulundurmak gerekiyor ki bu kurulum resmi olmayan bir kurulum olacağından hiçbir zaman resmi kurulum ile karşılaştırılamaz.
  • MaxClients değişkenini aşağıdaki formule göre ayarlayın. Bu değişken apachenin eşzamanlı olarak yapılan max. kaç isteğe cevap verebileceğinin sayısıdır. Bu değişkenı kullanıma elverişli olan RAM miktarının %80 ini yedek olarak kullanmak üzere ayırabilirsiniz.
MaxClients = Total available memory * 80% / Max memory usage of apache process
  • Apache prosesinin memory kullanma miktarı yaklaşık 10MB civarındadır. Bu yüzden pratik olarak elverişli RAM’ı 10MB lık parçalara bölerek MaxClients değerini elde edebiliriz. Apache prosesinin max. Memory kullanım miktarını öğrenebilmek için aşağıdaki komutu komut satırına yazabilirsiniz;
#ps -ylC httpd --sort:rss

Maxclients değerini 256 nın da üzerine çıkarmanız gerekiyorsa, ServerLimit değerini de değiştirmeniz gerekir.

UYARI: Maxclients değerini elverişli RAM in de üzerinde olacak şekilde ayarlarsanız swap alanı kullanılmaya başlayacağından performansta önemli düşüşler yaşarsınız.

  • Apachenin kullanacağı modül sayısını bilerek tam olarak ihtiyaca uygun olan modülleri aktif edin. Kullanmadığınız modüller aktif olarak kaldığında RAM in belirli bir miktarını kullanacak bu da performans düşüklüğüne neden olacaktır.
  • En son Apache versiyonunu kullanın. Örneğin Apache 2 versiyonu memorynin düzgün ve az kullanması üzerine geliştirilmiş özelliklere sahiptir.
  • Unix/Linux sistemlerde MaxRequestsPerChild sayısını 20-30 arasına düşürmeye çalışın.
  • Yoğun yüke sahip iseniz KeepAlive Off tanımlayarak bu KeepAlive işlemini durdurun(sitenizde link veya upload edilmiş resim dosyası bulunmuyorsa bu işlemi yapabilirsiniz) veya KeepAliveTimeout değerini 2 ile 5 arasında ayarlayın. Bu değer default olarak 15 sn ayarlıdır. Değerin fazla olması idle da bekleyen proses sayısının artacağı manasına gelir. Bu değerin size en uygun olanını seçmek için kullanıcılarınızın yaklaşık olarak sayfalarınızın gelmesi için ne kadar beklediklerini öğrenebilir veya test edebilirsiniz. Değeri değiştirdikten sonra CPU kullanımını gözleyerek çalışan httpd proseslerinde yükselme olup olmadığını kontrol edin.
  • Bir önceki performans iyileştirmesiyle alakalı önemli bir hususu belirtmek isterim. Eğer sitenizde SSL aktif edilmiş ise ve apache kullanıyorsanız KeepAlive Timeout değerini en az 60 sn yapın. Çünkü Internet Explorer da bununla alakalı bir problem mevcut(Şimdi düzeltildimi bilemiyorum).
  • KeepAlive Off değerini kapatmak yerine alternatif olarak bu değeri ON yaparak ve web server önüne HTML dosyalarının resimleriyle beraber cache lenmesini sağlayacak bir Reverse Proxy Server koyarak performans arttırımı yapabilirsiniz.
  • .htaccess dosyası kullanmıyorsanız AllowOverride parametresini None yaparak .htaccess kontrolünü engelleyin.
  • DirectoryIndex değerini doğru bir şekilde ayarlayarak web serverın içerik-araştırması (content-negotiation) yaparak zaman kaybetmesini engelleyebilirsiniz. Aşağıda bunun için bir örnek görülmektedir.
DirectoryIndex index.php index.html index.htm
  • Server üzerinde geliştirme yapmıyorsanız ExtendedStatus Off ve mod_info ile mod_status modüllerini disable edin.
  • HostnameLookups Off yaparak DNS sorgulaması gecikmelerini önleyebilirsiniz. Default olarak bu şekildedir.
  • TimeOut  değerini 30 ile 60 sn arasında ayarlayın.
  • Options yönergesini klasör taramasını önleyecek şekilde ayarlayın. Bu sayede disk I/O miktarını düşürmüş olursunuz. Aşağıda örnek konfigürasyon görülmektedir.
Options -Indexes FollowSymLinks
  • Cacheleme – web server performansı için hayati önem taşıyan durumdur cacheleme. Bir sayfayı kullanıcıların her girişinde tekrar tekrar açıp resimleri, flashları getirmeye çalışması server için büyük bir yüktür. Bu nedenle sürekli olarak değişmeyen öğelerin (resim olabilir, flash olabilir) cachelenmesi sayfanın kısa sürede gelmesi için çok önemlidir.

Cacheleme OS ye göre değişebilir. Fakat temel olarak 2 adımda incelenir.

  1. mode_expires ı kurun ve aktif edin – dökümantasyonlardan ve man sayfalarından yararlanabilirsiniz.
  2. Virtual server tanımlamasında root dizinin <directory> kısmına aşağıdaki kod parçasını ekleyin.(.htacces dosyasına da AllowOverride parametresini ON olarak set ettikten sonra ekleyebilirsiniz .)

<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 seconds"
 ExpiresByType text/html "access plus 1 seconds"
 ExpiresByType image/gif "access plus 1 week"
 ExpiresByType image/jpeg "access plus 1 week"
 ExpiresByType image/png "access plus 1 week"
 ExpiresByType text/css "access plus 1 week"
 ExpiresByType text/javascript "access plus 1 week"
 ExpiresByType application/x-javascript "access plus 1 week"
 ExpiresByType text/xml "access plus 1 seconds"
 </IfModule>

Yukarıdaki ifade HTML ve XML dosyaları haric dinamik olarak değişen tüm dosyaları cachelemektedir. Cache zamanını da resimlerinizin değişme süresine göre ayarlayabilirsiniz.

Ayrıntılı bilgi için www.metaskills.net adresini inceleyebilirsiniz.

c) Lighttpd, NginX ve Cherokee Performans Arttırımı

Web server performansını lighttpd, nginx or cherokee gibi hafif web server programları kullanarak ve PHP ile FASTCGI-mode ile kombine ederek arttırabilirsiniz.

Lighttpd web server uygulaması tamamen yüksek miktarlarda yüke sahip serverların memory ve disk I/O kullanımlarının en düşük ve en iyi düzeyde kullanılması için tasarlanmıştır.

Memory ve disk kullanımları sınırlı seviyede olan sistemler için kullanılması gayet uygundur.

Alternatif olarak lighttpd and nginx web uygulamaları load balancer (yük dengeleyici) ve/veya reverse proxy olarak kullanılarak yük dağıtım işlevi görebilirler. Bu programlar yüksek trafiğe sahip binlerce serverda denenmiş ve basit konfigürasyonlarla başarılı bir şekilde kullanılmaktadır.

KAYNAKLAR;

http://blog.digitalstruct.com/2008/01/31/performance-tuning-overview/

http://blog.stuartherbert.com/php/2008/01/31/more-about-performance-tuning/

http://httpd.apache.org/docs/2.0/misc/perf-tuning.html#page-header

http://docs.moodle.org/en/Performance

http://docs.moodle.org/en/lighttpd

http://www.devside.net/articles/apache-performance-tuning

http://linuxbox.co.uk/vbulletin_performance_tuning.php

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Download    Makaleyi PDF formatında gönder

Etiketler: , , , , , , , ,


Kas 05 2009

Şaşırtıcı Bir Ubuntu,Vista ve Windows 7 Karşılaştırması

Category: Gezegen,LinuxBayram Karagöz @ 02:58

Linux(Ubuntu 8.10,9.04) ile Windows arasında yapılan benchmark testlerini görünce çok şaşırdım eminim siz de şaşıracaksınız. Windows 7 sürümü açılışta geriye düşse de diğer testlerde fena değil. Ama Linux almış başını gitmiş zaten :)

Ayrıca ext4 dosya sisteminin ext3 e göre yapılan benchmark testlerinde bir hayli olgunlaşmış ve daha performanslı olduğunu gördüm.

Buyrun test sonuçlarını buradan inceleyin…

Alttaki videoda da teste  dahil olan sistemlerin açılış hızlarını görebilirsiniz.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Printer    Makaleyi PDF formatında gönder

Etiketler: , ,


Eyl 25 2009

debian 5 üzerine vmware server 2.0.1 kurulumu

Category: Genel,LinuxBayram Karagöz @ 16:01

Zorlu geçen bir operasyondan sonra windows 2003 server üzerinde aksak bir şekilde çalışan vmware server 2 yi aynı server üzerine debian 5 kurarak geçirdim. Daha öncesinde aynı server üzerine ubuntu server 9.04 tüm kurma çabalarıma rağmen kurulum tamamlandıktan sonra sunucu kendini 2 dk sonra restart ediyordu. Bununla birlikte debian 5 işletim sistemini desktop ile kurmaya çalışma çabalarımda sunucunun donması sebebiyle başarısızlıkla sonuçlandı. Bu başarısızlığın arkasında yatan sebeplerden en önemlisi kendi aldığınız kararları uygulamaya koymayıp başkalarının fikirlerine şartsız yönlenmek olmuştur.

Neyse vmware kurulacak servera desktop kurulması mantıklı değil, gereksiz yere sunucu kaynağını yer dedim ve web arayüzü ile çalışabilen yeni vmware 2.0.1 i stantard bir debian 5 sistemin üzerine aktarmaya çalıştım ve sonuç olumlu :) )

kurulum ve konfigürasyon aşamalarını detaya girmeden teker teker aşağıda yazacağım. Umarım yardımcı olur;

  1. stantart debian 5 kurulumu. netinstall cd sini kullanarak yapılmıştır.
  2. kurulum tamamlandıktan sonra sunucu ip si sabitlenmiştir. http://www.iceteks.com/forums/archive/t/3298/
  3. sunucuya uzaktan erişim yapabilmek amacıyla ssh servisi kurulmuştur
  4. windows makinelerden dosya transferi yapabilmek amacıyla samba kurulum ve ayarları yapılmıştır.
  5. vmware server 2.0.1 free edition resmi siteden indirildi ve sunucuya kopyalandı.
  6. gcc-4.1 ve make programları tüklendi. uyarı gcc-4.3 kurulduğunda problem oluşuyor. dikkatli olunması gerekir.
  7. debian 5 te gcc-4.1 ve killall programlarının çalışma komutlarının isimleri ve yerleri değiştiği için vmware kurulum scripti çalıştırıldığında nu programların yeri soruluyor. whereis komutu ile bu programların yerleri belirtilmesi gerekir.
  8. vmware-install.pl scripti çalıştırılarak kuruluma başlandı.
  9. script çalıştırıldığında gelen tüm sorulara default yanıtlar verildiğinde kurulum tamamlanıyor.
  10. browserınıza https://vmware-server-ip:8333/ yazdığınızda web arayüzünden vmware a ulaşabilirsiniz.
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Creator    Makaleyi PDF formatında gönder

Etiketler: , ,


Eyl 10 2009

wireshark remote capturing

Category: NetworkBayram Karagöz @ 14:22

sunucuya bağlanmadan sunucu üzerindeki paketleri sniff etmek artık mümkün.
eğer lokal pcmiz linux ise ve wireshark uygulaması yüklenmiş ise ayrıca bağlanılacak sunucuda da herhangi bir sniffer uygulaması ( tcpdump, tshark, ethereal veya wireshark ) sunucuya bağlanmadan pratik bir yöntem ile sunucu üzerindeki paketleri inceleyebiliriz.

lokal pc de kullanılacak komutlar;

# rm capture; mkfifo capture;
# ssh root@hostC tcpdump -s 0 -U -n -w - -i eth0 tcp port 3000 > capture

NOT: tcpdump komutunu çalıştırabilmek için root haklarına sahip kullanıcı olmak gereklidir. normal bir kullanıcıya visudo ile tcpdump komutunu çalıştırma hakkı verirsek bu işlemi yapabilmek için root kullanıcısı olmamıza gerek kalmayacaktır.

daha sonra wireshark ı açıp network interface olarak capture pipenin bulunduğu konumu giriyoruz.
( örnek olarak /home/forza/capture )

daha sonra start deyip işlemi başlattığımızda işte paketler karşımızda :) )

kaynaklar;

http://blog.notreally.org/articles/2007/01/24/how-to-monitor-packets-from-a-remote-interface/

http://wiki.wireshark.org/CaptureSetup/Pipes

http://wiki.wireshark.org/CaptureSetup

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
  • Share/Bookmark
PDF Printer    Makaleyi PDF formatında gönder

Etiketler: , , ,