• 25-12-2008, 21:45:02
    #1
    Arkadaşlar mrb.

    Tüm yazılımı kendime ait bulunan asp ile yazılmış bir site ve ona bağlı bir de subdomain var. 404.asp ile sef url yöntemi kullanıyorum. Vps kiraladım, 512 RAM, 2,53 GHz işlemci mevcut. Vps de sözünü ettiğim tek siteyi ve subdomaini barındırıyorum. Veritabanı olarak da mysql kullanıyorum.

    Sitede anlık 25 kişi civarında ziyaretci olduğunda (bu da saat içinde 500 tekil hite karşılık geliyor ortalama) site yanıt vermiyor. Bu yoğunluğun olduğu ve sitenin yanıt vermediği anlarda, ya kendi kendine belli bir süre sonra geliyor ya da uzak masaüstü bağlantısı ile Restart yapıyorum, ziyaretci yoğunluğua göre durum tekrarlanabiliyor da. Uzak Masaüstü bağlantısını gerçekleştirdiğimde bu tür anlarda İşlemci %100 lerde, Ram ise 230 Mb lerde seyrediyor.

    Şimdi aklıma asp ve php arasındaki performans farkı geliyor. Gün içinde toplam 6k hiti olan asp ile yazılmış bir sitenin sözünü ettiğim Vps özellikleri ile sıkışması ister istemez acaba baştan mı yanlış yaptık programala dili seçiminde diye düşünüyorum.

    Sizce 6k hiti olan bir sitenin bu vps özelliklerinde sıkışması normal mi, yoksa yazılımdan kaynaklanan aşırı bir sistem kaynaklarını işgal mi sözkonusu? Asp ile mysql kullanmam bir hata mı sizce? Tecrübelerinizi paylaşırsanız sevinirim.
  • 25-12-2008, 23:05:10
    #2
    kodlamayı bilmeyen birine site yaptırırsanız 6k da vps de patlar, hatta iyi bile dayanmış diye bile düşünebiliriz.

    size basit bi örnek veriyim, bi çok asp coder bilir recordset lerin kapatılması gerektiğini rs.close : set rs = nothing <- şu basit kod nelere kadirdir bi bilsen. bunu yazmazsanız siteniz bazen arıza vermez, arıza vermemesi sorun olmadığını göstermez ama müşteri bunu anlamaz. ve coder (!) hiti olmadığı için sorun çıkartmayan bu siteyi size verir. Bu kod yazılmazsa işlemci çok çalışır. şöyle düşünün yukardan kod okunmaya başlıyor kapanma yazısını görmediği için başa dönüyor, ve bunun salisede onlarca olduğunu aklınıza getirin. bu okuma işini yapan işlemcidir ve buna gücü yetmeyebilir.

    yukarda anlattığım basit bişey daha farklı konularda var kodlamayla ilgili performans düşüklüğüne neden olan;
    mesela benim kullandığım basit bi kod:
    Alıntı
    Set sql = Baglanti.Execute("Select * from video where seo = '"& sayfa &"';")
    yada şöyle bi kod:
    Alıntı
    Set hbr = Server.CreateObject ("ADODB.RecordSet")
    sql = ("Select * From tarifler where id = " & id & " and onay = 1 ")
    hbr.Open sql, bag, 1, 3
    ikiside aynı işi görür fakat üstteki daha performanslıdır. zaten site mysql demişsin yukardakini kullanıyor olmalı.

    herneyse işte

    aklınıza asp ile ilgili bi şüphe gelmesin, olay kodlamada bitiyor. 40k komikim.com aspdir, büyük sitelerin bi çoğu aspdir. kodlamayı bilirseniz, vps de 50-100k site taşıyabilirsiniz.
  • 25-12-2008, 23:06:43
    #3
    Ben, asp + access ile 7-8k gördüm %8 cpu izinli hostta, yavaşlamaya başlayınca, mysql'e geçtim. Kodlamanda hata vardır büyük ihtimalle. Bağlantıları kapatıyomusun.
    Edit: Kubinin dediği gibi execute kullan, eğer kullanmıyosan.
  • 25-12-2008, 23:13:00
    #4
    Kubilay'a ek olarak:
    Execute ile açılan kayıtların kapatılmasına gerek yok ama kapatırsanız da yanlış olmaz. Bir de yıldız kullanmak yerine, tablodaki sütun sayısı fazlaysa, komple sütunu çekmek yerine sayfada kullanılacak alanları çekin.

    Mysql order by ve where alanları için index alanı oluşturup oluşturmadığınızı bilmiyorum.

    Veri sayısı fazlaysa limit de koyulmalı, aksi halde sorun devam eder. Sitenizin adresini gönderin daha teknik ve yerinde yorumlar yapılır.

    MySQL server'ın kullanılabilir birçok performans incelikleri var, işini bildikten sonra asp'si php'si farketmez. ASP ölmeyecektir, öldürmeyiz

    Kolay gelsin.
  • 25-12-2008, 23:56:22
    #5
    İlginize teşekkür ederim.

    Bağlantıyı kapatma konusunda çok hassasım arkadaşlar. Hatta öyle ki hem recordseti hem de db bağlantısını :

    rs.close
    set rs=nothing
    DB.close
    set DB=nothing

    Bağlantı olarak da Set sql = Baglanti.Execute("Select * from video where seo = '"& sayfa &"';") verilen örneği kullanıyorum kesinlikle.

    sef url konusunda pek yorum gelmedi. Benim aklıma biraz da o takılıyor. Yani düşünsenize sitenin tüm yükü tek bir dosyada, 404.asp de veya neyse artık.

    Bu sizce bir etken midir sıkışmaya dair? Belki size çok anlamsız gelecek ama benim 404.asp dosyam tam tamına 517 satır Önce klasör ismini çekiyorum sonra da ilgili id_no yu çekiyorum request.querystring değerinden. Misal http://www.site.com/klasor/47-konu.html vs. vs. bilirsiniz işte. Acizane bir aspcoder olarak kendime bu çözümü buldum hit delisi olmak için. Hit geldi ama deli olan da biz olduk bu aşamada.

    En çok bu husus kafama takılıyor. Aynı anda 25 kişi 517 satırlık 404.asp ye saldırınca acaba diyorum sorun buradan mı kaynaklanıyor? Ne dersiniz
  • 26-12-2008, 00:00:47
    #6
    517 satır kod içinde birçok döngü vardır, her satır kodu işleme almıyordur heralde. Olsa da sıkıntının kaynağının o olduğunu sanmıyorum.

    Limit kullandın mı, index oluşturdun mu, çok rağbet görülen sayfalarda asp kodlarını optimize ettin mi, for içinde kullandığın gereksiz işlem var mı. Görmeden hayal edilesi kod sıkıntılar
  • 26-12-2008, 00:01:15
    #7
    ...
    <%
         If link(3) = "izle" then
         %>
         <!--#include file="video.asp"-->
          <%
          elseif link(3) = "ara" then
          %>
        <!--#include file="araa.asp"-->
              <%
          elseif link(3) = "hit-vidolar" then
          %>
        <!--#include file="hit.asp"-->
              <%
          elseif link(3) = "yeni-videolar" then
          %>
        <!--#include file="yeni.asp"-->
    ...
    Bu şekilde yapıp denermisin. Belki her işlemi 404.asp'de yapmandan kaynaklanıyodur.
  • 26-12-2008, 00:03:23
    #8
    hiç döngü yok hocam, sadece select case

    önce klasör select case
    ondan sonra id_no tespiti ve ardından ilgili asp dosyasını çağırma
  • 26-12-2008, 00:17:51
    #9
    1- MySQL'fe RecordSet kullanamazsınız
    2- Kullandığınız kodların açma kapamalarına dikkat etmelisiniz. Eğerki kapanması gereken bir kodu kapamazsanız o kod, her sayfaya giren için farklı farklı çalışır ve buda CPU'nun yorulmasına neden olur.
    3- CPU artışını sadece kodlama değil serverine yapılan tüm ulaşımlar etkiler. Sitenin içeriği ne bilmiyorum, fakat!
    Eğer ki siten resim içerik yayınıda yapıyorsa, bu senin CPU artışına neden olabilir
    4- Yukarda saydıklarım dışında işin güvenlik yanınıda düşünmek lazım. Örneğin;
    a- Doss Atack
    b- Bot Saldırıları