27 Mayıs 2014 Salı

Web uygulama performansı: IIS / W3C Logları ile hata ayıklama ve iyileştirme

İhtiyaç duyulabilecek ısaltma açıklamarı:
*W3C: World wide web consortium : http://en.wikipedia.org/wiki/World_Wide_Web_Consortium
*UTC : Coordinated universal time: http://en.wikipedia.org/wiki/Coordinated_Universal_Time
*IIS : Internet informatiın services  http://en.wikipedia.org/wiki/Internet_Information_Services

-Son dakika proje kurtartma yazısı değildir.

IIS üzerinde sunulan web/servis uygulamaları için loglamanın faydaları:
-Kullanım (en az/çok ziyaret alan sayfalar, css ve scriptler),
-Performans (yavaş sayfalar [network gecikmeleri dahil]),https://logparserplus.com/examples/
-Hata (Sayfa bulunamadı ve çalışma zamanı hataları gibi)
-Güvenlik (istek bilgilerine göre [query veya header]) hacking girişimleri

Buradaki süreç,
-IIS üzerinde log kaydı tutmak için tanımlar: Konum, içerik formatı, dosya formatı, tarih, büyüklük.
-Log tutulacak alanların yapılacak analiz türüne göre seçimi.
-Standart olmayan durumlar için ekstra geliştirmeler (advanced logging özellikleri)
-Logların analiz edilebilir duruma getirilmesi: Log analizi için kullanılabilecek araç ve yöntemler
-Analiz sürecinde çıkarımlar yapıp icraate dönüştürme.
-Loglardaki http status, win status ve user agent bilgilerini anlamlandırma


IIS üzerinde log kaydı tutmak için tanımlar (configuration)


IIS üzerinden standart log (Logging), Advanced Logging (IIS 7 sonrası extension olarak) ya da Failed Request Tracing Rules ile daha detaylı loglar tutulup analiz edilebilir


28 Aralık 2012 Cuma

Sql Server Backup/Restore durumunda login'leri düzeltmek.

https://picasaweb.google.com/106809358111116575301/Belinay

Bir Sql server sunucusundan alınan backup başka bir sql server sunucusunda restore edildiğinde tanımlı login'ler çalışmayacaktır.
Bu kullanıcılara "Orphaned Users" denir.

Bu durumdaki tanımlar listesi için:

sp_change_users_login @Action='Report';

Düzeltmek için:

EXEC sp_change_users_login 'Auto_Fix', 'testuser', NULL, 'testpass'

EXEC sp_change_users_login 'UPDATE_ONE','testuser'

ilgili bağlantılar:

Troubleshoot Orphaned Users (SQL Server)
http://msdn.microsoft.com/en-us/library/ms175475.aspx

http://sqlblog.com/blogs/eric_johnson/archive/2008/10/17/fixing-orphaned-users.aspx

20 Ekim 2011 Perşembe

IIS'de static conent sunumu

IIS 7' de herhangi bir web site'da css, js ve image'lar için de cookie alışverişi yapılır. Özellikle Form Auth vs. gibi authantication yöntemlerinde veya state tutmak için cookie kullanıldığı durumlarda bu veri ciddi oranda büyük olur.
Ortalama bir sayfa isteğinde 50-100 arası dosya browser'a iner. Eğer cache vs gibi özellikler iyi tanımlanmamışsa her defasında bu gerçekleştirilir. Bu dosyalardan ilki static veya dinamik olsun sonuç olarak html'dir ve sonrakilerin büyük çoğunluğu image'dır. (Çöplüğe dönmüş [bir sürü farklı developerların çalıştığı] web site'larda java script ve css de çoktur.) Bu durumda ciddi oranda bir veri cookie alışveri üzerinden sunucu-istemci arasında gidip gelir.

Cookie alışverişini kapatmanın yolu IIS 7 için site özelliklerinden Session State'de bu özellikiği "Not Enabled" olarak ayarlamakdır. Fakat bu yapılınca o site için session tamamen kapatılır ve dinamik sayfalarda hem sunucu hem istemci tarafı state tutmak için işlevsiz hale gelir.




Bu durumda static content için zaten yapılması gereken örn: bir sub domain (yeni bir site) üzerinden static content sunumunu gerçekleştirmek.

Örneğin solution altında bulunan "Assets" dizini için static.xdomain.com adından yeni bir sub domain (yeni bir site) açılır.
O site için "Session Mode" iptal edilir bölyece cookie olayı iptal edilir.

Anahtar noktalar:

Bu sayede compression ve cache'de ayarlanabilir.

Böylece css ve bu css lerin üzerindeki image lar buradan sunulur.

Test için mevcut cookie ler silinmelidir ki yanılgıya düşürmesin.

Statik içeriği ayrı bir domain den sunarken css dosyalarını cache temizlenme problemi için kullanılan yöntem style.css?aaa vs şeklinde. Bu durumda netscaler gibi statik içerik proxy araçları bunları cache'lemek veya ziplemek durumunda mahrum kalıyor.
Buna alternatif çözüm static sub domain'i üzerinde Url route tanımı yapmak örn: static.domain.com/style-version.css. Bu da style.css yönlendirme yapar.

Kaynakça:


Static content in bulunduğu dizin için özel web.config oluşturmak. (Eğer static content mevcut web solution altında ise bazı module'leri disable (override) gerekiyor. Bunun içinde applicationHost.config de bazı değişiklikler yapmak gerekli. Yani shared hosting de pek mümkün değil.
http://www.robertsindall.co.uk/blog/creating-static-content-website-in-iis-7/

http://stackoverflow.com/questions/3060775/stopping-cookies-being-set-from-a-domain-aka-cookieless-domain-to-increase-si

Web config den ve iis manager dan cookiless domain yapmak (session kapatmak)
http://stackoverflow.com/questions/4105149/how-to-respect-serve-static-content-from-a-cookieless-domain-page-speed-rule-in



14 Haziran 2011 Salı

Web site yoklama araçları / Life checker /monitoring

Arkasında kurumsal sponsor bulunan web siteleri için Sitescope vs. gibi gelişmiş monitoring araçları vardır.

Küçük bütçeli projeler için kullanılabilecek "sadece web sitenizin istediğiniz sayfasının yanıt verip vermediğini" belirli aralıklarla kontrol eden ücretsiz servisler vardır.

Bunlardan biri:

paralı
http://www.pingdom.com/

http://nodeping.com
https://www.monitorscout.com


Bu ve bunun gibi servisler ile sitenin hangi oranda ayakta kaldığı ve yanıt süreleri için değerler toplanabilir.

Diğer bir faydasında sürekli ziyaretçi almayan IIS 6 / 7 tabanlı web sitelerinin karşılaştığı sürekli istek gelmemesinden kaynalı Application pool'un hazır olmaması ve sonrasında gelen ilk request'de warm-up için gereken bekleme süresi ile ilgili olumsuz durumu ortadan kaldırması.

23 Ağustos 2007 Perşembe