lsmod의 TCP 변형

lsmod의 TCP 변형

Linux에서 TCP 혼잡 변형을 구현하는 방법에 대해 읽고 있습니다. 각 변형은 별도의 모듈로 구현됩니다.

이 질문을 읽었을 때 :Linux Ubuntu에 TCP 혼잡 제어 변형 추가

나는 이 변형이 modprobe를 사용하여 로드될 수 있다는 것을 알고 있습니다.

이는 lsmod가 실행될 때 TCPcubic이 기본적으로 로드되는 것으로 나타나야 한다는 의미입니까? lsmod를 실행하면 혼잡 제어 관련 모듈이 로드되어 있는데 찾을 수 없습니다. lsmod에 특정 유형의 커널 모듈이 나열되어 있습니까?

답변1

이 특정 사례(혼잡)에 대해 해결해야 할 질문과 몇 가지 설명이 있습니다.

커널 모듈커널의 일부이고 선택 사항이며 커널이 처음 시작될 때 존재할 필요가 없으며 필요하지 않은 경우 나중에 존재할 필요도 없습니다. 이것은끼워 넣다. 이를 통해 전혀 사용되지 않는 메모리를 사용하지 않고도 요청 시 대부분의 기능을 사용할 수 있습니다. 대부분의 모듈은 모듈 또는 내장으로 컴파일될 수 있습니다. 내장되어 있다면 .ko모듈 파일이 이미 초기 커널에 존재하기 때문에 모듈 파일을 찾을 수 없다는 의미입니다.

수행된 작업을 확인할 수 있습니다.

  • 구성 옵션(여기 CONFIG_TCP_CONG_CUBIC)을 이해하여 사용된 구성(일반적으로 파일 형식)에 액세스 /boot/config-$(uname -r)하고 어떤 옵션이 사용되었는지 확인하세요.

    grep CONFIG_TCP_CONG_CUBIC /boot/config-$(uname -r)
    
  • 또는 모듈 이름을 알고 해당 모듈이 내장 모듈 목록에 있는지 확인하면 됩니다.

    fgrep tcp_cubic.ko /lib/modules/$(uname -r)/modules.builtin
    

모듈을 찾지 못했기 때문에 귀하의 사례에 대한 가능한 결과의 예이지만 큐브에 대한 가능한 기본값은 내장되어 있음을 의미할 수 있습니다.

$ grep _CUBIC /boot/config-$(uname -r)
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_CUBIC=y
$ fgrep tcp_cubic.ko /lib/modules/$(uname -r)/modules.builtin
kernel/net/ipv4/tcp_cubic.ko

따라서 다음 질문에 대한 답이 됩니다. 이 모듈은 내장되어 있으므로 항상 로드한다는 점을 고려하세요. 내장된 기본값은 의미가 있으며 종종 필수입니다.

/lib/modules/$(uname -r)lsmod어딘가에서 찾아서 표시할 것으로 예상 하지만 사용할 수 없는 내장 모듈 파일 목록입니다 cat /lib/modules/$(uname -r)/modules.builtin. 특별하지는 않지만 종종(항상은 아니지만) 선택됩니다(Linux 배포판에서). 모든 관련 모듈 종속성을 포함하여 빌드하려면 옵션 목록에서 기본값을 선택해야 하기 때문입니다.

이제 조금 더 명확하게 설명하겠습니다. 물론 모듈의 기능을 사용하려면 모듈을 로드(또는 내장)해야 합니다. 하지만 링크한 Q&A에는 귀하의 의견이 나와 있지 않습니다.오직활성화하려면 TCP 혼잡 모듈을 로드해야 합니다. 인용하다:

이들 중 하나를 시도하려면 modprobe -a tcp_westwood 또는 원하는 것을 사용하여 설치해야 합니다. 그런 다음 이것을 사용하여 테스트 할 수 있습니다

echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control

이 더미 파일은 읽기/쓰기이므로 간단히 쿼리하여 어떤 정체가 사용되고 있는지 알아낼 수 있으며 결과는 다음과 같습니다.

$ cat /proc/sys/net/ipv4/tcp_congestion_control
cubic

이제 알고리즘을 변경하십시오.

# lsmod | grep tcp_westwood
# echo westwood > /proc/sys/net/ipv4/tcp_congestion_control
# lsmod | grep tcp_westwood
tcp_westwood           16384  1

모듈은 자동으로 로드되어 사용 중입니다(일부 시스템은 자동으로 로드되지 않을 수 있음).

어쨌든, 이 특정 사례에 대한 충분한 정보 /proc/sys/net/ipv4/tcp_congestion_controllsmod.

관련 정보