Dosya Tanıtıcı Sınırları
Çok büyük sayıda sanal konak kullanıyorsanız ve bunların her biri için ayrı günlük kayıtları tutuyorsanız, Apache dosya tanıtıcılarını tüketebilir. Apache tarafından, dahili olarak 10-20 dosya tanıtıcıya ek olarak her hata günlüğü için bir ve her diğer günlük kaydı için bir dosya tanıcı kullanılır. Unix işletim sisteminde dosya tanıtıcıların sayısı süreç başına 64 taneyle sınırlıdır ve gerekirse donanıma bağlı olarak arttırılabilir.
Apache gerektiğinde bu sınırı kendisi arttırmaya çalışırsa da bu her zaman mümkün olmaz. Şöyle ki:
- Sisteminiz
setrlimit()
sistem çağrısını sağlamıyordur. - Sisteminizde
setrlimit(RLIMIT_NOFILE)
çağrısı hiçbir işe yaramıyordur (örneğin, Solaris 2.3). - Dosya tanıtıcılarının sayısı donanıma bağlı olarak daha fazla arttırılamıyordur.
- Sisteminiz dosya tanıtıcı sayısını başka sınırlara bağlı kılmıştır: örneğin stdio akımları ile ilgili sınır, dosya tanıtıcı sayısının 256’nın altında ollmasını gerektiriyordur (Solaris 2).
Böyle sorunlar karşısında yapabilecekleriniz:
- Ana günlük dosyaları hariç,
<VirtualHost>
bölümlerinde günlük dosyası belirtmeyerek günlük dosyası sayısını düşürürsünüz. (Bunun nasıl yapılacağını öğrenmek için Günlük kayıtlarının ayrıştırılması bölümüne bakınız.) - Sisteminizde serbest dosya tanıtıcı sayısı 1-2 civarına düşerse
Apache’yi aşağıdaki gibi bir betikle yeniden çalıştırarak dosya
tanıtıcı sayısını arttırabilirsiniz:
#!/bin/sh
ulimit -S -n 100
exec httpd
Günlük kayıtlarının ayrıştırılması
Günlük dosyalarını çok sayıda sanal konak için ortak olarak kullanıyorsanız, sanal konaklar için istatistiksel çözümlemeler yapmak amacıyla sırası geldiğinde bunları ayrıştırabilirsiniz. Bu işlem aşağıda anlatıldığı gibi yapılabilir.
İlk iş olarak, sanal konak bilgilerini günlük girdilerine eklemeniz
gerekir. Bu işlem, LogFormat
yönergesi ve
%v
biçem değişkeni ile yapılabilir. Günlük girdisi biçem
dizgesinin başına bunu ekleyiniz:
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost CustomLog logs/multiple_vhost_log vhost
Bu yapılandırma ile her günlük kaydının başında sanal konağın
ServerName
yönergesine belirtilen
ismi eklenir. (Günlük dosyalarınızın kişiselleştirilmesi ile ilgili daha
fazla bilgi için mod_log_config
belgesine bakınız.)
Günlük dosyanızdaki kayıtları bileşenlere göre gruplamak isterseniz
split-logfile
programını kullanabilirsiniz. Bu programı Apache dağıtımının
support
dizininde bulabilirsiniz.
Programı aşağıdaki gibi çalıştırın:
split-logfile < /logs/multiple_vhost_log
Bu programı sanal konaklar için tuttuğunuz günlük dosyasının ismini
argüman olarak belirterek çalıştırdığınızda o dosyadaki kayıtlardan her
sanal konak için ayrı bir günlük dosyası
(konakadı.log
) üretilir.