Weblogic üzerinde bazen servislerimizin beklenenden yavaş açıldığını , açılsa dahi ” 7001/console ”(Admin Console) ekranın beklettiğine şahit olmuşsunuzdur.
Managed server ları restart edip log akışını izlerken bazı platformlarda logumuzun uzun süre aşağıdaki satırda beklediğinide görebiliriz:
#### < xapp-1-7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1329309449456>
Bunun nedeni, rasgele sayı üretimi için kullanılan JVM librarysi UNIX platformları için varsayılan olarak /dev/random’a dayanmaktadır. Bu, bir sonuç döndürmeden önce başlatmayı yavaşlatabilir. Bu da genelde servislerin açılmasında gecikmelere sebep olabilmektedir. “dev/random” komutu daha güvenli olmasına karşın unix platformlarda gecikmeye sebep oluyorsa, bunun yerine “dev/urandom” komutunun kullanılması önerilmektedir.
Platformumuzda bu performans probleminin olup olmadığını test etmek için, shell prompt da aşağıdaki komutun çıktısı kontrol edilir.
[root@test ~]# time head -1 /dev/urandom ±›Zµ3cİ©ŠÔ‹i91D¹ real 0m0.002s user 0m0.000s sys 0m0.002s
[root@test ~]# time head -1 /dev/random ....... real 2m50.623s user 0m0.002s sys 0m0.003s
Gördüğümüz gibi, /dev/urandom hemen sonucu döndürürken, /dev/random neredeyse 3 dakika sürdü.
Weblogic sunucusunu başlanamasını hızlandırmak için ise JVM’in java.security ayarını değiştiririz.
[root@admin ~]$ vi $JAVA_HOME/jre/lib/security/java.security ... securerandom.source=file:/dev/urandom
Yada sadece belirli bir domain için java.security parametresini değiştirmek istersek, startWebLogic.sh scriptini güncelleriz;
[oracle@test ~]$ vi $DOMAIN_HOME/bin/startWebLogic.sh #!/bin/sh export JAVA_OPTIONS=-Djava.security.egd=file:/dev/./urandom ...
Mustafa Bektaş Tepe
İyi Çalışmalar