Lighttpd Log Dosyalarını Döndürme

Filed in FreeBSD | Gezegen | Lighttpd Leave a comment

WEB Serverınıza bağlanan ve işlem yapan kullanıcılarınızın sayısı gittikçe artıyor. Bir httpd-access.log dosyasını tail -f komutu ile kontrol edeyim dediniz. O da ne? Log dosyası o kadar hızlı akıyorki hiçbir şey göremiyorsunuz. Bu durum bu dosyanın yakın zamanda şişeceğini ve size disk kullanım alanı problemi olarak geri döneceğini unutmayın. O zaman öyle birşey yapalım ki hem dosya günlük olarak yedeklensin sıkıştırılıp boyutu küçültülsün ve istediğimiz sayıda log dosyasını saklayabilelim. Neyseki FreeBSD 8.0 müthiş bir tool olan newsyslog ile bize bu imkanı veriyor. newsyslog iyiki varsın :) newsyslog ile önceden hazırlamış olduğum bu makaleyi inceleyerek hakkında detaylı bilgi sahibi olabilirsiniz.

Neyse lafı fazla uzatmadan işe başlayalım. öyle bir ortam hazırlayalım ki;

/var/log/lighttpd.access.log ve /var/log/lighttpd.error.log dosyaları hergün gece yarısı saat 00:00 da yedeklensin, bz2 formatında sıkıştırılsın, geriye dönük 7 günlük dosyalara ulaşabilelim, ondan öncekiler silinsin. İşte newsyslog.conf dosyasına bu konfigürasyon ile alakalı ekleyeceğimiz satırlar;

/var/log/lighttpd.access.log   www:www         644   7   *    @T00     JC     /var/run/lighttpd.pid
/var/log/lighttpd.error.log    www:www         644   7   *    @T00     JC     /var/run/lighttpd.pid

sütunların açıklaması;

/var/log/lighttpd.access.log ————–> dosyanın yeri

www:www —————————————-> kullanıcı ve grup hakları

644 ————————————————–> dosya erişim hakları(rw-r–r–)

7 ——————————————————> tutulacak yedek adedi

* ——————————————————> boyut(zamana göre yedekleme yaptığımız için boyut önemli değil)

@T00 ————————————————> yedekleme zamanı (00:00 da )

JC —————————————————–> log dosyası yoksa oluştur ve yedeklenecek dosyayı bzip2 formatında sıkıştır.

/var/run/lighttpd.pid —————————–> web serverın çalıştığı pid nin yeri (isterseniz rotation işleminden sonra programa signal gönderebilirsiniz.)

newsyslog u restart ettikten sonra işlemimiz tamamlanmış ve kullanıma hazır hale gelmiştir.

# /etc/rc.d/newsyslog restart
VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)
Share
PDF Download    Send article as PDF   

, , , ,

WEB Server Performansını Nasıl Arttırırım? -4

Filed in Apache | Gezegen | Lighttpd | Linux | Linux-Komutlar Leave a comment

Performans arttırımı konulu makalemin 4. kısmında sizlere database performans arttırımı ile ilgili ipuçlarından bahsedeceğim. Tabiiki bahsedilecek databaseler MySQL ve PostgreSQL dir. PostgreSQL Performansı arttırımı konusunu daha önce işlemiştim. Fakat bazı düzenlemeler yapmak amacıyla şuan yayında değildir. Düzenlemelerden sonra yayına almayı düşünüyorum ve sizi MySQL başarı arttırımı ile başbaşa bırakıyorum.

5- Database Performans Arttırımı

a) MySQL Performans Arttırımı

b) PostgreSQL Performans Arttırımı

5- Database Performans Arttırımı

ADOdb performance monitor uygulaması ile database yapılacak performans iyileştirmelerini görebilirsiniz.

a) MySQL Performans Arttırımı

  • Burada yapacağınız iyileştirmeler mysql in conf dosyası olan my.cnf üzerinde yapacağınız işlemlerdir. Dosyanın sahip olduğun değişkenler ve son değerlerini görmek için aşağıdaki komutu kullanabilirsiniz;
SHOW STATUS;
SHOW VARIABLES;
 

UYARI: ayar değişikliklerine başlamadan önce veritabanı yedeği almanızı öneririz ve her değişiklikten sonra mysql i restart etmeniz gerekmektedir.

  • İmkanınız varsa MySQLTuner ı çalıştırarak bu scriptin mevcut mysql serverınıza en uygun konfigürasyon değerlerini seçmesini sağlayabilirsiniz.
  • query cache değerini 1 yapın.
query_cache_type = 1. 
  • Diğer cache değerlerini aşağıdaki gibi ayarlayabilirsiniz. Eğer sürekli update işlemi yapıyorsanız bu işlem performans artışı sağlayacaktır.
query_cache_size = 36M
query_cache_min_res_unit = 2K. 
  • Aşağıdaki sorgu ile veritabanınıza açmış olduğunuz tablo sayısını bulup opened_tables > 3 * table_cache formülüne göre table_cache sayınızı ayarlayın. Bu sayı aynı zamanda yüklenilen modül ve plugin lerin miktarına göre değişebilir.
mysql>SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema='yourdbname';
table_cache = 512 #(table_open_cache in MySQL > 5.1.2)
  • Aşağıdaki formüle göre thread cache miktarını hesaplayın ve değerini %100 doğrulukla atayın.
thread cache utilization (%) = (threads_created / connections) * 100
  • key buffer değeri SELECT sorgularına erişim hızıyla ilgili parametredir. En doğru değeri index dosyasının büyüklüğüne bağlıdır(.myi). Tavsiye edilen değer 32M dır. İdeal olarak database e 100 adet SELECT isteği yollayıp sonucuna göre değeri bulabilirsiniz. Aşağıdaki formüllerden yararlanabilirsiniz.
key_read / key_read_requests < 0.01
key_write / key_write_requests <= 1.0
 
  • maximum number of connections değerini doğru olarak ayarlamanız kullanıcılarınızın “To many connections” hatasını almaması için önemlidir. Bu değişkenin total memory kullanımını etkilediğini bilerek dikkatli olmalısınız. Mysql connectionları milisaniyeler içerisinde sonlandığından yoğun yüke sahip sistemlerde bile bu değeri 200 ün üzerine çıkarmak uygun değildir.
  • Yoğun delete ve update işlemleri olan tablolarınızı optimize ediniz. Bu sayede index leriniz yenilenecektir.
mysql>CHECK TABLE mdl_tablename;
mysql>OPTIMIZE TABLE mdl_tablename;
  • Herhangi bir tabloda problem olmasına karşın REPAIR TABLE komutunu kullanabilirsiniz.
  • Her hafta veya her ay mysql servisini durdurarak myisamchk komutunu çalıştırmak veritabanına bakım işlemlerini yapacaktır.
#myisamchk -a -S /pathtomysql/data/*.MYI

UYARI: komutu başlatmadan önce mysqld prosesinin durdurulmuş olması gerekmektedir. Aksi takdirde data kaybı yaşayabilirsiniz.

  • Geçici tabloların diske kaydedilmesi işleminin sayısını azaltın. Bunu created_tmp_disk_tables tablosundaki değeri okuyarak görebilirsiniz. Eğer bu sayı %5 ten fazla ise tmp_table_size değerini azalma görene kadar azaltın. Bu durumun RAM kullanımına etki ettiğini de dikkate almanızı tavsiye ederim.
  • Tablolarınız MyISAM formatında ise ve herhangi bir performans kazancı yaşamadığınızı düşünüyorsanız my.cnf ta InnoDB yi kapatın. skip-innodb parametresini my.cnf ye ekleyin.

Burada bulunan forumdaki tartışmadan yararlanabilirsiniz.

b) PostgreSQL Performans Arttırımı

Başka bir makalede daha ayrıntılı değinilecektir.

Web Server Performans Tuning konulu toplam 4 makaleden oluşan seride sizlere web serverınızı en verimli nasıl kullanabileceğinizi anlatmaya çalıştım. Umarım buradaki bilgiler işinize yarar. Herhangi bir kısımda takılırsanız yardımcı olmaya çalışırım. Hepinize performansı tam tuning olmuş mutlu günler dilerim…

KAYNAKLAR;

http://blog.digitalstruct.com/2008/01/31/performance-tuning-overview/

http://blog.stuartherbert.com/php/2008/01/31/more-about-performance-tuning/

http://httpd.apache.org/docs/2.0/misc/perf-tuning.html#page-header

http://docs.moodle.org/en/Performance

http://docs.moodle.org/en/lighttpd

http://www.devside.net/articles/apache-performance-tuning

http://linuxbox.co.uk/vbulletin_performance_tuning.php

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)
Share
PDF Creator    Send article as PDF   

, , , , ,

TOP