Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
[Photo of the Author]
/±Û¾´ÀÌ : Mark Nielsen

±Û¾´ÀÌ ¼Ò°³:

±Û¾´ÀÌ´Â The Computer Underground, Inc.¿¡¼­ ÀÏÇϴµ¥ ¸®´ª½º±«Â¥·Î ÅëÇÑ´Ù. ¸ÛûÇÑ ÀÏÀ» Àç¹ÌÀÖ°Ô ÇÏ°í ¹Ùº¸°°Àº ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé±âµµ ÇÑ´Ù. ¿Ö±×·¸°Ô ÇÏ´À³Ä°í? ±×·¸°Ô Çϸé ÄÄÇ»ÅÍ°¡ Àç¹ÌÀÖÁö ¾ÊÀ»±î... Mark´Â ZING,www.genericbooks.com¿¡¼­ ¹«·á,°ø°³ ¼ÒÇÁÆ®¿þ¾î¿Í Ã¥ÀÚ¸¦ ¸¸µå´Âµ¥ ÀÚ¿øºÀ»çÀÚ·Î Àϱ⵵ ÇÏ´Ù.

¼ø¼­:

¸®´ª½º¿¡¼­ ¼ÒÇüµ¥ÀÌÅͺ£½ºÀÇ ¼Óµµ ¿Ã¸®±â

[Illustration]

Abstract:

This article shows how to speed up a PostgreSQL database server using a RAMDISK.



 

µé¾î°¡´Â ±Û

¸ÕÀú RAMDISK°¡ ¹«¾ùÀÎÁö ±×¸®°í ¾î¶»°Ô Çؼ­ PostgreSQL°ú °°Àº µ¥ÀÌÅͺ£À̽º ¼­¹öÀÇ ¼Óµµ¸¦ ¿Ã¸®±â À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö »ìÆ캸ÀÚ.

Ramdisk´Â ±âº»ÀûÀ¸·Î ¿©·¯ºÐÀÇ ¸Þ¸ð¸®¸¦ Çϵåµð½ºÅ© µå¶óÀ̺êó·³ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ¿©·¯ºÐÀÌ ramdisk¸¦ »ç¿ëÇÑ´Ù°í Çϸé ÇÏµå µå¶óÀ̺긦 »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â °ÍÀ̶ó´Â ¾ê±â´Ù. ¿©±â¿¡´Â Àå´ÜÁ¡ÀÌ ÇÔ²² ÀÖ´Ù. °¡Àå Å« ÀåÁ¡Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â °ÍÀ̱⶧¹®¿¡ ¿©·¯ºÐÀÌ ¼öÇàÇÏ°íÀÚ ÇÏ´Â ÀÛ¾÷À» Çϵåµð½ºÅ©¿¡¼­ »ç¿ëÇÒ ¶§º¸´Ù ¸Å¿ì ºü¸£°Ô ¼öÇà ÇÒ ¼ö ÀÖ´Ù. °¡Àå Å« ´ÜÁ¡Àº ¿©·¯ºÐÀÇ µ¥ÀÌÅͺ£À̽º¿¡ º¯°æ»çÇ×ÀÌ ¹ß»ýÇßÀ»¶§ ÄÄÇ»ÅÍ°¡ ÀçºÎÆõȴٸé ÀÌ º¯°æ»çÇ×À» ¸ðµÎ ÀÒ¾î¹ö¸®°Ô µÈ´Ù. ÀÌÁ¡Àº µ¥ÀÌÅͺ£À̽ºÀÇ ¹«°á¼º¿¡ Ä¡¸íÀûÀÎ ´ÜÁ¡À¸·Î ÀÛ¿ëÇÑ´Ù.

±×·¸Áö¸¸ ¸¸¾à PostgreSQL¼­¹ö¿¡¼­ ¸ðµç µ¥ÀÌÅͺ£À̽º¸¦ ¸Þ¸ð¸®¿¡ Àоî¼öÇàÇÑ´Ù¸é ¼Óµµ´Â ¸Å¿ì »¡¶ó Áú °ÍÀÌ´Ù.  

/Testµð·ºÅ丮¿¡ ramdiskÀÇ ¼³Á¤

¿©·¯ºÐÀÇ ±âº» ramdisk¸¦ /Test µð·ºÅ丮¿¡ ¼³Á¤ÇÏ°íÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

mkdir -p /Test
mkfs -t ext2 /dev/ram0
mount /dev/ram0 /Test
¸¸¾à Ãʱ⼳Á¤°ªÀÌ 50¸Þ°¡ÀÇ Å©±â¸¦ º¯°æÇÏ°íÀÚ ÇÒ¶§´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
  1. ¸ÕÀú º¯°æÇÒ ramdiskÀÇ Å©±â¸¦ °áÁ¤ÇØ¾ß Çϴµ¥ ¿©±â¼­´Â 50¸Þ°¡·Î »ý°¢À» ÇÏÀÚ.
  2. /etc/lilo.confÆÄÀÏÀ» ¼öÁ¤ÇÑ ´ÙÀ½ "lilo"¸í·ÉÀ» ¹Ýµå½Ã ½ÇÇàÇÑ´Ù. Lilo´Â ¿©·¯ºÐÀÇ ÄÄÇ»ÅÍ¿¡°Ô ÄÑÁö±â ½ÃÀÛÇÒ ¶§ ¾î¶»°Ô ºÎÆðúÁ¤À» ¼öÇàÇÒ °ÍÀÎÁö¸¦ À̾߱âÇØÁÙ »Ó¸¸ ¾Æ´Ï¶ó ¸®´ª½º½Ã½ºÅÛ¿¡´ëÇÏ¿© º¯°æµÈ »çÇ×À» ¸®´ª½º°¡ ½ÃÀÛµÉ ¶§ ¾Ë·ÁÁÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ³ª´Â ÀÌ ÆÄÀÏ¿¡ "ramdisk=50000"¸¦ Ãß°¡Çß´Ù.
    boot=/dev/hda
    map=/boot/map
    install=/boot/boot.b
    prompt
    timeout=50
    image=/boot/vmlinuz-2.2.5-15
            label=linux
            root=/dev/hda2
            read-only
            ramdisk=50000		
    		
  3. ÀÌÁ¦ "lilo"¸í·ÉÀ» ¼öÇàÇÑ ´ÙÀ½ ÀçºÎÆÃÇÏ¸é µÈ´Ù. ÄÄÇ»ÅÍ°¡ ÀçºÎÆÃµÈ ´ÙÀ½ ¿©·¯ºÐÀº ´ÙÀ½ ¼¼ÁÙÀÇ ¸í·É¾î¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù.
    mkdir -p /Test
    mkfs -t ext2 /dev/ram0
    mount /dev/ram0 /Test
    

    ¸Å¹ø ÄÓ¶§¸¶´Ù ÀÌ ¸í·É¾î¸¦ ÀÔ·ÂÇϱ⠽ȴٸé /etc/rc.d/rc.local¿¡ ÀÌ ¸í·ÉÀ» Ãß°¡Çصµ µÈ´Ù.

 

PostgreSQL¸¦ °í·ÁÇÑ ramdiskÀÇ ¼³Á¤

ÀÌ·ÐÀûÀ¸·Î ¿©·¯ºÐÀº µÎ°³ÀÇ µ¥ÀÌÅͺ£À̽º ¼­¹ö¸¦ °¡Áö°Ô µÈ´Ù. Çϳª´Â »ç¿ëÀÚ°¡ º¯°æÇÒ ¼ö ÀÖ´Â ¼­¹öÀÌ°í, Çϳª´Â ¹Ù·Î ramdisk¿¡ ÀÖ´Â ¼­¹öÀÌ´Ù. ÀÌ·¸°Ô Çϱâ À§Çؼ­ "pg_dump"³ª "pg_dumpall"¸í·ÉÀ» ÀÌ¿ëÇØ¾ß ÇÑ´Ù.

ÁÖ¼®: ÀÌ ±Û¿¡¼­´Â ÀÌ¹Ì ¿©·¯ºÐÀÇ µ¥ÀÌÅͺ£À̽º ¼­¹öÀÇ Å©±âº¸´Ù ÈξÀ ´õ Å« Å©±â¸¦ °¡Áø ramdisk°¡ ÀÌ¹Ì lilo.conf¿¡ ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÏ°í À̾߱⸦ ÇÑ´Ù. ¸¸¾à ¾î´ÀÁ¤µµ Å©±â¸é µÉÁö ¾Ë°í ½Í´Ù¸é "cd /var/lib/pgsql; du "¸í·ÉÀ» ÀÌ¿ëÇÏ¸é µÈ´Ù.

¾î·µç ÇöÀç "/var/lib/pgsql"¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â postgresql¼­¹ö¸¦ ¸Þ¸ð¸®·Î ¿Ã¸®±â À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

        ### ÇöÀç postgresql¼­¹ö¸¦ ÁßÁö½ÃŲ´Ù.
/etc/rc.d/init.d/postgres stop
        ### ÇöÀç µð·ºÅ丮ÀÇ À̸§À» ¹Ù²Û´Ù.
mv /var/lib/pgsql /var/lib/pgsql_main
        #### ramdisk¿¡ µð·ºÅ丮¸¦ »ý¼ºÇÑ´Ù.
mkdir -p /var/lib/pgsql_memory
 	#### »õ·Î ¸¸µé¾îÁø µð·ºÅ丮ÀÇ ¼ÒÀ¯ÀÚ¸¦ postgres³ª 
 	#### ½ÇÁ¦ µð·ºÅ丮 ¼ÒÀ¯¾ÆÀ̵ð·Î º¯°æÇÑ´Ù.
chown postgres /var/lib/pgsql_memory
	#### ¾Ù¸®¾î½º¸¦ ¸¸µé°Å³ª ¿ø·¡ À̸§(/var/lib/pgsql)°ú ¿¬°á½ÃŲ´Ù.
ln -s /var/lib/pgsql_memory /var/lib/pgsql

	#### ramdisk¸¦ Æ÷¸ËÇÑ´Ù.
mkfs -t ext2 /dev/ram0
	#### ramdisk¸¦ postgresqlµð·ºÅ丮¿¡ ¸¶¿îÆ® ½ÃŲ´Ù.
mount /dev/ram0 /var/lib/pgsql_memory

	#### postgresÀÇ µð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç °ÍÀ» ramdisk·Î º¹»çÇÑ´Ù.
tar -C /var/lib/pgsql_main -cp . | tar -C /var/lib/pgsql_memory -xp
        ### postgresql¼­¹ö¸¦ °¡µ¿½ÃŲ´Ù.
/etc/rc.d/init.d/postgres start


 

¼Óµµ¿¡ ´ëÇÏ¿© ¸î¸¶µð¸¸ ´õ....

ramdisk¿¡ postgresqlÀ» ¿Ã·ÈÀ» ¶§¿Í ¾È¿Ã·ÈÀ»¶§ÀÇ ¼ÓµµÂ÷À̸¦ °Ë»çÇغ» ÀûÀÌ ÀÖ´Ù. ¾î´À¶§´Â ramdisk¿¡¼­ postgresqlÀÌ ½ÇÇàµÇ°í ÀÖÀ»¶§°¡ ¾à 50%Á¤µµ ¼Óµµ°¡ ºü¸¥ °æ¿ìµµ ÀÖ¾úÁö¸¸ ¾Æ´Ñ °æ¿ìµµ ÀÖ¾ú´Ù.

±×¶§ ±ú´ÞÀº »ç½ÇÀº µ¥ÀÌÅÍ°¡ ½Ã½ºÅÛ¿¡ ÀÇÇØ Ä³½¬µÇ¾îÁ® ¼º´É°ªÀÌ 10%¿¡¼­ 20%Á¤µµ·Î ¹Û¿¡ Çâ»óµÇÁö ¾Ê¾Ò´Ù´Â °ÍÀÌ´Ù. ¸¸¾à Çϳª¾¿¸¸ Á¸ÀçÇÏ´Â ¸¹Àº ·®ÀÇ µ¥ÀÌÅ͵éÀÌ µ¥ÀÌÅͺ£À̽º·Î ÀÔ·ÂÀÌ µÇ¸é ±× ¼º´ÉÀº ±ØÀûÀ¸·Î Çâ»óµÇ°Ô µÈ´Ù.

ramdisk±â¹ýÀ» »ç¿ëÇÒ ¶§ ¾òÀ» ¼ö ÀÖ´Â °¡Àå Å« ÀåÁ¡Àº µ¥ÀÌÅͺ£À̽º°¡ Çϵåµå¶óÀ̺꿡 Á¢±ÙÇÏÁö ¾Ê°í ¹Ù·Î ¸Þ¸ð¸®¿¡¼­ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¸¸¾à ramdisk¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é µ¥ÀÌÅͺ£À̽º´Â ¾Æ¸¶ Á¾Á¾ ij½¬ºÎÁ·À¸·Î ½º¿ÍÇÎÀÛ¾÷À» ¼öÇàÇÏ¿© Çϵåµð½ºÅ©·ÎºÎÅÍ »õ·Î °ªÀ» ºÒ·¯ ¿Ã °ÍÀÌ´Ù.  

»çÁ·

  1. ¸®´ª½º¿î¿µÃ¼Á¦¿¡¼­ ºÐ¸íÈ÷ Çѹø ÆÄÀÏÀÌ ÀоîÁö¸é ¸Þ¸ð¸® °ø°£ÀÌ ´Ù¸¥ ¹«¾ùÀΰ¡¿¡ ÀÇÇØ »ç¿ëµÇ±â Àü±îÁö´Â ¸Þ¸ð¸®»ó¿¡ Á¸ÀçÇÑ´Ù.¹Ù·Î ij½¬°¡ µÇ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº ÇϳªÀÇ ÇØ°á¹æ¹ýÀÌ µÉ ¼ö ÀÖ´Ù. ±×·¯³ª ½ÇÁ¦ µ¥ÀÌÅͺ£À̽ºÀÇ °æ¿ì ÇÊÀÚÀÇ µ¥ÀÌÅͺ£À̽º¼­¹ö¿¡ Çѹø ¸í·ÉÀ» ³»¸±¶§¸¶´Ù Çϵ尡 °è¼Ó µ¹¾Æ°¡°Ô µÈ´Ù. ramdisk¸¦ »ç¿ëÇÏ¸é µ¥ÀÌÅͺ£À̽º¸¦ ¸Þ¸ð¸®»ó¿¡¼­ µ¿ÀÛÇÒ ¼ö ÀÖµµ·Ï Çϱ⠶§¹®¿¡ ½º¿ÍÇÎ ÀÛ¾÷À» ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ¸¸¾à µ¥ÀÌÅͺ£À̽º¸¦ ¸¹ÀÌ »ç¿ëÇÑ´Ù¸é ¸Þ¸ð¸®»ó¿¡ ¿Ã·Á³õ°í ÀÛ¾÷Çϱ⸦ ¹Ù¶õ´Ù.
  2. ramdisk¸¦ »ç¿ëÇÒ ¶§ ÀåÁ¡Àº µ¥ÀÌÅͺ£À̽ºÀÇ ¼Óµµ°¡ ºü¸£°í »ê¶æÇϸ鼭 ´Ü¼øÇÏ´Ù´Â Á¡ÀÌ´Ù. ¸¸¾à Àбâ Àü¿ëÀÇ µ¥ÀÌÅͺ£À̽º ¼­¹ö¶ó¸é ÀÌ°ÍÀº Á¤¸» È®½ÇÇÏ°í »ê¶æÇÑ ÇØ°á¹æ¹ýÀÌ µÉ °ÍÀÌ´Ù.
  3. ramdisk¸¦ ÀÌ¿ëÇÒ ¶§ ´ÜÁ¡Àº ¿©·¯ºÐÀÌ °ü¸®Çϱâ À§ÇÏ¿© Á¶±Ý ´õ °øºÎ¸¦ ÇØ¾ß ÇÑ´Ù´Â Á¡ÀÌ°í ¸¸¾à µ¥ÀÌÅͺ£À̽º¿¡ º¯È­°¡ »ý°å´Ù¸é ¹Ýµå½Ã ¹é¾÷À» ¼öÇàÇØ¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù.
 

Âü°í

  1. How to use a Ramdisk for Linux /±Û¾´ÀÌ: Mark Nielsen
  2. PostgreSQLȨÆäÀÌÁö

¸®´ª½ºÆ÷Ä¿½º ÆíÁýÀÚÆÀ¿¡¼­ °ü¸®ÇÕ´Ï´Ù.
© Mark Nielsen
LinuxFocus 1999
¹ø¿ª Á¤º¸ :
en -> kr Lee Juho

1999-10-26, generated by lfparser version 0.8