[질문] 서버 메모리 한계

nTachyon의 이미지

안녕하세요...

제가 서버를 하나 맹글었는데... 문제가 좀 생기네요.
조언을 요청하는 측면에서 이렇게 글을 올립니다.

일단 지금 상황은... 클라이언트 측에서 특정 기간의 데이터를 서버에 요청하면... 서버가 데이터를 돌려주는데...

이때... 클라이언트는 20번의 요청을 기간을 다르게 하여 보내면 서버는 이를 세션관리모듈에서 요청이 올 때 마다 누적아여 저장하고 있다가(malloc을 통해 메모리를 할당해 추가하죠) 마지막 요청시 누적된 데이터를 한꺼번에 돌려주게 됩니다. 그 후 메모리를 해제하고요

이럴 때 요청이 적으면 문제가 안되지만, 요청 클라이언트가 많아질 경우... 당연히 서버 측면에서는 할당 받을 수 있는 메모리 량이 한계에 도달하는 듯 합니다.
(요청이 들어오는 와중에는 여러 클라이언트가 계속 malloc이 필요한 요청을 보내고 있으니 말이죠)

때문에 malloc이 실패하게 되고... 최종적으로 죽게 되지요.

그렇다고 파일에 쓰자니 이 역시 파일을 열 수 있는 한계가 있으므로 해결책은 되지 않을 듯 합니다.

문제되는 부분을 찾는데도 한참이 걸렸네요 -_-;

메모리도 아니고 파일도 아닌... 다른 어떤 디자인이 있을까요?

경험 많은 분들의 조언 부탁드립니다.

bugiii의 이미지

접속당 그 누적되는 메모리의 추정치와 클라이언트 수가 어떻게 되며 서버 머신의 칩셋과 메모리, 스왑 등 계산할 수 있는 팩터가 있어야 하지 않을까요?

sjpark의 이미지

제가 이해한것은.
각각 다른 기간에 요청이 20번 오게 되면, 하나의 세션으로 판단하며, 이를
누적하여, 마지막에 모두 모아 답변을 한다.

그렇다면 이건 어떨까요.
처음 오는 요쳥에 따라 하나의 세션을 만들고, 하나의 세션에는 20개의 데이타
를 저장할 파일 위치 및 이름(session id로?)만 갖게 하는거죠. 또는 inode(inode로 하면 배보다 배꼽이 커질 수도 있겠군요)

이렇게되면, 20개에 대한 응답을 메모리에 갖고 있지 않아도 되고,
저장 장치의 어떤 위치에 있는지 위치 정보만을 유지하게 되는 것이죠.
물론, 언젠가 (엄청나게 많은 데이타가 와서 이또한 넘어간다면야..)

또한, 20개의 요청이 모두 된 세션인 경우 해당 파일을 열어 응답을 보내주고
파일 정보를 가진 노드를 삭제하고, 파일을 삭제. 또는 재사용.

하면 어떨까요.

파일이름을 파일이름을 255자로 하고, 노드 링크에 (구현에 따라 틀리겠지만) 크게 12bytes라고 하죠. 하나의 노드에 저장된 요청된 세션의 갯수 4bytes

하면 대략 300 바이트 안에서 하나의 세션이 해결될것이라고 생각됩니다.

어떤 상황인지 전체적인 이해가 부족해서. 보이는 부분만 보고 쉽게 생각해 보았습니다.

댓글 달기

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