Java 7'de, normalde sistem kaynağı tüketimi açısından oldukça sağlıklı bir java sunucu uygulaması var. Normalde sunucudaki CPU kullanımı% 50'nin altında. Ancak başlangıçtan sonraki birkaç dakika içinde, bu süre zarfında çok fazla trafik sunmaya çalışırken, CPU'nun birkaç dakika süreyle% 100'e sabitlenebileceği noktaya kadar çok farklı davranır. Sonuç, yavaş yanıt süreleri, ağ zaman aşımları ve hatta bazen uzun çöp toplama duraklamalarıdır.C2 Kompresör başlangıç CPU'yu başlatıyor
Sorunu teşhis etmek için sunucu başlatılırken bir dizi iş parçacığı attım ve aynı anda en yüksek H'yi çalıştırdım. Her bir java parçasını bir pid ile eşleştirerek, en çok CPU kullanarak C2 CompilerThread
'u sürekli olarak görebiliyorum. Bu iş parçacığının ne yaptığına dair araştırma yaptım ve bunun, çalışma zamanı istatistiklerine dayanan bir Java derleyicisini en iyi duruma getirdiğini anlıyorum. Ama yaptığım tüm okumalardan, durumu daha iyi hale getirmek için en iyi yaklaşımı anlatamam. (Başlangıçta sonraki ilk birkaç dakika içinde daha iyi performans bu sonuç olacak ama?) TieredCompiler için C2
- Anahtarı -XX üzerinde
- açın: Ben toplamaktadır seçeneklerdir + PrintCompilation nedir görmek optimize edilen (ancak sunucu şekilde trafiği kabul edilmeden önce ben onu optimize edilmesi zorlayabilir miyim? Bu bilgilerle ne yapacağız?)
götürüp orada denemek ve hafifletmek için başka seçenekler de vardır için en iyi yaklaşım nedir Başlangıçtan sonra CPU kullanımı?
Tüm kod derlemesinin nereye gittiğini bulduktan sonra, azaltma yollarına bakın. Bu, özellikle pahalı olan bir kütüphanenin kaldırılması anlamına gelebilir. IMHO, C2'nin uzun zaman harcayarak harcayacağı çok fazla kodun olması normal değildir. –
Teşekkür ederim. Bunu denedim ama ne aradığımdan emin değilim. Sadece en sık kullanılan yöntemler? Ya da "yapımı zombi" ya da "katılımsız" etiketli yöntemler? Bana hiçbir şey atlamayacak bir şey yok. – Cameron
En çok hangi paketleri paketler derler? E. Bu hangi kavanozdan gelir? –