Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
[Photo of the Author]
Mark Nielsen tarafından

Yazar hakkında:

Yazar The Computer Underground, Inc.'da Linux "geek" olarak çalışır ve boş şeyler ve önemsiz projeler yapmaktan hoşlanır çünkü o bilgisayarları eğlence olarak kabul eder. Mark aynı zamanda ZING'de yardımcı gönüllü olarak çalışır www.genericbooks.com ve deneme sürümünün,ücretsiz yazılımın ve tarihçesinin reklamını yapmak için çalışır.

İçerik:

Linux üzerindeki küçük veri tabanlarını hızlandırmak

[Illustration]

Özet:

Bu makale RAMDISK kullanılarak nasıl PostgreSQL veri sunucusunun hızlandırılacağını göstermektedir.



 

Giriş

Evet RAMDISK nedir ve PostgreSQL gibi bir veri sunucusunun hızını arttırmak için nasıl bir şekilde kullanılır?

Ramdisk, sabit diskmiş gibi kullanılmak için olan hafızadır.Ramdisk'i kullandığınız her zaman,aslında sabit diski değil de hafızayı kullanıyorsunuzdur.Esas olarak en büyük avantaj hafızayı kullandığınız halde,yaptığınız herşey daha hızlı olacaktır çünkü sabit diskiniz hafızanızdan daha yavaştır.En büyük dezavantaj ise eğer veri sunucunuzda bir değişiklik yaparsanız veya bilgisayarınızı yeniden başlattığınızda bütün değişiklikleri kaybetmenizdir.

PostgreSQL veri tabanı sunucusu için eğer tüm veri tabanlarını hafızaya yüklerseniz hızı arttırmış olursunuz.  

Test dizini için ramdisk kurulumu

Test adlı dizine benimsenmiş ramdiskininizi kurmak için yapmanız gereken:



mkdir -p /Test

mkfs -t ext2 /dev/ram0

mount /dev/ram0 /Test

Eğer bu işlem çalışmazsa o zaman çekirdekte derlenmiş ramdisk desteği olmayabilir.Bunu sağlamak için gerekli olabilecek olan CONFIG_BLK_DEV_RAM çekirdek konfigürasyon seçeneğidir.

Üstte yazılanlar 4Mb'nin altı için geçerli boşluğu olan ramdiski sağlar. Ramdisk Article'a bakıp bunu nasıl örneğin 50Mb'a değiştirebileceğinizi görebilirsiniz.  

PostgreSQL için ramdisk kurulumu

İdeal olan 2 veritabanı sunucunuzun olmasıdır.Bir tanesi değişiklik yapmak için diğeri ramdiskinizde olanların kopyası içindir.Bunu yapmanız için kullanmanız gereken komutlar "pg_dump" veya "pg_dumpall"'dır.

NOT: Lilo.conf dosyanızdaki ramdisk seçeneğini veritabanı sunucunuzun büyüklüğünden daha büyük olarak seçtiğinizi varsaydık.Yaklaşık büyüklüğü bulmanız gerekirse "cd /var/lib/pgsql; du " komutunu kullanın.

Bununla beraber, "/var/lib/pgsql"da yüklenmiş olan geçerli postgresql sunucunuzu alıp hafızaya yerleştirmek için, şunu yapın,


        ### Geçerli postgresql sunucunuzu durdurun

/etc/rc.d/init.d/postgres stop

        ### Geçerli dizini yeniden adlandırın

mv /var/lib/pgsql /var/lib/pgsql_main

        #### Ramdisk'iniz için bir dizin yaratın

mkdir -p /var/lib/pgsql_memory

        #### Yeni dizinin sahipliğini postgres veya asıl sahibi ne ise

        #### o olacak şekilde değiştiriniz. 

chown postgres /var/lib/pgsql_memory

        #### Orjinal ada (/var/lib/pgsql) bir alias (takma ad) veya

link (bağ) yapin

ln -s /var/lib/pgsql_memory /var/lib/pgsql



        #### Ramdisk'i formatlayin

mkfs -t ext2 /dev/ram0

        #### Ramdisk'i postgresql dizinine tanıtın

mount /dev/ram0 /var/lib/pgsql_memory



        #### Anadizindeki herşeyi ramdiskin içine kopyalayın

tar -C /var/lib/pgsql_main -cp . | tar -C /var/lib/pgsql_memory -xp

        ### Geçerli postgresql sunucusunu başlatın

/etc/rc.d/init.d/postgres start





 

Hız üzerine yorumlar

Hız performansını bir ramdisk'in içine postgresql koyarak ve koymadan test etmeye çalışmaktayım. Bazen postgresql ramdisk'teyken hız performansı 50% arttı, ve diğer zamanlarda artmadı.

Farkettiğim şudur ki; veri, sistem tarafından önbelleğe alındığı zaman, performans kazancı çok fazla değildir, aşağı yukarı 10% veya 20%. Veritabanının içine çok miktarda tek veri pompalandığı zaman performans, dramatik bir şekilde, azalır.

Ramdisk hilesinde en büyük avantaj şudur, veritabanını hafızada kalmaya zorlarsınız ve sabit disk sürücüyü kullanmaktan kaçınırsınız. Ramdisk'i kullanmazsaniz, veritabanınız sonuçta muhtemelen önbellektekiylen değiştirilecek, ve sonra tekrar kullanıldığında, sabit disk sürücüsünden yeniden yüklemesi gerekecektir.  

Yorumlar

  1. Linux işletim sistemi için, görünüşe göre bir dosya okunduğunda, o hafıza boşluğunun başka birşeyle kullanılmasına ihtiyaç olana kadar hafızada tutulur. Böylece onu önbelleğe alır. Aslında, veritabani sunucum darbe aldığında her zaman sabit disk sürücünün hareketini duyarım, pratik tecrübenin dışında bu bir cözüm olabilir. Bir ramdisk kullanmak veritabanı sunucusunu hafızayı kullanmaya zorlar, böyle yapmakla önbellekten değişitirilmiş (swap out) olmaz. Veritabanı sunucunuzu cok kullanıyorsanız, ben (yerinizde olsam) onu hafızayı kullanmaya zorlardım.
  2. Veritabanı sunucunuz için bir ramdisk kullanmanın avantajları hız, açık ve basit. Salt-okunabilir veritabanları için bu gerçekten iyidir.
  3. Dezavantajı şudur, onu nasıl koruyacağınızı bilmeniz gerekir ve değişiklikler yaparsanız, yaptığınız değişikliklerin yedeğini almanız daha iyi olur.
 

Kaynaklar

  1. Linux için Ramdisk nasıl kullanılır Mark Nielsen
  2. PostgreSQL anasayfası

Websayfalarının bakımı LinuxFocus Editor team tarafından yapılır
© Mark Nielsen
LinuxFocus 1999

1999-11-01, lfparser versiyon 0.8 tarafından meydana getirildi

en -> tr Elçin Göksel , Ender Yüksel