CLOSE_WAIT가 많음 서버에 큰 영향이 있나요??

sayung의 이미지

지금 서버가 하나있는데 한번씩 보면 CLOSE_WAIT가 조금씩 생깁니다.
보통은 시간이 지나면 없어지는데 어떤건 계속 갯수가 오르는 수고 있습니다.
한번은 200개 정도 까지 CLOSE_WAIT이 생긴 적도 있습니다.
보통 netstat로 잡고 lsof 로 잡아서 프로세스를 kill시키는데..
CLOSE_WAIT 많이 있음 얼마나 서버에 않좋나요?
그리고 않좋으면 얼마까지는 봐 줄만 한가요??
서버 사양은 정확히는 모르기만 괞찬은 사양으로 알고 있고요.
네트윅도 크게 딸린다고는 생각이 안들거든요..
내부로 통신하며 100M가 스위치 허브로 물려있고요.
프로 그램은 제가 잘모르니 뭐라고 할수 는 없는 상태에요.
그냥 CLOSE_WAIT이 많음 서버에 얼마나 무리가 갈까요??

pynoos의 이미지

다른 분은 FIN_WAIT2 가 많아지면 어떻게 하냐고 물으시던데, 여긴 CLOSE_WAIT이군요. CLOSE_WAIT 은 상대가 접속을 끊었을 때, 이쪽에서도 감지하고 close 를 명시적으로 하길 기대한다는 상황입니다.

이쪽에서는 close 신호에 대해 접수 했다고 ACK를 이미 보낸 상황이며, 상대는 현재 FIN_WAIT2 상황입니다.

netstat에서 많아도 상관없는 것은 TIME_WAIT 이며 나머지들은 모두 뭔가 처리해주어야하는 것들입니다.
대개 close를 명시적으로 하지 않는데서 일어나는 것입니다.

mushim의 이미지

pynoos 님 말씀이 맞습니다. 부연설명을 하자면

TCP 세션이 끊길때, client 가 FIN 메세지를 보내게 되면 ,
server 쪽 커널에서는 FIN 메세지를 수신버퍼에 넣어두고 ACK 메세지를 보내고 CLOSE_WAIT 상태로 있게 됩니다.

server 쪽 해당프로세스에서 수신버퍼의 FIN 을 읽고서, close() 를 호출하지 않으면 계속 이상태로 있게 됩니다. close() 를 호출하게 되면 client 쪽으로 FIN 을 보내고, 다시 ACK 를 받게 되면 비로소 TCP 세션이 종료하게 됩니다.

중간에 kill 로 강제적으로 죽이게 되면 저 과정을 커널이 알아서 해주게 되는 거죠.

그런데 HTTP 프로토콜 같은 경우는 수없이 많은 접속과 종료를 반복하게 되기 때문에 거의 ESTABLISHED 수만큼 CLOSE_WAIT 가 보일 수 있습니다.

그러나 고정적으로 있는 것이 아니고 시간에 따라서 계속 증가한다면 프로그램 자체 문제일 가능성이 크구요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.