| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 17. ¼¹öÀÇ ¼³Á¤ | Fast Forward | Next |
ÀÌ·¯ÇÑ ¼³Á¤Àºautovacuum±â´ÉÀÇ ÇൿÀ» Á¦¾îÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºSection 22.1.4À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
¼¹ö°¡ autovacuum daemonÀ» ½ÇÇàÇØ¾ß ÇÏ´Â Áö¸¦ Á¦¾îÇÕ´Ï´Ù. µðÆúÆ®¿¡¼´Â ¹«È¿ÇÕ´Ï´Ù. autovacuumÀ» ÀÛµ¿½Ã۱â À§Çؼ´Âstats_start_collector and stats_row_levelÀÌ À¯È¿ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀϳ», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀο¡¼¸¸ ¼³Á¤µË´Ï´Ù.
¾î´À µ¥ÀÌÅͺ£À̽º¿¡¼ ½ÇÇàµÇ´Â autovacuumÀÇ ÃÖ¼Ò Áö¿¬À» ÁöÁ¤ÇÕ´Ï´Ù. °¢°¢ÀÇ ÁÖ±â·Î, demonÀº µ¥ÀÌÅͺ£À̽º¸¦ ½ÃÇèÇÏ°í µ¥ÀÌÅͺ£À̽º³»ÀÇ Å×À̺í·Î Çʿ伺ÀÌ ÀÎÁ¤µÇ¸é,VACUUM¹×ANALYZEÄ¿¸àµå¸¦ ¹ßÇàÇÕ´Ï´Ù. Áö¿¬Àº ÃÊ´ÜÀ§·Î ÃøÁ¤µÇ°í µðÆúÆ®´Â 1ºÐ (1m)ÀÔ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀÏ ³», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀο¡¼¸¸ ¼³Á¤µË´Ï´Ù.
ÀÌ ¸Å°³º¯¼ö°¡ ¹«È¿ÀÎ °æ¿ì, ½Ã½ºÅÛÀº Æ®·£Àè¼ÇID ·¦¾î¶ó¿îµå¸¦ ¹æÁöÇϱâÀ§ÇØ, autovacuum ÇÁ·Î¼¼½º¸¦ ÁÖ±âÀûÀ¸·Î ½ÃÀÛÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â Section 22.1.3¸¦ ÂüÁ¶Çϼ¼¿ä.
¾î¶°ÇÑ 1°³ÀÇ Å×ÀÌºí³»¿¡VACUUM¸¦ Æ®¸®°ÅÇÒ Çʿ䰡 ÀÖ´Â, °»½Å ȤÀº »èÁ¦µÈ Æ©ÇÃÀÇ ÃÖ¼Ò¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®´Â 500 Æ©ÇÃÀÔ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀϳ», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀο¡¼¸¸ ¼³Á¤µË´Ï´Ù. ÀÌ ¼³Á¤Àºpg_autovacuum³»ÀÇ Ç׸ñ¿¡ ÀÇÇØ, °¢°¢ÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼ ¿À¹ö¶óÀ̵å ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾î¶°ÇÑ 1°³ÀÇ Å×ÀÌºí³»¿¡ANALYZE¸¦ Æ®¸®°ÅÇÒ Çʿ䰡 ÀÖ´Â, »ðÀÔ, °»½Å, ȤÀº »èÁ¦µÈ Æ©ÇÃÀÇ ÃÖ¼Ò¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®´Â 50 Æ©ÇÃÀÔ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀϳ», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀο¡¼¸¸ ¼³Á¤µË´Ï´Ù. ÀÌ ¼³Á¤Àºpg_autovacuum³»ÀÇ Ç׸ñ¿¡ ÀÇÇØ, °¢°¢ÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼ ¿À¹ö¶óÀ̵å ÇÒ ¼ö ÀÖ½À´Ï´Ù.
VACUUM¸¦ Æ®¸®°ÅÇÏ´ÂÁö ¾Æ´ÑÁö¸¦ °áÁ¤ÇÏ´Â °æ¿ì,autovacuum_vacuum_threshold¿¡ Ãß°¡ÇÏ´Â Å×ÀÌºí »çÀÌÁîÀÇ ¼ÒºÎºÐÀ» ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®´Â 0.2(Å×ÀÌºí »çÀÌÁîÀÇ20%)ÀÔ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀϳ», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀο¡¼¸¸ ¼³Á¤µË´Ï´Ù. ÀÌ ¼³Á¤Àºpg_autovacuum³»ÀÇ Ç׸ñ¿¡ ÀÇÇØ, °¢°¢ÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼ ¿À¹ö¶óÀ̵å ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ANALYZE¸¦ Æ®¸®°ÅÇÏ´ÂÁö ¾Æ´ÑÁö¸¦ °áÁ¤ÇÏ´Â °æ¿ì,autovacuum_vacuum_threshold¿¡ Ãß°¡ÇÏ´Â Å×ÀÌºí »çÀÌÁîÀÇ ¼ÒºÎºÐÀ» ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®´Â 0.1(Å×ÀÌºí »çÀÌÁîÀÇ10%)ÀÔ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀϳ», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀο¡¼¸¸ ¼³Á¤µË´Ï´Ù. ÀÌ ¼³Á¤Àºpg_autovacuum³»ÀÇ Ç׸ñ¿¡ ÀÇÇØ, °¢°¢ÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼ ¿À¹ö¶óÀ̵åÇÒ ¼ö ÀÖ½À´Ï´Ù.
Å×ÀÌºí ³»ÀÇ Æ®·£Àè¼Ç ID ·¦¾î¶ó¿îµå¸¦ ¸·±â À§Çؼ, VACUUMÁ¶ÀÛÀÌ °Á¦´çÇϱâ Àü±îÁö Å×À̺íÀÇpg_class. relfrozenxid Çʵ带 µµ´ÞÇÒ ¼ö ÀÖ´Â ÃÖ´ë(Æ®·£Àè¼ÇÀÇ) ¿¬´ë¸¦ ÁöÁ¤ÇÕ´Ï´Ù. autovacuumÀÌ ¹«È¿¿´À» ¶§¿¡µµ, ½Ã½ºÅÛÀº ·¦¾î¶ó¿îµå¸¦ ¸·±â À§Çؼ autovacuum ÇÁ·Î¼¼½º¸¦ ±âµ¿ÇÑ´Ù´Â °Í¿¡ ÁÖÀÇÇϼ¼¿ä. µðÆúÆ®´Â 2¾ï Æ®·£Àè¼Ç(transaction)ÀÔ´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Â ¼¹ö ±âµ¿½Ã¿¡°Ô¸¸ ¼³Á¤ °¡´ÉÇÕ´Ï´Ù. ±×·¯³ª, ÀÌ ¼³Á¤Àºpg_autovacuumÀÇ Ç׸ñ¿¡ ÀÇÇØ °³°³ÀÇ Å×À̺í·Î °¨¼Ò½Ãų ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºSection 22.1.3À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÀÚµ¿ÀûÀÎ VACUUMÁ¶ÀÛ¿¡ »ç¿ëµÇ´Â ÄÚ½ºÆ® Áö¿¬°ªÀ» ÁöÁ¤ÇÕ´Ï´Ù. -1ÀÌ ÁöÁ¤µÇ¸é(µðÆúÆ®°¡ ÁöÁ¤µÇ¸é), ÀÏÁ¤ÇÑ vacuum_cost_delayÀÇ °ªÀÌ »ç¿ëµË´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀÏ ³», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀθ¸À¸·Î ¼³Á¤ °¡´ÉÇÕ´Ï´Ù. ÀÌ ¼³Á¤Àºpg_autovacuum³»ÀÇ Ç׸ñ¿¡ ÀÇÇØ, °¢°¢ÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼ ¿À¹ö¶óÀ̵åÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÚµ¿ÀûÀÎVACUUMÁ¶ÀÛ¿¡ »ç¿ëµÇ´Â ÄÚ½ºÆ® ÇѰèÄ¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. (µðÆúÆ®ÀÇ °Í)-1(ÀÌ)°¡ ÁöÁ¤µÇ´Â °æ¿ì, ÀÏÁ¤ÇÑ vacuum_cost_limitÀÇ °ªÀÌ »ç¿ëµË´Ï´Ù. ÀÌ ¸Å°³º¯¼ö´Âpostgresql.confÆÄÀÏ ³», ¶Ç´Â, ¼¹öÀÇ Ä¿¸àµå ¶óÀθ¸À¸·Î ¼³Á¤ °¡´ÉÇÕ´Ï´Ù. ÀÌ ¼³Á¤Àºpg_autovacuum³»ÀÇ Ç׸ñ¿¡ ÀÇÇØ, °¢°¢ÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼ ¿À¹ö¶óÀ̵å ÇÒ ¼ö ÀÖ½À´Ï´Ù.