Not: Aşağıda açıklanan tüm araçlar eğitim amaçlıdır. Aksi kullanım durumunda meydana gelebilecek sonuçlar www.cozumpark.com sitesi, ekibi ve makale yazarı sorumlu değildir.
Web sitelerinin hızının Web tarayıcıları kullanarak test edilmesi genelde yaşanan yavaşlık sorunu ile ilgili bilgi vermez. Birçok HTTP hataları tarayıcılar üzerinde görüntülenemediğinden, hata giderme işlemi de bu nedenle zorlaşır.
Linux işletim sistemleri web sitenizin hızını ölçmek için iki adet harika araç ile gelir. Bu her iki program, sunucunuza TCP 80 nolu portunu kullanarak telnet bağlantısı yapar sunucunuzun cevap süresi ölçer.Hızlı TCP cevapları, fakat yavaş curl ve wget cevapları genelde ağ problemi değildir. Bu tür hatalar web sunucunuzun yanlış yapılandırılması yada kaynak kodlarınızdaki hatalardan meydana gelir.
Bu kısa bilgilerden sonra curl ile işlemlerimize başlayalım.İlk olarak curl komutunu -I anahtarı ile kullanacağız. Bu anahtar bize Web sayfalarımızın header ve HTTP durum kodlarını verir. Eğer -I anahtarını kullanmazsanız ekranda tüm web sayfasının kodları görürsünüz.
O zaman www.cozumpark.com adresi test edelim.
[root@erd-ltp-lynx-01 ~]# curl -I www.cozumpark.com
HTTP/1.1 302 Found
Via: 1.1 COMANCHE
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Length: 150
Date: Fri, 04 Jul 2008 10:08:29 GMT
Location: http://cozumpark.com/default.aspx
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: PleskWin
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Buradaki 302 kodu sitemizin geçici bir URL altında olduğunu belirtiyor yada yönlendirme yapıldığını gösteriyor..
[root@erd-ltp-lynx-01 ~]# curl www.cozumpark.com
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href=”http://cozumpark.com/default.aspx”>here</a>.</h2>
</body></html>
Eğer kullandığımız komut HTTP/1.1 200 OK komutunu ekrana başmış olsaydı o zaman sunucumuzun düzgün çalıştığından emin olabilecektik. Sitemizin başka bir adrese yönlendirildiğinden bu testi şu an size göstermiyorum. Ancak siz bu testi kendi sunucularınız üzerinde rahatça deneyebilirsiniz.HTTP durum kodları için http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html adresini kullanabilirsiniz…
wget kullanarak web sitelerinizin sayfalarını kendi bilgisayarınıza indirebilirsiniz. -N anahtarını kullanarak sadece web sitenizi indirmekle kalmayıp, indirdiğiniz dosya boyutunu ve indirme hızınızı görebilirsiniz. Bu da size web sunucunuz hızı ile ilgili ön bilgi verebilir.
[root@erd-ltp-lynx-01 ~]# wget -N www.cozumpark.com
–12:15:35– http://www.cozumpark.com/
=> `index.html’
Resolving www.cozumpark.com… 77.79.83.181
Connecting to www.cozumpark.com|77.79.83.181|:80… connected.
HTTP request sent, awaiting response… 302 Found
Location: http://cozumpark.com/default.aspx [following]
–12:15:36– http://cozumpark.com/default.aspx
=> `default.aspx’
Resolving cozumpark.com… 77.79.83.181
Reusing existing connection to www.cozumpark.com:80.
HTTP request sent, awaiting response… 200 OK
Length: 56,744 (55K) [text/html]
Last-modified header missing — time-stamps turned off.
–12:15:36– http://cozumpark.com/default.aspx
=> `default.aspx’
Reusing existing connection to www.cozumpark.com:80.
HTTP request sent, awaiting response… 200 OK
Length: 56,744 (55K) [text/html]
100%[==================================================================================================>] 56,744 80.17K/s
12:15:37 (79.97 KB/s) – `default.aspx’ saved [56744/56744]
curl ve wget komutarından başka netstat komutu kullanılarak sorunların kaynakları bulunabilir. Netstat komutunu -an anahtarı ile kullanarak sunucunuzun hangi TCP portlarını aktif olarak dinlediğini ve sunucunuza yada sunucunuzda başka ağlara bağlatıları görebilirsiniz.
[root@erd-ltp-lynx-01 ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:49802 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23600 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 192.168.2.20:54909 82.54.230.19:443 ESTABLISHED
tcp 0 0 192.168.2.20:39118 72.14.215.109:993 ESTABLISHED
tcp 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:32768 0.0.0.0:*
udp 0 0 0.0.0.0:32769 0.0.0.0:*
udp 0 0 0.0.0.0:32770 0.0.0.0:*
udp 0 0 127.0.0.1:32771 0.0.0.0:*
udp 0 0 0.0.0.0:784 0.0.0.0:*
udp 0 0 0.0.0.0:23600 0.0.0.0:*
udp 0 0 192.168.122.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*
Birçok TCP bağlantısı kalıcı bağlantılardır ancak HTTP bağlantıları biraz değişiktir çünkü Web sunucusu üzerinde belirlenen zaman aşımı yada aktif olmama(inactive timeout)sürelerinde kendilerini kapatılar. Netstat komutunu kullanarak sunucunuza yapılacabiliecek bağlantı sayısını ve time_out sürelerini belirleyebilirsiniz. Bunun için grep ve egrep komutlarını wc ile kullanmanız gerecektir. Aşağıdaki örneğe bakacak olursak benim sistemimde şu an aktif 2 adet time_wait bağlantı bulunuyor.
[root@erd-ltp-lynx-01 ~]# netstat -an |grep tcp |egrep -i ‘established|time_wait’ |wc -l
2
Eğer tekrar netstat -an komutunu çalıştırırsam bunların 443 ve 993 nolu portlar olduğunu ve GMAIL adresine bağlı olduğunu göreceğiz.
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
…
tcp 0 0 192.168.2.20:54909 82.54.230.19:443 ESTABLISHED
tcp 0 0 192.168.2.20:39118 72.14.215.109:993 ESTABLISHED
…
Linux üzerinde gelen bu kullanışlı araçlar ile web sitelerimizin hatalarını ve performanslarını test ettik. Yazımın başında da dediğim gibi bu araçlar sadece eğitim amacı ile açıklanmıştır. Aksi kullanımı sonrasında doğabilecek sonuçlardan www.cozumpark.com, ekibi ve makale yazarı sorumlu değildir.
Herkese kolay gelsin




Eline sağlık Erdal çok başarılı olmuş