ý ȭ - û ø Ŀ 

۾ : 2000 2 24()
۾ : 
(http://www.taejun.pe.kr, taejun@taejun.pe.kr, taejun@hitel.net)


ڷ
 ȣȸ Tip& lt ÷ ˻
20 ڸϰ sendmail( 99. 05)  
Ÿ   н ý   
ü 

** ̱    ϰ ִ Ȳ 
  ƴϸ ׳ ⼭ ֿ ̾߱ ڷ
 ؼ ۼ Դϴ.   õǴ
񽺸 Ϸ ܼϰ Ŀ ѹ ϰ   ƴ϶
  ־  ϴ.  ϵ OS
 Ƿ ε뷱(Ϻл), ƮȺл ϴ
Ī , Ŭ͸ ý  ʿ  ֽϴ.
׸ŭ 踦  ؾմϴ. ⿡ Ѱ  
  ִ . ̷ؼ  ؿ ؼ
  å  ʽϴ.   Ʋ κе
  Դϴ.


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 Ǵ°
׿. ѹ غ ġ .

 , 丮,   ĳ(device),
̺귯, executing text reference, Ʈ Ǵ
Ʈ(ͳ , NFS file Ǵ н  )
 ֽϴ.
