• 28-03-2021, 17:07:41
    #1
    Test üzerine android uygulamalarım bulunmakta, bu uygulamalar tüm soru içeriğini sunucudan çekiyor sunucum da özellik olarak gayet yeterli kontrol ettiğimde %25 anca kullanım olmakta, sorunum ise çok hit alan uygulamamın sorularının ekrana dökülmesinin çok uzun sürmesi az hit alan uygulamamın sorularının ekrana anında yansıması. Yani kullanıcısı çok olan uygulamamın sorularını hemen sunucudan çekemiyorum ama az kullanıcısı olan uygulamamın soruları hemen ekrana yansıyor. Bu yavaşlığı çözmek için ne yapmam gerekmektedir acaba? Sunucunun özelliklerini 2 katına çıkarsam bir çözüm olur mu? Yada bu uygulamaların kullandığı veritabanını daha güçlü bir yapıya nasıl dönüştürebilirim?
  • 28-03-2021, 17:39:21
    #2
    KhanJitsu adlı üyeden alıntı: mesajı görüntüle
    kullanıcısı çok olan uygulamamın sorularını hemen sunucudan çekemiyorum ama az kullanıcısı olan uygulamamın soruları hemen ekrana yansıyor.
    Sorunun cevabını kendiniz vermişsiniz zaten. Kullanıcısı çok olan uygulamanız veritabanına daha fazla sorgu yapıyor ve daha fazla bağlantı açıyor. Kullanıcısı az olan uygulamanın daha hızlı açılması normal yani. Burada tabi yapılan sorguların karmaşıklığı da önemli.

    Yapabilecekleriniz;

    - Araya bir cache sistemi koyarak birbirini tekrar eden sorguları önbellekleyebilirsiniz. Böylece sık yapılan sorgular her seferinde veritabanına istek gitmemiş olur.
    - Sunucu kaynaklarını arttırmanız tek başına bir şey ifade etmez. Mesela MySQL kullanıyorsanız güzel bir my.cnf yapılandırması ile yine kendi içinde önbellekleme yapmanız iyi olur. Zaten sizin de söyledeiğiniz gibi sunucu kaynaklarının tümünü kullanmıyor.
    - Veritabanı ile uygulamanın çalıştığı sunucular arası latency de çok önemli.
    - Belki şu an lazım olmayabilir ama veritabanı çalıştıran tek sunucunun kaynaklarını arttırmak yerine bir kaç sunucu yapıp veritabanını bir cluster gibi çalıştırarak yükü dengeleyebilirsiniz. Böylece hem daha güvenli bir yedekleme politikanız olmuş olur hem de gelen sorgulara tek değil bir kaç sunucu cevap verir. Sonuç olarak da veritabanı sunucuları darboğaza girmemiş olur.

    vs. vs. örnekler ve çözümler çoğaltılabilir. Size önerim ilk olarak veritabanı sunucunuzu doğru şekilde config etmeniz olacaktır. Eğer bu konu hakkında yeterli bilgi sahibi değilseniz Amazon, Google gibi bulut servis sağlayıcılardan yönetimli veritabanı hizmeti alabilirsiniz.
  • 28-03-2021, 17:47:52
    #3
    iptables adlı üyeden alıntı: mesajı görüntüle
    Sorunun cevabını kendiniz vermişsiniz zaten. Kullanıcısı çok olan uygulamanız veritabanına daha fazla sorgu yapıyor ve daha fazla bağlantı açıyor. Kullanıcısı az olan uygulamanın daha hızlı açılması normal yani. Burada tabi yapılan sorguların karmaşıklığı da önemli.

    Yapabilecekleriniz;

    - Araya bir cache sistemi koyarak birbirini tekrar eden sorguları önbellekleyebilirsiniz. Böylece sık yapılan sorgular her seferinde veritabanına istek gitmemiş olur.
    - Sunucu kaynaklarını arttırmanız tek başına bir şey ifade etmez. Mesela MySQL kullanıyorsanız güzel bir my.cnf yapılandırması ile yine kendi içinde önbellekleme yapmanız iyi olur. Zaten sizin de söyledeiğiniz gibi sunucu kaynaklarının tümünü kullanmıyor.
    - Veritabanı ile uygulamanın çalıştığı sunucular arası latency de çok önemli.
    - Belki şu an lazım olmayabilir ama veritabanı çalıştıran tek sunucunun kaynaklarını arttırmak yerine bir kaç sunucu yapıp veritabanını bir cluster gibi çalıştırarak yükü dengeleyebilirsiniz. Böylece hem daha güvenli bir yedekleme politikanız olmuş olur hem de gelen sorgulara tek değil bir kaç sunucu cevap verir. Sonuç olarak da veritabanı sunucuları darboğaza girmemiş olur.

    vs. vs. örnekler ve çözümler çoğaltılabilir. Size önerim ilk olarak veritabanı sunucunuzu doğru şekilde config etmeniz olacaktır. Eğer bu konu hakkında yeterli bilgi sahibi değilseniz Amazon, Google gibi bulut servis sağlayıcılardan yönetimli veritabanı hizmeti alabilirsiniz.
    - Araya bir cache sistemi koyarak birbirini tekrar eden sorguları önbellekleyebilirsiniz. Böylece sık yapılan sorgular her seferinde veritabanına istek gitmemiş olur.
    Bu maddeyi nasıl gerçekleştirebilirim hocam? Sonuç itibariyle sürekli soru çektiği için aynı sorgu üzerinde defalarca çalışma yapmakta bana en mantıklısı bunu yapmak geldi içerisinde. Yada veritabanı sunucu için optimizasyon alabileceğim birisi var mıdır acaba?
  • 28-03-2021, 17:50:20
    #4
    KhanJitsu adlı üyeden alıntı: mesajı görüntüle
    - Araya bir cache sistemi koyarak birbirini tekrar eden sorguları önbellekleyebilirsiniz. Böylece sık yapılan sorgular her seferinde veritabanına istek gitmemiş olur.
    Bu maddeyi nasıl gerçekleştirebilirim hocam? Sonuç itibariyle sürekli soru çektiği için aynı sorgu üzerinde defalarca çalışma yapmakta bana en mantıklısı bunu yapmak geldi içerisinde. Yada veritabanı sunucu için optimizasyon alabileceğim birisi var mıdır acaba?
    Kullandığınız veritabanı altyapısının ne olduğunu bile yazmamışsınız. Bu maddeyi nasıl yapacağınızı nasıl açıklayabilirim ki?

    Bence siz deneyimli birinden sunucu optimizasyon ve bakım hizmeti alın. Forumda bu tarzda bir çok servis veren kullanıcı var.
  • 28-03-2021, 18:11:26
    #5
    iptables adlı üyeden alıntı: mesajı görüntüle
    Kullandığınız veritabanı altyapısının ne olduğunu bile yazmamışsınız. Bu maddeyi nasıl yapacağınızı nasıl açıklayabilirim ki?

    Bence siz deneyimli birinden sunucu optimizasyon ve bakım hizmeti alın. Forumda bu tarzda bir çok servis veren kullanıcı var.
    Haklısınız hocam Sunucu optimizasyonu yapan bir hemşerim ile irtibata geçtim inşallah sorunu en kısa zamanda çözeriz ilginiz ve alakanız için çok teşekkür ederim.