본문 바로가기 메뉴 바로가기

권말련의 게임 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

권말련의 게임 블로그

검색하기 폼
  • 분류 전체보기 (1323) N
    • 로스트아크 (574)
      • 대항해 (126)
      • 모험의 서 (75)
      • 모코코(대륙) (119)
      • 기억의 오르골 (18)
      • 업적 (27)
    • 게임 (458) N
      • 엘든링 (151)
      • 마비노기 모바일 (7) N
      • 오버워치2 (9)
      • 포켓몬고 (26)
      • 팰월드 (21)
      • 디아블로4 (43)
      • 마인크래프트 (4)
      • 몬스터 헌터 와일즈 (1)
      • 오딘 (22)
      • 아이온 클래식 (75)
      • 바람의 나라:연 (24)
      • AFK아레나 (45)
      • 배틀그라운드 (2)
      • RPG게임 (7)
      • 리니지TL (2)
      • 모바일게임 (17)
    • 모바일게임 쿠폰 (8)
    • IT (201)
      • iOS (67)
      • Android (38)
      • PHP + Mysql (7)
      • AWS+Window Server (5)
      • 블로그 (32)
    • 일상 (76)
      • 맛집 (8)
      • 운동 (15)
      • 여행 (4)
      • 리뷰 (9)
  • 방명록




티스토리 뷰

IT/PHP + Mysql

윈도우서버 CPU 100% 원인

권말련 2015. 11. 4. 10:07
애플트리

윈도우서버 CPU 100% 원인


모바일앱 서비스중 윈도우 서버 CPU가 100%가 되어 클라이언트 로딩 및 통신하는데 렉이 발생하는 일이 생겼다. 

원인이 무엇일까? 원인 파악부터 해보았다.


1. php로 개발한 API 파일에 문제가 있는 것일까?

자주 호출되는 API 중 쿼리문에 문제가 있다고 판단하여 쿼리튜닝을 했다. 불필요한 쿼리문 삭제 및 조인을 이용하여 최적화를 시켰지만 똑같은 현상이 발생했다. ㅠ


2. 서버 환경설정 문제인가?

my.ini 파일에 동시접속자수 관련된 설정을 추가 하고 서버 재실행 했지만 CPU 100%. OTL


[mysqld]

max_connections = 500

wait_timeout = 60

 

3. mysql console에 현재 실행중인 프로세스 검사


CPU 100%인 상태에서 mysql consloe 창을 열어 명령어를 입력한다.


show processlist;



우리는 CPU 100%인 상태에서 동일한 쿼리문 2가지가 계속해서 발생하는 것을 알았고 쿼리문을 다시 수정했다. 하지만 똑같은 현상이 발생했다. 동일한 쿼리문의 공통점은 select * from 으로 데이터 값을 가져와서 비교하는 쿼리문으로 데이터베이스 상태를 체크하였는데 레코드수가 200만 정도로 쌓인것을 확인하였다.


결국 원인은 select 문을 사용하는 쿼리의 데이터베이스 레코드수 문제였다. 

기존 데이터베이스 레코드수를 삭제하고 서비스에 필요한 데이터베이스는 새로 생성하여 보여주는 식으로 바꾼 결과 지금은 CPU가 30%도 차지 않는 상태이다. 속도는 LTE급으로 안정된 상태이다.


결론

어느순간 CPU 100%가 발생한다면 mysql console로 현재 실행중인 프로세스를 파악한다. 

특정 쿼리문이 계속해서 노출된다면 쿼리문 튜닝과 함께 데이터베이스 레코드수를 확인한다.






반응형
그리드형
저작자표시 (새창열림)

'IT > PHP + Mysql' 카테고리의 다른 글

mysql where 서브쿼리 사용하기  (0) 2015.09.03
[php] 문자열에서 숫자만 추출하기  (0) 2015.05.06
phpmyadmin auto_increment 초기화  (1) 2014.12.29
[php] mysql 연동하여 join, where 쿼리 사용하기  (0) 2014.11.27
PHP date 형식 변환 함수  (0) 2014.10.24
snoopy를 이용한 게시판 긁어오기  (6) 2014.10.07
  • 카카오톡 공유하기
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오스토리 공유하기

'IT > PHP + Mysql' 카테고리의 다른 글

mysql where 서브쿼리 사용하기  (0) 2015.09.03
[php] 문자열에서 숫자만 추출하기  (0) 2015.05.06
phpmyadmin auto_increment 초기화  (1) 2014.12.29
[php] mysql 연동하여 join, where 쿼리 사용하기  (0) 2014.11.27
PHP date 형식 변환 함수  (0) 2014.10.24
snoopy를 이용한 게시판 긁어오기  (6) 2014.10.07
댓글
권말련의 게임 블로그게임 정보 공유 블로그
반응형
공지사항
최근에 올라온 글
Total
Today
Yesterday

Blog is powered by Tistory / Designed by Tistory

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.