TCP Tuning

twins99의 이미지

echo 81920 > /proc/sys/net/core/wmem_max
echo 81920 > /proc/sys/net/core/rmem_max
echo "4096 87380 499040" > /proc/sys/net/ipv4/tcp_rmem
echo "4096 16384 324288" > /proc/sys/net/ipv4/tcp_wmem

위 설정파일의 의미와 수치를 조정했을 때 예상 결과가 어떻게 될까요..

제 system을 설정 했을 때 연결된 공유기를 down시키기도 하더군요.

어떤 의미가 있고,다른 장치의 위 수치를 확인할 수 있는 방법이 있을까요?

s.choi의 이미지

TCP Linux Tuning

우선 "TCP Linux Tuning" 이라는 키워드로 구글링을 해보시면 더욱 많은 reference를 찾으실 수 있을 것입니다.

각 아이템에 간하여 간단히 설명드리자면,
1) /proc/sys/net/core/wmem_max: maximum TCP receive window
2) /proc/sys/net/core/rmem_max: maximum TCP sending window
3) /proc/sys/net/ipv4/tcp_rmem: [min, default, max] receive window (used by autotuning)
4) /proc/sys/net/ipv4/tcp_wmem: [min, default, max] sending window (used by autotuning)

일반적으로 Linux TCP 의 default receive window 크기가 작게 설정되어 있으므로, 이것을 늘리는 것은 괜찮을 것 같습니다. (단, 빠른 네트워크에서는 괜찮지만, 느린 네트워크에서는 다른 트래픽을 죽이는 효과를 불러일으킬 수 있겠구요. 즉, fair share 가 안될수도 있습니다.)

sending window 의 최대치를 늘리는 것도 좋기는 한데, 느린 네트워크에서는 별 효과가 없을 것입니다. 빠른 네트워크 (기가비트 정도)에서는 sending window 의 최대치를 늘리면 throughput 증대 효과를 가져올수 있겠네요.

다만, /proc/sys/net/ipv4/tcp_window_scaling 값을 1로 변환시켜 주셔야 합니다. 그렇지 않을경우, 윈도우 값이 65535 이상이 되면 망이 크래시 될수도 있습니다.

제가 여기서 자세히 설명드리기 보다는, Linux TCP/IP 에 대해서 살짝 공부를 한번 해보시는게 어떨까도 싶네요.

다른 장치에서 위 수치를 확인하시고 싶다고 하셨는데, 다른 장치라는건 어떤장치를 말씀 하시는 건가요?

일례로, 윈도우 머신의 경우
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Paramemters\TcpWindowSize 에서 maximum TCP sending window size 등을 설정하실 수 있습니다.

twins99의 이미지

다른 장치란 것은 다른 장치에서 설정값을 외부에서 알 수 있는 방법이 있을까에 대한 질문이었습니다.

PC같은 장비가 아닌, consol을 볼 수 없는 장비의 경우 network data의 흐름만으로 확인할 수 있는 방법이 있을까 싶어서요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.