³ë¹«Çö ´ëÅë·É ¹è³Ê
  ±è¼ºÅÂÀÇ Tech Tips(Linux, PHP, Apache, DBMS, Mobile)
  http://www.supersky.pe.kr  
¾È³çÇϽʴϱî? ±è¼ºÅÂÀÔ´Ï´Ù.
Linux, Apache, PHP, Mysql, Mobile °ü·Ã Tech Tips Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.
 
<<   2006 Aug   >>
S M T W T F S
303112345
6789101112
13141516171819
20212223242526
272829303112
1857220 2231
  
DNS Powered by DNSEver.com
  ++ man(ulimit ) - Linux BoxÀÇ Á¦ÇÑ»çÇ× ¾Ë¾Æº¸±â  -  2006/08/09 10:14
0. µé¾î°¡¸ç

´ë±Ô¸ð ¼­ºñ½º¸¦ ÁغñÇÏ´Â °æ¿ì ¿î¿µÃ¼Á¦ÀÇ Á¦ÇÑ»çÇ×À» ¸ÕÀú È®ÀÎÇؾßÇÑ´Ù.
µ¿½Ã¿¡ ¿­¼ö ÀÖ´Â ÃÑÆÄÀϼö, ÇÑ ÇÁ·Î¼¼½º°¡ ¿­¼ö ÀÖ´Â ÆÄÀϼö µîµî.

¿¹¸¦ µé¾î ´ëÇü À¥¼­¹ö¸¦ ¾ÆÆÄÄ¡·Î ¼­ºñ½ºÇÏ´Â °æ¿ì¸¦ »ý°¢Çغ¸ÀÚ.
¾ÆÆÄÄ¡´Â ±âº»ÀûÀ¸·Î ÇÁ·Î¼¼½º ¹æ½ÄÀ¸·Î ¼­ºñ½º¸¦ ó¸®ÇÑ´Ù. ÀÌ°Ç
»ç¿ëÀÚÀÇ ¿ä±¸°¡ ¿Ã¶§¸¶´Ù ÇϳªÀÇ ÇÁ·Î¼¼½º¸¦ ¶ç¿ì¹Ç·Î ¸¸¾à µ¿½Ã¿¡
10¸íÀÇ »ç¿ëÀÚ°¡ Á¢¼ÓÀ» Çϸé 10°³ÀÇ ÇÁ·Î¼¼½º°¡ ¶°¾ßÇÑ´Ù´Â °ÍÀÌ´Ù.
ÃÖ±ÙÀÇ ¾ÆÆÄÄ¡ ¼­¹ö´Â MaxClients 150 À̶ó°í ¼³Á¤µÇ¾îÀÖ´Ù. ÀÌ°Ç
µ¿½Ã¿¡ 150°³ÀÇ ÇÁ·Î¼¼½º¸¦ ¶ç¿ï¼ö ÀÖÀ¸¸ç °á±¹ µ¿½Ã¿¡ 150¸íÀ» ¹Þ¾Æ
µéÀÏ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.(½ÇÁ¦·Î ÀÌÁ¤µµ¸¸ ÇÏ´õ¶óµµ Àý´ë·Î ÀÛÀº ±Ô¸ð´Â
¾Æ´Ï´Ù) ±×·±µ¥ ¸¸¾à nobody°¡ ¸¸µé¾î³¾ ¼ö ÀÖ´Â ÃÖ´ë ÇÁ·Î¼¼½º °³¼ö°¡
±× ÀÌÇ϶ó¸é? ´ç¿¬È÷ ¹®Á¦°¡ »ý±æ °ÍÀÌ´Ù. ¹°·Ð ÃÖ±Ù ·¹µåÇÞ 6.0 ÀÌ»ó
¹öÀüÀº ±× ÀÌ»óÀ¸·Î ¸ÂÃß¾îÁ® À־ ¹®Á¦°¡ »ý±âÁö´Â ¾Ê°ÚÁö¸¸.

¹®Á¦´Â ÇÁ·Î¼¼½º°¡ ¸¹ÀÌ ¶ß¸é ÇÁ·Î¼¼½º»Ó¸¸ÀÌ ¾Æ´Ï¶ó ¿­ ¼ö ÀÖ´Â ÆÄÀÏ
¼ö¿¡¼­µµ ¹®Á¦°¡ µÈ´Ù.

±×·¯¸é ¸ÕÀú ÇÁ·Î¼¼½ºÀÇ ÀÚ¿ø Çѵµ¿¡ ´ëÇؼ­ ¾Ë¾Æº¸ÀÚ.


1. ÇÁ·Î¼¼½ºÀÇ ÀÚ¿øÇѵµ
ÇÁ·Î¼¼½ºÀÇ ÀÚ¿øÇѵµ¸¦ ¸®´ª½º¿¡¼­´Â ulimit ¸¦ ÅëÇؼ­ ¾Ë ¼ö ÀÖ´Ù.
(Redhat 6.0, PowerLinux µî)

# ulimit -a (¶Ç´Â ulimit -Sa) --> soft Çѵµ
core file size (blocks) 0
data seg size (kbytes) unlimited
file size (blocks) unlimited
max memory size (kbytes) unlimited
stack size (kbytes) 8192
cpu time (seconds) unlimited
max user processes 2048
pipe size (512 bytes) 8
open files 1024
virtual memory (kbytes) 2105343



# ulimit -Ha ------>> hard Çѵµ
core file size (blocks) unlimited
data seg size (kbytes) unlimited
file size (blocks) unlimited
max memory size (kbytes) unlimited
stack size (kbytes) unlimited
cpu time (seconds) unlimited
max user processes 2048
pipe size (512 bytes) 8
open files 1024
virtual memory (kbytes) 4194302


¼ÒÇÁÆ®Çѵµ´Â »õ·ÎÀº ÇÁ·Î¼¼½º°¡ ¸¸µé¾îÁ³À»¶§ µðÆúÆ®·Î Àû¿ëµÇ´Â
ÀÚ¿øÀÇ ÇѵµÀÔ´Ï´Ù. ÀÌ°ÍÀ» ÇϵåÇѵµ±îÁö Áõ°¡½Ãų ¼ö ÀÖ½À´Ï´Ù.
±×·¸Áö¸¸ ÀÌ Çѵµ¸¦ ³Ñ¾î¼­ È®ÀåÇϴ°ÍÀº ½´ÆÛÀ¯Àú¸¸ÀÌ °¡´ÉÇÕ´Ï´Ù.
ÇϵåÇѵµ´Â Àý´ëÀûÀÎ ¼±ÀÌÁö¿ä.
±×·¸´Ù¸é ÇϵåÇѵµ´Â ½´ÆÛÀ¯Àú¶ó°í ¹«ÇÑ´ë·Î ´Ã¸±¼ö Àִ°¡?
Àý´ë ¾Æ´ÏÁö¿ä. ÀÌ°Ç Ä¿³ÎÂ÷¿ø¿¡¼­ ÁöÁ¤À» ÇؾßÇÕ´Ï´Ù.
ÀÌ¿¡ ´ëÇؼ­´Â µÚ¿¡¼­ ¼³¸íÇÕ´Ï´Ù.

À§¿¡¼­ °¢ Ç׸ñÀ» º¼±î¿ä?

ÄÚ¾îÆÄÀÏÀÇ ÃÖ´ëÅ©±â
ÇÁ·Î¼¼½ºÀÇ µ¥ÀÌŸ ¼¼±×¸ÕÆ® ÃÖ´ëÅ©±â
½©¿¡¼­ »ý¼ºµÇ´Â ÆÄÀÏ¤Ò ÃÖ´ëÅ©±â
resident set sizeÀÇ ÃÖ´ëÅ©±â(¸Þ¸ð¸® ÃÖ´ëÅ©±â)
ÇÁ·Î¼¼½ºÀÇ ½ºÅà ÃÖ´ëÅ©±â
ÃÑ ´©ÀûµÈ CPU½Ã°£(ÃÊ)
´ÜÀÏ À¯Àú°¡ »ç¿ë°¡´ÉÇÑ ÇÁ·Î¼¼½ºÀÇ ÃÖ´ë°¹¼ö
512-¹ÙÀÌÆ® ºí¶ôÀÇ ÆÄÀÌÇÁ Å©±â
open file descriptorsÀÇ ÃÖ´ë ¼ýÀÚ(¿­¼öÀÖ´Â ÃÖ´ëÆÄÀϼö)
½©¿¡¼­ »ç¿ë°¡´ÉÇÑ °¡»ó ¸Þ¸ð¸®ÀÇ ÃÖ´ë¿ë·®


°¢ ¼³Á¤À» ¼öÁ¤ÇÒ ¼ö Àִµ¥ Çб³¿¡¼­ ½Ç½À¿ë ¿öÅ©½ºÅ×À̼ÇÀ¸·Î
¾²´Â°Ô ¾Æ´Ï¶ó¸é º¸Åë ÀÌ·±ÀÛ¾÷À» ÇÒ ÀÏÀº ¾øÀ»µí.
¿©±â¼­ °¢ Ç׸ñ¿¡ ´ëÇؼ­ Àß ¸ð¸¥´Ù¸é ÇÁ·Î±×·¡¹Ö, OS °ü·ÃÃ¥À»
º¸¼Å¾ßÇÒµí. (½ÇÀº Àúµµ ´Ù ±î¸Ô¾úÀ½)
À§¿¡¼­ ÇϳªÀÇ ÇÁ·Î¼¼½º°¡ ¿­ ¼ö ÀÖ´Â ÆÄÀÏÀÇ ÃÖ´ë°ªÀº ulimit
¸í·ÉÀ» ÀÌ¿ëÇؼ­´Â ¼öÁ¤ÀÌ µÇÁö ¾Ê½À´Ï´Ù. ´ÜÁö º¸¿©Áֱ⸸
ÇÒ »ÓÀÌÁÒ. ÀÌ°Ç Ä¿³Î¼Ò½º¸¦ ¶â¾î°íÄ¡µçÁö /proc ¿¡¼­
Á÷Á¢ ¼öÁ¤ÇϵçÁö ÇؾßÇÕ´Ï´Ù.

ÃÖ±ÙÀÇ ¸®´ª½º¹èÆ÷ÆÇ¿¡¼­´Â À¯Àú´ç ÃÑ 2048°³ÀÇ ÇÁ·Î¼¼½º¸¦
¶ç¿ï ¼ö ÀÖ°í ÇϳªÀÇ ÇÁ·Î¼¼½º°¡ ÃÑ 1024°³ÀÇ ÆÄÀÏÀ» ¿­ ¼ö
ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î ÀÌ°Ç Ä¿³Î 2.0´ë¿¡¼­ 2.2´ë·Î ¿Ã¶ó°¡¸é¼­
°¡Àå Å©°Ô º¯ÇÑ ºÎºÐÁßÀÇ ÇϳªÀÔ´Ï´Ù. ½ÇÁ¦·Î ÀÌÁ¤µµ¸¸Çصµ
ÀϹÝÀûÀÎ ¼­ºñ½º¿¡¼­´Â ÃæºÐÇÏ°í ÀÌ°É ¹Ù²Ù¾î¾ß ÇÒ °æ¿ì´Â
°ÅÀÇ ¾øÀ» °ÍÀÔ´Ï´Ù. µû¸¥ ¸»·Î Çؼ­ "¶±À» Ĩ´Ï´ç"
±×·±µ¥ ¿ì¸®ÀÇ ¸ñÇ¥´Â ´ë±Ô¸ð ¼­ºñ½º¸¦ ÇÏ´Â °ÍÀÌÀݾƿä?




2. ÆÄÀÏ, ÇÁ·Î¼¼½º °¹¼ö Á¶Á¤

ÁÖ¿äÇÏ°Ô »ìÆì¾ßÇÒ °Íµí.

¸®´ª½º¿¡¼­ µ¿½Ã¿¡ ¿­ ¼ö ÀÖ´Â ÆÄÀϼö : NR_FILE , 4096
ÇÑ ÇÁ·Î¼¼½º°¡ ¿­ ¼ö ÀÖ´Â ÆÄÀϼö : NR_OPEN, 1024


# vi /usr/src/linux/include/linux/fs.h

#define NR_OPEN (1024*1024) /* Absolute upper limit on fd num */

#define NR_FILE 4096 /* this can well be larger on a larger system */


¿©±â¼­ ÇÑ ÇÁ·Î¼¼½º°¡ ¿­¼ö ÀÖ´Â ÆÄÀϼö¸¦ ¼öÁ¤ÇÏ·Á¸é
/usr/src/linux/include/linux/limits.h ¿¡¼­

#define NR_OPEN 1024

À̺κеµ ¼öÁ¤À» ÇØÁÖ¾î¾ßÇÕ´Ï´Ù.

¼öÁ¤À» ÇÏ¿´À¸¸é ÄÄÆÄÀÏÀ» Çؼ­ Å×½ºÆÃÀ» Çؾ߰ÚÁö¿ä.
¿©±â¼­ ÁÖÀÇÇÒ °ÍÀº ¸Þ¸ð¸®°¡ ÀûÀº ½Ã½ºÅÛÀÇ °æ¿ì¶ó¸é ºÎÆÃÀÌ µÇÁö
¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù.


±×·±µ¥ ±»ÀÌ ÄÄÆÄÀÏÀ» ÇÏÁö ¾Ê¾Æµµ /proc ¸¦ ÀÌ¿ë º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.

# cat /proc/sys/fs/file-max
4096

# echo 8192 > /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max
8192


# cat /proc/sys/fs/file-nr
591 184 8192

¿©±â¼­ 591´Â ÇöÀç ÇÒ´çµÈ ÆÄÀÏÇÚµé, 184´Â ±×Áß»ç¿ëµÈ ÆÄÀÏÇÚµé,
8192´Â ÆÄÀÏÇÚµéÀÇ ÃÖ´ë¼ýÀÚÀÔ´Ï´Ù. ÇÒ´çµÈ ÆÄÀÏÇÚµéÀÌ ÃÖ´ëÄ¡·Î
°¡´õ¶óµµ ½ÇÁ¦ »ç¿ëµÈ ÆÄÀÏÇÚµéÀÇ ¼ýÀÚ°¡ ¿©À¯°¡ ÀÖ´Ù¸é °ÆÁ¤ÇÒ
ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
(¸¸¾à ½Ã½ºÅÛ¿¡¼­ "running out of file handles" ¶ó´Â ¸Þ½ÃÁö°¡
³ª¿Â´Ù¸é ¿­¼ö ÀÖ´Â ÆÄÀÏ¿¡ ¹®Á¦°¡ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù)


±×·±µ¥ ¾ÈŸ±õ°Ôµµ ÇÑ ÇÁ·Î¼¼½º´ç ¿­¼ö ÀÖ´Â ÆÄÀϼö(NR_OPEN)Àº
½±°Ô ¹Ù²Ü ¼ö°¡ ¾ø½À´Ï´Ù. ±âº» 1024Àε¥ ÀÌ°Ç À§¿¡¼­ ¸»À» ÇÏ´ë·Î
ÄÄÆÄÀÏÀ» Çϼ¼¿ä. ±×´ÙÀ½ ½Ã½ºÅÛÀÌ »¸À»Áö °è¼Ó À¯ÁöµÉÁö´Â...


¿©±â¼­ Á»¸¸ ´õ »ìÆ캸Áö¿ä.
(´Ù½Ã NR_FILE ÀÌ 4096À̶ó Çϱ¸¿ä)

# cat /proc/sys/fs/inode-max
8319

# cat /proc/sys/fs/inode-nr
8340 1006


ÆÄÀÏ Çڵ鿡 µû¶ó Ä¿³Î¿¡¼­ µ¿ÀûÀ¸·Î inde structures¸¦ ÇÒ´çÇÕ´Ï´Ù.
inode-max´Â inode Çڵ鷯ÀÇ ÃÖ´ë°ªÀÔ´Ï´Ù.
¿©±â¼­ inode-max °ªÀº 3-4¹èÀÌ»óÀ¸·Î Ç϶ó°í ÃßõÇÕ´Ï´Ù.

/usr/src/linux/Documentation/proc.txt ¿¡ /proc ¿¡ ´ëÇÑ
»ó¼¼ÇÑ ¼³¸íÀÌ ³ª¿ÍÀִµ¥ ÀÌ¿¡ ´ëÇؼ­ »ìÆ캸Áö¿ä.


This value should be 3 to 4 times larger than the value
in file-max, since stdin, stdout, and network sockets also need an
inode struct to handle them.

±×·¯´Ï±ñ stdin(Ç¥ÁØÀÔ·Â), stdout(Ç¥ÁØÃâ·Â), ³×Æ®¿÷ ¼ÒÄÏ¿¡¼­
ÆÄÀÏÀ» ´Ù·ç±â À§ÇØ inode struct °¡ ÇÊ¿äÇÏ´Ù°í Çϳ׿ä.


¸ÞÀϼ­¹ö°¡ 200°³ ÀÌ»ó ½ÇÇàµÇ°Å³ª À¥¼­¹ö°¡ µ¿½Ã¿¡ 400°³ ÀÌ»ó
½ÇÇàµÇ´Â ´ëÇü »çÀÌÆ®¿¡´Â ÃÖ´ë°ªÀ» Å©°Ô ¸¸µå´Â °ÍÀÌ ÁÁ´Ù°í
Çϳ׿ä. ±×·±µ¥ Áß¿äÇÑ°Ç ¹«Á¶°Ç ´Ã¸°´Ù°í ÁÁÀº°ÍÀº ¾Æ´Ï°ÚÁö¿ä?
ÃÖ´ë°ªÀÌ ´Ã¾î³¯ ¼ö·Ï ´õ ¸¹Àº ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ°í ÀÚ¿øÇÒ´çµµ
´õ ¸¹ÀÌ ÇÊ¿äÇϱâ¿ä.

±×·¡¼­ °¡´ÉÇÏ¸é ¾î¶² ÇÁ·Î±×·¥¿¡¼­ ¾µµ¥¾ø´Â ÆÄÀÏÀº ¿­Áö ¾Êµµ·Ï
Çϸé ÆÄÀÏÇÚµéÀ» ÇÒ´çÇÏÁö ¾Ê±â¶§¸Þ ¿­¸° ÆÄÀϼö°¡ ÁÙ¾îµé°ÚÁö¿ä.
ÇϳªÀÇ ¿­¸° ÆÄÀϼö¸¦ ÁÙÀ̸é 268°³ÀÇ ÆÄÀÏÀ» ´Ý´Â È¿°ú°¡
ÀÖ´Ù°í Çϴµ¥ Á¦°¡ À̺κÐÀº ¾ÆÁ÷ Á¤È®È÷ ÀÌÇØ°¡ °¡Áö ¾Ê½À´Ï´Ù.


À̹ø¿£ ½Ã½ºÅÛÀÇ ÃÖ´ë ÇÁ·Î¼¼½º¼ö¸¦ »ý°¢Çغ¼±î¿ä?
¿¹¸¦ µé¾î ÅÚ³ÝÀ¸·Î Á¢±ÙÇÏ´Â °æ¿ì ÃÖ¼ÒÇÑ ·Î±×ÀÎÇÁ·Î±×·¥°ú
½©ÇÁ·Î±×·¥ µÎ°³ÀÇ ÇÁ·Î¼¼½º°¡ »ý¼ºµÇ°ÚÁö¿ä? 256¸íÀÌ Á¢±ÙÇϸé
ÃÖ¼Ò 512. ±×·¸´Ù¸é ½Ã½ºÅÛÀÇ ÃÖ´ë ÇÁ·Î¼¼½º °¹¼ö¸¦ ¼³Á¤ÇÏ´Â
°Íµµ À§¿Í ºñ½ÁÇÕ´Ï´Ù.

/usr/src/linux/include/linux/tasks.h

¿©±â¼­º¸¸é

#define NR_TASKS 2560 /* On x86 Max 4092, or 4090 w/APM configured. */

#define MAX_TASKS_PER_USER 2048

x86 ½Ã½ºÅÛ¿¡¼­´Â ÃÖ´ë 4092±îÁö °¡´ÉÇÏ´Ù°í µÇ¾îÀÖ°í
À¯Àú´ç ÃÖ´ë ÇÁ·Î¼¼½º¼ö´Â 2048ÀÔ´Ï´Ù. ÀÌ°Ç ulimit¿¡¼­
º¸¾ÒÁö¿ä?


ÀÚ ÀÌÁ¦ ¸¶Áö¸·À¸·Î ÇÁ·Î¼¼½º¿¡¼­ ¿­¾î³õÀº ÆÄÀÏÀ» ¾î¶»°Ô
È®ÀÎÇÒ °ÍÀΰ¡?

lsof ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¸é µË´Ï´Ù.

man ÆäÀÌÁö¸¸ ÇÏ´õ¶óµµ ÇÁ¸°Æ®Çϸé ÇÑ 30¿©ÆäÀÌÁö°¡ µÇ´Â°Í
°°³×¿ä. Çѹø ¿¬±¸Çغ¼ °¡Ä¡°¡ ÀÖÀ»µí.

¿ÀÇÂÆÄÀÏÀº Á¤±ÔÆÄÀÏ, µð·ºÅ丮, ºí¶ô ¹× ij¸¯ÅÍÆÄÀÏ(device),
¶óÀ̺귯¸®, executing text reference, ½ºÆ®¸² ¶Ç´Â
³×Æ®¿÷ÆÄÀÏ(ÀÎÅÍ³Ý ¼ÒÄÏ, NFS file ¶Ç´Â À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏ)
µîÀÌ ÀÖ½À´Ï´Ù.






      << prev     1  2     next >>