Merhabalar,
Java ile native olarak yazılmış bir android iddaa tahmin uygulamam var. Bu uygulamada günlük maç sayısına göre onlarca farklı maç için php ile mysql tablosuna veriler gönderiyoruz. Ev sahibi, deplasman, oran, güven oranı, analiz, kredi, tahmin, tarih gibi tablolarımız var. Bunların her biri dolduruluyor.
Uygulamada ücretli / ücretsiz şeklinde maçlar paylaşılıyor. Şu anda yaklaşık 25.000 civarı indirme, 9.000 civarı etkin yükleme var.
Sorun şu ki, onesignal üzerinden kullanıcılara bildirim attığım anda mysql sorguları tavan yapıyor ve haliyle cpu tüketimi aşırı rakamlara çıkıyor. Sonrasında tahmin edeceğiniz gibi sunucudaki tüm siteler ile birlikte uygulama bir süre kapalı kalıyor.
Kulladığım sunucunun kötü bir sunucu olduğunu düşünmüyorum. Aynı sunucuda ufak tefek farklı sitelerde barındırıyorum. Ama bu uygulamadaki aktif kullanıcı sayısı artıp, onesignal üzerinden bildirim gönderdiğimde direk bu sorun ile karşılaşıyorum.
İlk önce onesignal ile veri gönderilirken benim sunucuma bağlanılmasının etkisi olacağını düşündüm, fakat bu kadar olacağını düşünmedim.
Şimdi varsa hem android hem php/mysql dan anlarım diyen bir babayiğit, önerilerini öğrenmek isterim. Daha babayiğit biri varsa, ben bu işi çözerim diyorsa ücreti mukabilinde yardımcı olabilirse sevinirim.
Sunucu değiştirmenin çözüm olabileceğini sanmıyorum. Çünkü inanılmaz bir cpu yükselişi oluyor. Taş olsa patlar sanırım. Ama işin diğer tarafında uygulamayı yazan arkadaşta her ne kadar aramız bozuk olsa da bu işi gayet iyi bilen birisi. Sunucuyu çok yoracak yapıda bir kod yazmış olacağını da sanmıyorum. Ama elbette uzmanları daha iyi bilecektir.
Son çare bir süre idare edecek olsa bile, bildirimleri kendi sunucumdan parça parça göndermeyi deneyeceğim sanırım. En azından bunu yapabilirim diyen varsa ona da kapım açık.
Son olarak bu tür projeler için bu tür sorunlarda nasıl bir çözüm üretilebilir? Yani daha büyük uygulamalar bu işi nasıl çözüyor? Bu konuda da bilgi sahibi olanlar bizi aydınlatırsa iyi olacaktır.
Herkese kolay gelsin.
Bir sorunum var. (android/php/mysql/sunucu)
13
●638
- 29-10-2018, 16:05:50Cpu kullanımının arttığı anlarda anlık sql sorgularını incelemek sağlıklı olacaktır.
Fazla sayıda sleep, long query veya wait lock konumda bekleyen sorgular varsa sorunun yazılımsal olduğu sonucuna ulaşabiliriz. İşlemci, bellek, disk i/o tarafının yeterli seviyede olduğunu varsayıyorum. - 31-10-2018, 00:25:42İlgilenen ve yardım etmeye çalışan herkese teşekkür ederim.
Öncelikle teşekkür ederim.Elazığlı168 adlı üyeden alıntı: mesajı görüntüle
Sağ olsun arkadaş inceledi ve dediği gibi yazılım tarafının sorunlu olduğuna kanaat getirdik.
Bildirim gönderdiğimizde doğal olarak bir anda bir yığılma oluyor ve altta arkadaşın bana ilettiği gibi bir çok mysql sorgusu bir anda çalışıyor. Doğal olarak sunucu kilitleniyor.
Bu şekilde bir anda bir çok sorgu olunca haliyle sunucu yetersiz kalıyor.Alıntı
Şimdi yazılım tarafında bu problemin giderilmesi için neler yapmamız gerekir? Bu konuda ücreti karşılığında yardımcı olabilecek arkadaşlar pm atabilirlerse sevinirim. - 31-10-2018, 00:45:53cache yapısı kullanabilirsiniz. daha ileri durumlarda kullanıcı sayısınız çok fazla olduğunda load balancing üzerine yoğunlaşabilirsiniz.
- 31-10-2018, 01:59:46Merhaba.
SQL cache neden kullanmıyorsunuz? SQL cache ile kullanıcılar düz dosya ile veri cekerler mysql işlemlerini sadece siz yaparsınız. Bu yöntem mysql veri aktarımında %98 tasartuf sağlar.
Iyi forumlar