ben
Gloria Jean's de uzun çekim americano kahve içmeyi çok severim.
çok severim
şuan da
Sammy çekirdeği üzerine javascript ile plugin yapısı.
yapıyorum
en son
turkcell - gncplay, kartaca çatısı altında çalışmak yorucu ve zevkliydi.
yaptım

Keskin kavşaklardan dönerken türkiye, soramadı medya; doğru ne yanlış ne ? ve bunu soranlara ne olacak ? http://bit.ly/12btD3c

Nginx, apache, lighttpd hangisini seçmeli ?

Emrah TOY

Tarih : 10-01-2011
Kategori : Güncel Yazılar, Ubuntu, Yazılım

1

Yorum

Geçenlerde performans ve sürdürülebilirlilik ile ilgili kafama takılan soruları cevaplamak için bazı soruları not aldığımı farkettim ancak çok uzun süredir geri dönüp inceleme ve fırsatı bulamamışım, hazır vaktim varken notlarımı blog’umda irdeleyeyim istedim.

Soruların sayısı arttıkça cevaplamak da problem oluyor.

  1. Sürekli artan isteklerle başa çıkmakta hangi http sunucusu başarılı ve sürdürülebilirliliği sağlamak adına ihtiyaç duydukları minimum konfigürsayon nedir ?
  2. Nginx (engine-x, njinx), apache ve Lighttpd (lighty) daha çok hangi amaçlara hizmet ediyor ?
  3. Temel farkları nedir ?

Sorularıma cevap ararken detaydan ve teknik veriden ziyade aklımda kalabilecek ve yerine geldiğinde şu sunucu şu işi diğerinden daha iyi yapar diyebilmek benim için yeterlidir diye düşünerek yaptım, zira elimde bu farklardan herhangi birine ihtiyaç duyabilecek bir proje yoktu ve daha önceki tüm projelerimde network ve sistem uzmanı arkadaşlara ihtiyaç duyulan doneleri verdikden sonra seçim konusunu onlara bırakmıştım. Ancak son dönemlerde kendi çabamla not aldığım tüm projelerde gördümki artık LAMP dörtlüsünün daha işin başında yetersiz kalmaya başladı daha doğrusu ben performans ile ilgili ve ürettiğim çözümlerin getireceği yük konusunda endişelere kapıldım. Daha önceki projelerime dayanarak incelemeye değer gördüğüm tüm bu sunucu yazılımları kullandığım halde yakından incelemediğimi farkettim.

Daha projenin başında LAMP ( linux, apache, mysql, php ) dörtlüsünün bazı problemlerin çözümünde yetersiz kaldığını gördüm.

Çalışma mantığı ve yaklaşım farkları :

  • Apache Multithread çalışıyor. ( Her bir domain ve/veya projeniz için ayrı bir apache process’i yaratıldığını düşünün. )
  • Nginx Singlethread ve yanısıra Worker desteği ile çalışıyor. ( Her bir isteğin tek bir thread karşılandığını ancak duruma göre farklı bir Worker üzerine aktarıldığını düşünebilirsiniz. )
  • Lighttpd Singlethread çalışıyor. ( Tüm istekleri tek bir thread üzerinden alıp aynı thread ile işleyip yine geriye aynı yol üzerinden cevap veriyor. )

Çalışma mantığı ihtiyaç duydukları donanımı ve sürekliliği doğrudan etkiliyor.

İhtiyaç duydukları donanım türüne göre performans sıralaması :

Ram : Lighttpd >Nginx > Apache

Cpu : Nginx > Lighttpd > Apache

  • Apache PHP’yi fastCgi  olarak kullanmadığı her durumda çok zarar ediyor hem işlemciyi hemde rami aşırı tüketiyor. Nginx ve Lighttpd fastCgi dışında bir destek sunmuyor. Nginx’in fastCgi ile PHP processlerini handle etmekde zorlandığı yazılıyor pek çok blogda ve çözüm olarak PhpFPM ( Php fastCgi Process Management ) öneriliyor.
  • Tüm sunucular APC ile uyumlu çalışıyor ancak Nginx için özellikle Nginx+PhpFPM+APC için geleceğin alternatifi gözüyle bakılıyor.
  • Nginx Ruslar tarafından geliştiriliyor. Lighttpd ise daha çok Amerikalı yazılımcılar tarafından tutuluyor.
  • Apache Modülleri açısından daha başarılı, Nginx hemen arkasından geliyor ancak Lighttpd bu konuda çok zayıftır demek yanlış olur, çok uçlarda istekleriniz yoksa hemen hemen hepsi başarılı.

Netice itibariyle benim düşüncelerim şu şekilde netleşti denebilir.

Sunucuya göre;

  • Eğer sunucumda cpu ve ram problemim yoksa her an herşeye çözüm üretmem gerekecekse ve geniş destek içeriğine ihtiyacım varsa tercihim Apache.
  • Eğer sunucum bir VPS ise özellikle cpu kullanım oranı benim için problem olacaksa tercihim Nginx‘den yana.
  • Eğer sunucum bir  VPS ise özellikle ram kullanımı benim için sıkıntı oluyorsa tercihim Lighttpd‘den yana.

Proje çözümüne göre;

  • Projemde çok fazla istek yapılmıyor ( çok fazla ziyaretçim yoksa, ajax, rpc gibi diğer isteklerin cevapları önemli miktarda değil ise )  ancak çok fazla yazılımsal iş yükü varsa tercihim Apache.
  • Projemde istek ve sayfa gösterim oranları çok yüksek yazılımsal iş yükü ağır ve projelerimde bol dinamik içerik varsa tercihim Nginx.
  • Projemde yazılımsal iş yükü fazla yoksa, dinamik içerikden ziyade statik içeriği aşırı yoğun ziyaretçi yüküne karşı hatasız sunmam gerekiyorsa tercihim Lighttpd.

İş çözümüne göre;

  • Django ile aşırı derecede haşır neşir isem, isteklerin cevaplarını python ile işleyerek elde ediyorsam tercihim Apache.
  • Content Deliver Server ( İçerik ulaştırma sunucusu ) tarzı bir yapıda tercihim Önce Lighttpd sonra Nginx.
  • VPS sunucularda tercihim Nginx, Nginx için Cpanel çözümünün geliştirildiğide not düşeyim buraya.

Pek çok kişi apache’nin ihtiyaçlar doğrultusunda yeniden compile edildiğinde sonuçların çok farklı olacağını söyleyeceğini biliyorum ancak bunu araştırmak şimdilik beni aşıyor. Eğer bir gün yoluma apache ile devam etmem gereken bir projede performans ile ilgili kaygılar duyarsam elbette onunla ilgili de bir blog yazmayı düşünürüm. Ancak söz konusu sunucuların en sık kullanılış türüne ve paket halinde sundukları çözümlere bakınca benim bakış açımdan durum budur, çünkü ben sistem ve/veya network uzmanı değilim ve bu işin hakkını verenlere danışılmadan yazılımcılardan bu tür bekletilere girenlere pek hoş bakamıyorum. Umuyorum şu projede ne kullansak rahat ederiz diyen her meraklı insan için faydalı olmuştur.

Pidgin Facebook Chat Ayarları ( Güncel )

Emrah TOY

Tarih : 06-10-2010
Kategori : Güncel Yazılar, Ubuntu

0

Yorum

pidginEmpathy fazlasıyla böcekli ve insanı sinir eden cinsden kullanılırlılık açısından fakir olunca eski dost Pidgin’e yeniden yüzümü çevirmiş bulundum. Bilindiği üzere artık Ubuntu ile varsayılan olarak Pidgin değil Empath IM geliyor ancak Pidgin’i Synaptic paket yükleyicisi yada Ubuntu Software Center ile yükleyerek herhangi bir sıkıntı yaşamadan kullanabiliyorsunuz hatta Empathy’i tamamen kaldırabilirsiniz. Tüm durum faaliyetleri ve Gnome indicator özellikleri çalışmaya devam ediyor.

Pidgin’e geçiş yapınca Facebook Chat desteği sunan Empathy’i özler oldum ama mutlaka bir eklentisi vardır diyip Pidgin için Facebook Chat’i araştırmaya başladım. Önce bir kaç eklentiye denk geldikten sonra farkettim ki aslında Facebook XMPP protokolü ile chat imkanı sağlıyor ! Bu konuyu 10 Şubat 2010 tarihli şu haberde okudum : ” It’s Official: Facebook Chat Available on Other Services “. Netice itibariyle Pidgin XMPP hesapları eklemenize ve yönetmenize izin veriyor bu sayede Facebook Chat’i diğer tüm IM hesaplarınızla aynı anda kullanabiliyorsunuz.

Aslında XMPP protokolünü destekleyen tek IM Pidgin değil  aşağıdaki ayarlar üç aşağı beş yukarı aynı olmak kaydıyla iChat, Adium ve Digsby gibi IM’lar ile Facebook Chat’i kullanabilirsiniz. Gerçi çoğu zaten Facebook’u ayrı bir seçenek olarak sunmaya başladılar yinede favori IM’ınız XMPP protokolünü destekliyorsa onu terk etmek zorunda değilsiniz.

Pidgin Facebook Chat ayarları ise şöyle :

Öncelikle Facebook kullanıcı adı aldığınıza emin olun. Çünkü buna ihtiyacınız olacak. Eğer yoksa buraya tıklayarak alabilirsiniz.

1. Pidgin’i açın ve menüden “hesaplar”a tıklayın sonrasında “hesapları yönet” bölümüne girin son olarak yeni hesap eklemek için “ekle” tuşuna basın.
2. Karşınıza çıkan ekranda “protokol” için “XMPP” seçin.
3. Kullanıcı adı kısmına Facebook kullanıcı adınızı yazın.
4. Domain kısmına chat.facebook.com yazın.
5. “kaynak yada resource” olarak geçen kısma Pidgin yazın.
6. Şifre kısmına Facebook şifrenizi girin.
7. “Gelişmiş” sekmesine tıklayın ve SSL/TLS ile ilgili tüm kısımların işaretlenmemiş olduğuna emin olun.
8. “Ekle” tuşuna basın ve işlemi sonlandırın.

Artık Facebook Chat keyfini Pidgin üzerinden sürebilirsiniz ! 🙂

Etiketler : ,

How to enable Java plugin in Opera for Ubuntu

Emrah TOY

Tarih : 08-08-2010
Kategori : Ubuntu

0

Yorum

Open Synaptic Package Manager and search for sun-java6-jre, sun-java6-bin and sun-java6-plugin ( first two part might be installed if they installed just mark sun-java6-plugin to install. ) then wait until operation finish and restart opera. Now all the java applications should work.

Synaptic Package Manager Screenhot for Enabling java for Opera Browser

Etiketler : , ,

Ubuntu 10.04 upgrade ve XP boot problemi ( Grub2 )

Emrah TOY

Tarih : 04-05-2010
Kategori : Güncel Yazılar, Ubuntu

0

Yorum

Ubuntu 10.04 LST sürümünden itibaren artık Grub2 kullanıyor ancak kendi başıma da geldiği için yaptığım araştırmalarda pek çok kişinin varolan xp partisyonu ile ilgili boot edememe problemi yaşadığını gördüm. Sebebi konusunda detaylı inceleme yapmadım açıkcası ancak çözümü zor değil.

  1. Ubuntu üzerinden xp partisyonunu kontrol edin NTFS görünüyor yahut Silinmiş görünüyor ise dert etmeyin, sadece partisyonun orada olup olmadığından emin olun. Hiç bir işlem yapmadan partisyon yöneticinizden çıkın.
  2. Bir XP cdsi bulun ve onunla boot edin.
  3. Kurulum basamaklarında yeni bir kurulum ve kurtarma seçeneği sunulduğunda ‘R’ ile kurtarma komut satırına geçin.
  4. fixboot komutunu verin.
  5. Bilgisayarınızı yeniden boot edin.
  6. Grub menüsünden XP’yi seçtiğinizde artık çalışacaktır.

Eğer Grub menüsünde XP partisyonunuz görünmüyorsa sürüm yükseltme sırasında tespit edilememiş olabilir bunu düzeltmek için şu işlemleri yapabilirsiniz.

  1. Ubuntu recovery mod ile açılış yapın.
  2. Grub upgrade seçeneğini seçip partisyonların taranmasını sağlayın.
  3. Bu işlem sonucunda boot menüsü partisyonlara göre yeniden oluşturulur.
  4. Bilgisayarınızı yeniden boot edin, XP partisyonunuz görünür hale gelmiş olmalı.

Rapache – Ubuntu 9.10 Karmic de donma problemi ve bugfix

Emrah TOY

Tarih : 14-03-2010
Kategori : Ubuntu

1

Yorum

Rapache ubuntu üzerinde kurduğunuz apache web server’ini görsel olarak yönetmeye yarayan python ile yazılmış bir program.

Rapache Ubuntu 9.04  den itibaren donmalarla karşılaşmaya başladı ben bu sıkıntıları 9.10 Karmic ile yaşıyorum. Konuyla ilgili bugfix ararken launchpad üzerinde şikayetin dile getirildiğini gördüm nihayetinde sorun çözülmüş. Aşağıdaki yöntem ubuntu 9.10 karmic için işe yaramakda, test etmedin ancak 9.04 içinde işe yarayacağını sanıyorum. ( Dilerseniz launchpad üzerindeki yazışmaları buradan görebilirsiniz )

Öncelikle kullandığınız rapache versiyonunun 0.7 olduğuna emin olun. Değilse paket yöneticiniz ile yeni versiyonu yükleyin.

Bugfix :

Eğer 9.04 kullanıyorsanız  /usr/lib/python2.6/dist-packages/RapacheGtk/RapacheGui.py 9.10 kullanıyorsanız  /usr/share/pyshared/RapacheGtk/RapacheGui.py adlı dosyayı düzenlemelisiniz

  • Şu satırlar ile

    def __init__(self, *args, **kwargs):
    super (MainWindow, self).__init__ (*args, **kwargs)
    Master.register(self)

    Şu satırlar

    self.denormalized_virtual_hosts = {}
    self.plugin_manager = PluginManager()
    self.apache = Apache2()

    arasına aşağıdaki kodları yapıştırın

    # HACK : work around bug @see https://bugs.launchpad.net/rapache/+bug/346788
    if not Shell.command.ask_password(): sys.exit(1)
    # HACK END

  • Terminal üzerinden şu komutu verin

    sudo gedit /usr/share/applications/rapache.desktop

  • Şu satırı

    Exec=rapache

    Şu şekilde değiştirin

    Exec=gksudo rapache

Sonrasında reboot etmeniz tavsiye edilmiş. Ben reboot etmeden denediğimde ( Terminal üzerinden gksudo rapache ile ) sorun yaşamadım.