커널 3.3 에 릴리즈된 주요 내용중 TCP buffer limits  에 대한 내용이 있습니다.

   원문은 아래와 같습니다.


   http://kernelnewbies.org/LinuxChanges

1.6. Per-cgroup TCP buffer limits

Recommended LWN article: Per-cgroup TCP buffer limits

This patch introduces memory pressure controls for the TCP protocol which allows to put limits to the size of the buffers used by the TCP code.

Code: (commit 12345678)



Control group 은 여러가지 용도로 사용될수 있습니다.


Control group 은 프로세스 그룹으로 묶일수 있는 하위 시스템들에 대한 제어를 할수 있도록 제공합니다.

예를 들어 프로세스 자원의 할당을 조절할수 있도록 인터페이스를 제공할수 있습니다.

이것을 지원하기 위해서 mount 를 사용하면 해당 서브시스템에 연결할수 있습니다.

  cpu 를 예로 들면 첫번째 cpu 와 두번째 cpu 의 자원 할당을 제어할수도 있습니다.


 이렇게 사용되는 cgroup 에 대하여 TCP 연결에서 사용되는 메모리를 세부적으로 제어할수 있도록

 기능이 추가된 것입니다.

 전체 tcp 연결에 사용가능한 메모리양을 조절하는 파라미터는 있었지만, 이번에 cgroup 을 이용한 

 세부제어가 가능하도록 기능이 추가된 것으로 보이네요.


 이러한 기능들을 알고 시스템을 튜닝할수 있다면 성능좋은 머신을 만들수 있을 것입니다.



 아래의 내용은 커널 소스를 다운받으시면 있는 문서의 일부를 발췌한 것입니다.

  위치는 Documentation/cgroups/cgroups.txt  입니다.


110        CPU :           Top cpuset

111                        /       \

112                CPUSet1         CPUSet2

113                   |              |

114                (Profs)         (Students)

115 

116                In addition (system tasks) are attached to topcpuset (so

117                that they can run anywhere) with a limit of 20%

118 

119        Memory : Professors (50%), students (30%), system (20%)

120 

121        Disk : Prof (50%), students (30%), system (20%)

122 

123        Network : WWW browsing (20%), Network File System (60%), others (20%)

124                                / \

125                        Prof (15%) students (5%)



위의 도표로 보니 이해가 쉽네요!!!