Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Php - Java


Öne çıkan mesajlar

Mesaj tarihi:
Daha öncede php java ile ilgili bir konu açmıştım o problemi düzeltik şöyle bir sıkıntımız var.

Php ile Java performansı çok sıkıntılı özellikle java tarafı requestler cok geç geliyor sql lerde optimizasyon yapıyoruz.

Sistemin çalışması kısaca şöyle, PHP java servera istek yapıyor java server veritanına sorup sonuçları bize XML olarak gönderiyor.

Apache ve Java Server network üzerinden çalışıyor. Biz Apache giren her kullanıcı için Java Server a bir o kadar request gönderiyoruz hatta bazen aynı sayfa içerisinde 4 5 tane istek yolladığımızda oluyor buda performansda çok ciddi sıkıntılar yaratıyor.

Benim sorum Apache ile Java server arasında tek bir connection açıp tüm istekleri bunun üzerinden gitmesini sağlamak ile ilgili ne yapabilirim böyle bir yöntem çözüm varmıdır.

Diğer sorumda Php - Java performansını arttırmak için neler önebilirsiniz.
Mesaj tarihi:
Herseyden once bir kac test yapip sikintinin tam kaynagini ogrenin bence. Sikinti yaratan gecikme SQL tarafinda mi yoksa Java ile kodlanmis web serviste mi ? Java ile kodlanmis web servisin cok buyuk hatalar yapilmadikca boyle bir soruna yol acacagini sanmiyorum ben zira bu sekilde calisan devasa sistemler mevcut (bkz: sahibinden).
Mesaj tarihi:
3 aydır testleri yapıyoruz, önce SQL ler yüzünden büyük sıkıntı vardı o tarafı düzelttik.

daha sonra yine yeterli olmadı çok fazla join vardı listelerde sıkıntı oluyordu trigger ile verileri ayrı bir tabloya taşıyarak tek tablodan çekiyoruz o sqller ile ilgili yapabileceğimiz herşeyi yaptık.

Java serverdaki yükü azaltmak istiyoruz bu arada cache de kullanıyoruz. Veritabanına olabildiğince az yük bindirmeye çalışıyoruz java serverda işlemci kullanıcımı çok fazla.


Not: Veritabanı serverımızda, cache serverda ayrı bir makinadalar
Mesaj tarihi:
"java server da islemci kullanimi cok fazla"

load verdigin bir anda top command in output unu paste edermisin?

Cpu mu yuksek yoksa cpu time lar mi yuksek, buna bakmak lazim. Ayrica servlet containeriniz ne, java server demissin ama container vardir diye tahmin ediyorum (tomcat jetty etc.)

@di
sahibinden de mi calisiyorsun?
Mesaj tarihi:
Tomcat kullanıyoruz. İncelediğim kadarıyla Javanın kodlamasından kaynaklanan bir problem var.

çok fazla loop a giriyor. Şuanda ofiste değilim dönünce istedğin bilgileri göndereyim.
Mesaj tarihi:
4Ever said:

Apache ve Java Server network üzerinden çalışıyor. Biz Apache giren her kullanıcı için Java Server a bir o kadar request gönderiyoruz hatta bazen aynı sayfa içerisinde 4 5 tane istek yolladığımızda oluyor buda performansda çok ciddi sıkıntılar yaratıyor.

Benim sorum Apache ile Java server arasında tek bir connection açıp tüm istekleri bunun üzerinden gitmesini sağlamak ile ilgili ne yapabilirim böyle bir yöntem çözüm varmıdır.


Service'leri nasıl sağlıyorsunuz? HTTP üzerindense Persistent Connection ve Pipelining'e bi bak: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

Başka bir alternatif ise Java tarafını tüm isteklerini tek bir service ile cevaplayabilecek şekilde genişletmek.
Mesaj tarihi:
Evet servisleri HTTP üzerinden bağlıyoruz. başka bir bağlama yöntemi var mı?

@Gladmir evet CPU timerlar yüksek, hatta biraz önce restart atmak zorunda kaldık.

Sanıyorum kodlamada büyük sıkıntılar sürekli loopda kalıyor.
Mesaj tarihi:
JProfiler yada baska bi brand profileri (sirkette ne kullaniyorsaniz) tomcat e takip, cpu time i hangi thread ler yiyor bakmak lazim. Alet production daysa bunu yapmak daha da performans kayibi getirir. Diger bir secenek thread dump incelemek.

Tomcat de deploy edilmis birden fazla context varsa thread dump feci yorar inceleyen adami, tek web app varsa requestleri karsilayan, local de de generate edebiliyorsan, cpu time i blocklayan thread lerin nerelerde bekledigini gorebilirsin.

Dogasi geregi Servlet dedigin adam static singleton, kendi context in de tomcat thread in de yasiyor, baska thread pool unuz olsa gerek, onun thread lerinin naming duzgunse dump incelerken yardimci olur. Son olarak, DB tarafinda long query var mi? Acabilirsen kullandigin connection pool un stats lari acip long query lere bakabilirsin, genelde cpu time bu heriflerden hortlar eger ki I/O yoksa container in oldugu server da.
×
×
  • Yeni Oluştur...