[Gelistirici] r57490 - in playground/ozan/mudur: . bin
Onur Küçük
onur at pardus.org.tr
28 Ara 2008 Paz 03:11:26 EET
On Sun, 28 Dec 2008 02:33:47 +0200
Ozan Çağlayan <ozan at pardus.org.tr> wrote:
> Onur Küçük wrote:
> >
> > Bende normal depo paketleriyle de X in gelmesi uzun sürüyor. Orada
> > fazlaca vakit kaybediyoruz, incelemek lazım niye uzun sürdüğünü.
> > Headstart kullanmamıza rağmen müdür bitmeden X görüntüsü geldiğini
> > görmedim hiç. Birşeyleri atlıyor olabiliriz.
> >
> Ben biraz daha kurcaladım akşamüstü bu işleri, gözlemlerim şöyle:
>
> anladığım kadarıyla servisleri başlatan dbus çağrısının *kendisi*
> senkron ancak servis başlatma süreci asenkron, yani sysklogd'yi
> başlatmak için dbus çağrısı yaptığımızda başlayana kadar beklemiyoruz
> onu bekleyen comarjob.
>
> genel bottlenecklere baktığımda,
>
> 1. dbus başlatıldığında dbus soketini bekleyen waitBus çağrısı ~0.2s
> sürüyor,
> 2. sysklogd başlatıldıktan sonra /dev/log'u bekleyen waitBus çağrısı
> ~1.4s sürüyor,
> 3. headstart'tan sonra /tmp/.X11-unix/X0 soketini bekleyen waitBus
> çağrısı ise en iyi ihtimalle bende ~4.8s sürüyor.
of, çokmuş
bunun sebebi de tahminen kdm açılana kadar yüklenen bilmem kaç tane so
dosyası, Qt si kdelib i derken. Bir de tabi as-needed kullanmadığımız
için alakalı alakasız bir sürü şey yükleniyor.
Bunun uzun sürmesinin bir sebebi de X in KDM i değil, KDM in X i
başlatması. X KDM i açıyor olsaydı o socket bekleme işi bu kadar uzun
sürmezdi bence.
xinit /usr/bin/xclock -- vt7 -br
çalıştıran bir betikle denemek lazım
> headstarttan sonra 5-6 kadar daha servis başlatılıyor ancak bu
> servislerin başlatılma çağrıları kabaca atomik denebilecek sürelerde
> sonlandığından müdür X soketini de beklemek zorunda kalıyor.
> headstart'ı başlatmayı yukarı çektim startNetwork'ten de önceye yine
> de çok bir şey farketmedi. Pratikte bizim X'i değil X'in bizi
> beklemesi lazım hızlı bir açılış için. X'i başlatabildiğimiz en erken
> noktada başlatmalıyız. Eğer X'in başlamasında bir engel yoksa,
> default runlevel'in ilk adımında bunu yaparak biraz vakit
> kazanabiliriz. Bunun için tek engel dbus, onu da makul bir yere çekip
> daha önce başlatabiliriz.
X in startNetwork den sonra başlaması gerekiyor aslında.
mit-magic-cookie ip adresi / hostname gibi bilgilere göre
oluşturuluyor. X ağ ayarlanmadan başlarsa sıkıntı yaşayabiliriz. Gerçi
bunun için X i hostname kullanacak şekilde değiştiriyorduk (kdm
servisindeki XAUTHLOCALHOSTNAME bu işe yarıyor). Belki sadece hostname
ayarlamak bizi kurtarır.
Ama bir taraftan da bu durum yeni X le değişmiş de olabilir. Fatih ne
dersin buna ?
> Aynı şey sysklogd için de geçerli. sysklogd'nin servis betiği waitBus
> ile soketi beklediği halde, müdür servis betiklerinin sonlanmasını
> beklemediği için o da ayrıca waitBus ile bekliyor. sysklogd'nin
> soketinin yaratılması neden 1.5s gibi oldukça uzun bir sürede
> gerçekleşiyor gerçekten anlamak zor. sysklogd çok temel bir hizmet
> olduğundan onu da eğer bir engel yoksa boot runlevel'ında falan
> başlatırsak o süreyi elimine edebiliriz.
Bu denemeleri 2.6.25 le mi yapıyorsun yoksa 2.6.28... le mi ? Ekiga
ile bir socket sorunu yaşamıştık, yeni kernele geçince düzelmişti,
belki ilgili olabilir.
> Bir başka fikrim /var ve /tmp dizinlerinin bilgisayarın açılışında
> değil kapanışında temizlenmesi. Bunlar *volatile* dizinler olduğuna
> göre, sistemi kapattığında çoktan silinmiş olmalılar teorik bir bakış
> açısıyla ama biz bir sonraki açılışta temizliyoruz, ikisinin
> temizlenmesi 1 saniyeye yakın süre alıyor.
Hmmm, olabilir bence
--
Onur Küçük Knowledge speaks,
<onur.--.-.pardus.org.tr> but wisdom listens
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi