Re: [Linux-programlama] PHP ve Alternatif Database'ler

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Umut D. (linuxlist@gmail.com)
Date: Wed 10 May 2006 - 07:02:16 GMT


Başarı öyküsü istemiştiniz değil mi? Ciddi bir başarı olmasa da benim
kendimle övündüğüm bir öykü size...

Kapalı ağ üzerinde yüzlerce insanın kullandığı bir site var. Herkes tek bir
veritabanını mesai içerisinde yoğun bir şekilde kullanıyor, hatta aynı
saatlerde aynı tip işlemler yapılıyor.

İşlemler için oldukça karmaşık (karışık değil) bir tablo yapısı var. Herşey,
azami esneklik sağlamak maksadıyla, küçük ve gerekli parçalara bölünmüş
durumda. Ayrıca yapılan her işlem tüm detaylarıyla kaydediliyor. Bu da aşırı
bir yük getiriyor.

Bol miktarda "nested" ve "joined" sorgu var. Ayrıca "UPDATE", "DELETE" ve
"INSERT" işlemlerinin arkası kesilmiyor.

Bahse konu sunucu ise bazı sebeplerden [Not-1] dolayı 2xPIII Xeon, 2GB RAM,
5x4.7GB RAID SCSI Disk (Compaq ML 530 serisinin oldukça eski bir modeli)
donanımla çalışıyor.

Sunucu ağa Gigabit ile bağlı. Ağ yükü (gigabite göre konuşursak)
%25-%30'lara kadar dayanıyor, yani bu yükü kaldırabiliyor sistem.

Sistemin "soft" kısmı ise:
Gentoo (x86 güncel)
Apache2
PHP5
MySQL 4.0 [Not-2]

Sistem ilk reboot edildiğinde (ki sanırım en son 70-80 gün oldu) gerçekten
yavaş çalışıyor. Takriben 1 saat içinde herşey "cache"lenmiş, sistem en
optimize halini almış oluyor.

MySQL veritabanı içindeki tablolar görevlerine göre INNODB veya MyISAM
olarak ayarlanmış durumda. Bol miktarda UPDATE ve INSERT isteyenler daha
yavaş olan INNODB, bol miktarda SELECT gerektirenler ise jet hızlı MyISAM
olsdun diye bir mantık yürüttüm.

INNODB hafıza kullanım ve indeks değerlerini epey oynayarak optimize ettim.
En iyisi olmayabilir, ama tatmin edici sonuçlar aldım.

Sunucuda MySQL ve Apache dışında (bir de syslogger) diske yazmayı gerektiren
bir servis yok. Apache de sadece kendi loglarını yazıyor. RAM'in yüksek
olması disk işlemlerini bir yerde sadece MySQL'in insiyatifine bırakıyor.

Sistemde bunların haricinde DNS+DHCP+Ample (Mp3 Stream Server) gibi fazla
yük yüklemeyen işlemler çalışıyor. Ayrıca kendi diski küçük olduğu için
özellikle MP3'leri SAMBA ile Windows paylaşımından alıyor.

phpBB veya benzeri forum programları yok sistemde. Ama ortalama 150 sorgu
gerektiren bir sayfam var mesela [Not-3] en yavaş çalışan sayfa olmasına
rağmen 1 saniyenin altında bir yükleme süresine sahip.

Doruk Fişek'in dediği gibi, at sahibine göre kişner. Probleminizi ister
dökümanlardan karıştırıp listelere sorarak çözersiniz isterseniz destek
alırsınız. Destek alırken dikkat edeceğiniz nokta "Hallederiz abi"
zihniyetinden uzak durmanız ve gerçekten verdiğiniz paraya değecek bir
destek almanız. Aksi halde açık kaynak sistemlere hem siz soğursunuz hem de
aracı olduğunuz insanlar soğur. Yoksa sağlam bir jokeyle MS sistemlerinin
yaptığı işin daha fazlasını aynı donanımla yapabilirsiniz.

Saygılarımla

Not-1: Daha önce P4 PC'lerde işlettim ancak PC'lerdeki donanım (disk,
anakart, güç kaynağı) genelde yolda bırakıyor. O yüzden her elemanı
"redundant" olan bu eski sunucuyu böyle kritik bir göreve tayin ettim.
Pişman da olmadım. Yine de elimin altında bir P4 PC diskinde gerekli
programlar hazır bekliyor. Yedekler de ağ üzerinden alındığından herşey
yolunda gibi görünüyor.

Not-2:MySQL 4.1 ve sonrasında ciddi optimizasyonlardan bahsediliyor ancak
karakter kodlaması sorunlarımı çözemediğimden dolayı şimdilik 4.0 ile yoluma
devam ediyorum. Yanlış anlaşılmasın, MySQL 4.1'de karakter kodlama sorunu
yok, sadece yöntemleri biraz farklı olduğundan adapte olamadım :)

Not-3: Müşteri istekleri tasarım kabiliyetinizi zorladığında bir sayfada 150
sorgu veya daha fazlasını çalıştırmanız gerekebilir.

On 5/10/06, OKAN ARI <liste@ari-tech.com> wrote:
>
> Teşekkür ederim, Mysql ile yuksek performanslı uygulamar uzerine
> calisacagim. Buradan sizleri daha sık rahatsız ederim. Belirli bir
> noktageldikten sonra deneyimlerimi paylasabilir ya da bu deneyimlerimi
> hizmet olarak sunabilirim:)
>
> Herkese tesekkur ederim
>
>
> ----- Original Message -----
> *From:* "Mahir B. Aşut" <mahir.asut@ttnet.net.tr>
> *To:* linux-programlama@liste.linux.org.tr
> *Sent:* Tuesday, May 09, 2006 10:08 AM
> *Subject:* Re: [Linux-programlama] PHP ve Alternatif Database'ler
>
> Merhabalar,
>
> MySQL son derece yüksek performanslı bir veritabanı. Ancak SQL
> cümleciklerinin doğru -MySQL'in seveceği biçimde- yapılandırılması şartıyla.
>
> MySQL'in hassas ayarlarını bilirseniz -ki kaynak olarak MySQL'in resmi
> internet sitesindeki yardım sayfalarını öneririm- şaşırtıcı sonuçlar
> alabilirsiniz.
>
> Basit bir count(*) işlemi bile yanlış kullanıldığında veritabanını çok
> zorlayabiliyor. Mesela MySQL'de, başlatılmış işlemlerin doğru
> sonlandırılması da son derece kritik.
>
> Size önerim, hangi veritabanı ile başlarsanız başlayın derinliğine inmeye
> çalışın.
>
> Eğer biliyorsanız ve sunucunuz izin veriyorsa Perl+MySQL'i denemenizi
> öneririm. PHP+MySQL kadar pratik değil ama çok verimli.
>
> Selamlar,
>
> Mahir B. Aşut
> www.ekopc.com
>
>
>
>
>
> OKAN ARI wrote:
>
> Mysql haricinde daha buyuk capli projeler için çalışan oldu mu aramızda?
> Açıkcası PHP ve Mysql'in kararlılığının hangi noktaya kadar oldgunu
> kestiremiyorum. Onumde mysql ile yapılmış ve kararsızlığından bıkılıp
> (ozellikle yavaslıgından)mssql ile cozume ulaşmış bir proje var. Ben 2. bir
> projeye başlıcam ve bu konuda mysql'e guvenemiyorum. Aslında belki de php'ye
> de guvenmemeliyim:( (not: projelerin kodlanamsında yer almadım, durumu
> bilmiyorum)
>
> Web tabanlı bir yazılımda aynı anda 2000 kullanıcının bağlı oldugu,
> surekli insert, updatelerin calistigi bir sistem dusunun, sizce bu sistemin
> performans problemi vermesinin asıl nenedi nedir?
> 1. Mysql?
> 2. Php?
> 3. Coder?
> 4. Başka bişey?
>
> Çözüm
> 1. Asp?
> 2. Mssql?
> 3. PHP ile PG SQL?
> 4. Başka bişey?
>
> Bu konularda deneyimi olan arkdasların fikir paylaşımlarını rica ediyorum
>
>
> ------------------------------
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.trhttp://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
> ------------------------------
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.