mysql의 성능은?

ifyou의 이미지

제품을 하나 납품했는데 예상치 못한 문제가 생겼습니다.

우선 시스템 사양부터..

cpu: xeon 2.4 dual
ram : 2GB
hdd : scsi
os : win 2000 server
mysql ver: 3.x 최신버전
webserver : tomcat 4.x + jsp (apache 없음)

시스템에 다른 프로그램도 깔려서 돌아가지만 cpu나 기타 리소스를 거의
잡아 먹지는 않습니다. 그리고, db & web은 제 관할도 아니고, 그리 많이 알고
있지는 않습니다. 그래서 질문이 좀 엉성할 수도 있습니다. 이해를.. :wink:

db는 하나이고 테이블이 대충 10개정도? 각 테이블 당 필드도 대충 20여개 정도로
알고 있고, 대부분 내용은 TRUE/FALSE 값을 가집니다. 긴 내용은 없습니다.

web으로 한번 접근하면 insert, update가 대략 5~8번 정도, select가 한두번정도
일어납니다. 한개만 접근해 보면 mysql이 점유하는 cpu가 25정도이고 1~2초
이상 지속됩니다. 동시에 몇명 붙으면 수십초 후에 응답이 옵니다.

위 사양보다 훨씬 저급 사양에 w2k server+iis+ms-sql은 잘 견디는데....

지금은 mysql이 테이블 단위로 lock을 걸기 때문이라고 결론 내렸지만, 사실
납득이 가지 않습니다.. 이래저래 mysql performance관련 문서를 봤지만
모르니까 읽어봐도 잘 모르겠더군요 :lol:

oldbell의 이미지

정말 Mysql 문제인가요?
응답이 늦는 때의 Server Resource, Mysql Resource 를 확인해보심이 어떨런지요...

JSP는 아니었지만, Mysql 문제가 아닌 Code 문제인 적이 있었습니다.

인생의 무게를 느껴라. 아는 만큼 보이는게다.

morning의 이미지

저도 결과가 궁금하네요.

지금은 그냥 계획중이지만 DB 서버만 여러대
굴려야 하는 사업을 구상 중입니다.
참고로 저는 원맨 컴퍼니 대표 겸 백수입니다. ^^
자료축적이 목적인데 DB가 못 받쳐준다면 말이 안되니까요.
한때는 오라클로 갈까 고려도 많이 했지만
최근 다시 MySQL로 무게 중심을 옮겼는데...

이번 문제를 좀 관심있게 지켜봐야 겠군요.
부디 문제를 잘 해결해서 근심 풀기를 바라겠습니다.

조르바와 함께 춤을....

gbkwon의 이미지

ifyou wrote:
제품을 하나 납품했는데 예상치 못한 문제가 생겼습니다.

우선 시스템 사양부터..

cpu: xeon 2.4 dual
ram : 2GB
hdd : scsi
os : win 2000 server
mysql ver: 3.x 최신버전
webserver : tomcat 4.x + jsp (apache 없음)

시스템에 다른 프로그램도 깔려서 돌아가지만 cpu나 기타 리소스를 거의
잡아 먹지는 않습니다. 그리고, db & web은 제 관할도 아니고, 그리 많이 알고
있지는 않습니다. 그래서 질문이 좀 엉성할 수도 있습니다. 이해를.. :wink:

db는 하나이고 테이블이 대충 10개정도? 각 테이블 당 필드도 대충 20여개 정도로
알고 있고, 대부분 내용은 TRUE/FALSE 값을 가집니다. 긴 내용은 없습니다.

web으로 한번 접근하면 insert, update가 대략 5~8번 정도, select가 한두번정도
일어납니다. 한개만 접근해 보면 mysql이 점유하는 cpu가 25정도이고 1~2초
이상 지속됩니다. 동시에 몇명 붙으면 수십초 후에 응답이 옵니다.

위 사양보다 훨씬 저급 사양에 w2k server+iis+ms-sql은 잘 견디는데....

지금은 mysql이 테이블 단위로 lock을 걸기 때문이라고 결론 내렸지만, 사실
납득이 가지 않습니다.. 이래저래 mysql performance관련 문서를 봤지만
모르니까 읽어봐도 잘 모르겠더군요 :lol:

테이블 락 때문은 아닌것 같습니다.. (그냥. 제.. 생각입니다..) 경험상.. MySQL 은 명시적(사용자가)으로 테이블에 락을 걸어서 풀지 않는 이상 락 때문에 사용자가 체감 할수 있을 만큼 느려 지지는 않습니다..

내부적으로 MyISAM 핸들러는 아직 테이블 단위 락을 사용하고 있지만.. 테이블 단위의 락을 사용하고 있어도 단순 작업에 있어서는 ROW단위의 락을 거는 오라클 만큼(사실약간 뒤집니다. ) 빠릅니다..

그만큼 락을 거는 방법에 있어서는 불리하지만 다른 작업에서는 오라클의 성능을 추월 해낸다는 것이겠죠.. ;

MySQL 에 보시면 핸들러가 여러가지 있습니다.. MyISAM, BDB, InnoDB 등이 있는데 이들 핸들러에 따라.. 여러가지 락을 지원 합니다..

기본인 MyISAM 은 테이블 락을 걸지만 InnoDB는 ROW단위 락을 사용합니다.. 락때문에 느려 진다고 생각 하신다면 MyISAM보다는 전체적인 속도가 조금 느리나 InnoDB를 한번 사용해서 테스트 해보시기를 권해 드립니다..

저도 결과가 궁금하니.. 테스트 해보신후에 결과를 좀 알려 주시면 감사 하겠습니다.. 그럼. 도움이 됬기를..

댓글 달기

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