개발 Q&A

제목 mpdf를 사용해서 pdf 파일을 만들고 있었습니다, 하지만 CPU 과점유 및 메모리 부족으로 인해서 결국은 뻗은 상태
글쓴이 kashou 작성시각 2014/04/28 14:45:07
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 15129   RSS
카페24에서 서버 구매해서 사용하다가 현지에서 접속 문제라던가 여러 문제들이 많아서 아마존 클라우드로 옮겨 놓은 상태입니다.
아마존 인스턴스는 마이크로 서버로는 안되어서 라지로 바꾸었다가, 그래도 문제가 생겨서 미듐으로 변경을 했습니다.

여러가지 문제점들은 계속해서 수정하고 있으나, pdf 생성할때는  CPU 과점유를 일으켜서 pdf 생성이 되질 않는다는게 문제점 입니다.

1. 실행 전
top - 14:26:57 up 8 days, 52 min,  2 users,  load average: 0.37, 0.39, 0.24
Tasks:  84 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.0%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3880008k total,  3718364k used,   161644k free,   235112k buffers
Swap:        0k total,        0k used,        0k free,  3239404k cached
 
2. 실행 중 ( pdf 파일은 다운로드 되지 않았습니다 )
top - 14:27:57 up 8 days, 53 min,  2 users,  load average: 0.74, 0.49, 0.28
Tasks:  84 total,   3 running,  81 sleeping,   0 stopped,   0 zombie
Cpu(s): 86.8%us, 12.6%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.3%hi,  0.3%si,  0.0%st
Mem:   3880008k total,  3744156k used,   135852k free,   235140k buffers
Swap:        0k total,        0k used,        0k free,  3242996k cached
 
3. 실행 완료 ( 결과 실패 )
top - 14:29:09 up 8 days, 54 min,  2 users,  load average: 0.32, 0.42, 0.28
Tasks:  84 total,   1 running,  83 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.3%us,  0.3%sy,  0.0%ni, 97.7%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3880008k total,  3723944k used,   156064k free,   235244k buffers
Swap:        0k total,        0k used,        0k free,  3245516k cached


pdf 생성하려고 하면 과점유가 되면서 인스턴스가 뻗어버리는 일이 생기는 것입니다;;
pdf 생성은 mpdf를 사용하고 있습니다. 

저희가 mpdf를 사용해서 만드는 데이터는 고객이 구매한 음원을 노래방 책자처럼 만들어주는 기능을 하고 있습니다. 그렇다보니 데이터가 많은 고객은 1만건 이상이기도 하구요. 적으면 100여곡정도 되기도 합니다.
브라질 언어로 현재 생성하고 있는 상태이구요.

mpdf 보다 효율이 좋은 경량화있는 pdf lib는 없을까요 ㅠㅠ



카페24 사용하던 서버 사양 32 BIT
CPU : Intel Xeon Quad-Core E3-1230 (Sandybridge) (3.20GHz / L3 8MB / 5.0GT/s)
RAM : DDR3 4G 10600 U-ECC 
HDD : SATA2 500GB (7200.ES)
Traffic : 10Mbps
Bandwidth : 1Gbps Dedicated

아마존 사양 32 BIT
m1.medium 
물리적 프로세스 : 인텔 Xeon 패밀리
vCPU : 1
ECU : 2
RAM : 3.78GB
HDD : 410GB
 
 다음글 erwin 관련 질문입니다. (3)
 이전글 이제 지쳐갑니다 ㅠㅠ 제가 가지고 있는 지식을 총 동원... (28)

댓글

변종원(웅파) / 2014/04/28 16:44:14 / 추천 0
다른 라이브러리도 거의 비슷합니다.
php extension 성능테스트 해보세요. 다른 것보다는 낫지 않을까 싶네요. http://kr1.php.net/manual/en/pdf.examples-basic.php

pdf 만드는게 빈번하다면 pdf 생성 하는 서버를 따로 두고 queue를 이용하여 생성하는 방식을 고려해보시기 바랍니다.

다중 생성이 아니라 큐에서 한건씩 생성후 알림을 주는 방식으로요. 메모리 리밋, 타임 리밋은 모두 풀어놓고요.