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

 2,618 total views,  18 views today