티스토리 뷰
AIX memory leak 추적 방법
# 테스트 환경
OS : AIX
Database : 해당없음
Description
- MALLOCDEBUG 를 사용
- 프로세스 종료시 반환되지 않는 힙메모리 정보를 STDERR 로 출력함
- AIX 5.3 에서 제공하는 기능임
# 환경구성
* Tmax 서버만 환경변수 적용을 시키기 위해 SVRGROUP 절의 ENVFILE 을 이용
*SVRGROUP
svg1 NODENAME = “ibmtest”, ENVFILE=”/home/sangwhee/test.env”
* test.env 에 다음 환경변수 설정
MALLOCTYPE=debug
MALLOCDEBUG=report_allocations
* stderr 로 로그가 출력되므로 CLOPT 절에 -e 설정
*SERVER
svrleak SVGNAME = svg1, CLOPT = “-o $(SVR).out -e $(SVR).out”
* svrleak 서버 구성
- svrleak 의 서비스 TOUPPER 는 leakm 함수를 call
- leakm 함수는 10000 byte 씩 malloc 수행 – svrleak 컴파일시 -g 옵션 추가 (추가하지 않으면 함수 명이 ??로 나옴)
#include
#include <usrinc/atmi.h>
void leakm(void);
TOUPPER(TPSVCINFO *msg)
{
int i;
printf(“TOUPPER service is started!\n”);
printf(“INPUT : data=%s\n”, msg->data);
for (i = 0; i < msg->len; i++)
msg->data[i] = toupper(msg->data[i]);
printf(“OUTPUT: data=%s\n”, msg->data);
leakm();
tpreturn(TPSUCCESS,0,(char *)msg->data, 0,0);
}
void leakm(void)
{
char *buf;
buf = (char *)malloc(10000);
free(buf);
}
# 테스트 결과
* TOUPPER 서비스 여러번 호출
* tmdown -S svrleak 수행시 svrleak.out 으로 trace 로그 출력 …
Allocation #16: 0x1100508F0
Allocation size: 0×2710 =====> 10000 byte
Allocation traceback:
0x090000000019309C malloc
0x00000001000007B4 leakm
0×0000000100000728 TOUPPER
0x0900000003ED41B4 ?? =====> -g 옵션 없는 모듈은 함수명이 안나옴
…
Total allocations: 18.
* TOUPPER > leakm 까지 추적 가능
'④ 미들웨어 > ⓣ Tmax' 카테고리의 다른 글
[Tmax] JEUS7 - WebT 연동 가이드 (0) | 2018.07.03 |
---|---|
[Web Server] Tmax CLHQTIMEOUT & tmm 다운 영향도 가이드 (0) | 2018.06.18 |
[Web Server] Tmax 서버/서비스 동적추가 가이드 (0) | 2018.06.18 |
[Web Server] Tmax5 장애진단 가이드 (0) | 2018.06.18 |
[Tmax] Configuration & 명령어 가이드 (0) | 2018.04.11 |
- Total
- Today
- Yesterday
- Da
- Architecture
- aws
- SWA
- API Gateway
- OpenStack
- TA
- git
- webtob
- node.js
- jeus
- Docker
- apache
- 쿠버네티스
- SA
- 마이크로서비스
- MSA
- 마이크로서비스 아키텍처
- wildfly
- JEUS6
- k8s
- 오픈스택
- openstack token issue
- JEUS7
- kubernetes
- openstack tenant
- aa
- nodejs
- JBoss
- 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |