rt¶
/usr/local/m2/setting.json
다음 영역에 대해 기술한다.
{
"env": {
"rt": {
...
}
}
}
localCacheStorage¶
{
"env": {
"rt": {
"localCacheStorage": {
...
}
}
}
}
meta¶
"meta": {
"diskFailSec": 60,
"diskFailCount": 10,
"onCrash": "hang"
}
diskFailSec (기본: 60초)
디스크 실패 누적시간
diskFailCount (기본: 10회)
디스크 실패 누적 시간동안
diskFailCount
만큼 실패하면 디스크를 배제한다.onCrash (기본: hang)
모든 디스크 장애시 동작모드.
hang
,bypass
,selfkill
중 택 1
disks¶
"disks": [
{
"mount": "/user/cache1"
},
{
"mount": "/user/cache3",
"quota": 100,
"quotaUnit": "size",
"cleanupSize": 0
}
]
mount
마운트 경로
quota
디스크당 최대 사용량
quotaUnit
디스크당 사용량 단위.
size (단위: GB)
또는ratio (범위: 1~100%)
cleanupSize (기본: 0, 단위: GB)
디스크 공간부족시 정리용량. 값이
0
보다 클 경우 동작한다.
cleanup¶
"cleanup": {
"time": "02:00",
"age": 0,
"emptyDir": "delete",
"fileCount": 0,
"defaultDiskCleanupSize": 0
}
time (기본: 02:00)
rt 캐싱엔진 최적화 수행시간
age (기본: 0일)
0보다 큰 경우, 일정 기간동안 한번도 접근되지 않은 콘텐츠를 삭제한다. 디스크를 미리 확보하여 서비스 시간 중 디스크 부족이 발생할 확률을 줄이기 위함이다.
emptyDir (기본: delete)
Cleanup 시점에 비어있는 디렉토리 삭제여부.
delete
인 경우 삭제,keep
인 경우 미삭제.fileCount (기본: 0)
디스크 정리 시점에 한번에 정리할 캐싱객체의 절대개수. 0인 경우 자동계산된다.
defaultDiskCleanupSize (기본: 0, 단위: GB)
각 디스크당 공간부족시 정리용량. 값이
0
보다 클 경우 동작한다.
remoteCacheStorage¶
AWS S3
인터페이스의 Object Storage를 사용하여 캐싱한다.
{
"env": {
"rt": {
"remoteCacheStorage": {
...
}
}
}
}
Note
백업대상은 RT의 다음 API로 제공된다.
/monitoring/backup?marker=...&chunksize=1000
meta¶
"meta": {
"enable": true,
"type": "oci",
"chunkSize": 1000
}
enable (기본: true)
활성화 (동적 변경가능)
type (기본: oci)
타입.
oci
또는aws_s3
또는gcs
chunkSize (기본: 1000)
한번에 조회할 최대 크기(개수)
Hint
#server.xml - <Server><Cache> <BackupChunkSize>1000</BackupChunkSize>
auth¶
"auth": {
"region": "ap-northeast-2",
"accessKey": "__my_access_key__",
"secretKey": "__my_secret_key__"
}
region
리젼
accessKey
액세스 키
secretKey
시크릿 키
Note
bucket
은 가상호스트명과 같다.
upload¶
"upload": {
"concurrent": 8,
"priority": "size",
"filter": null
}
concurrent (기본: 8, 최대: 32)
동시 업로드 개수
priority (size)
업로드 우선순위
size (기본)
파일 크기순asc
백업대상에 지정된 순서.desc
백업대상에 지정된 순서의 역순.
filter
필터 ( ansible.builtin.find module – Return a list of files based on specific criteria 참고)
Hint
RT로부터 다운로드 받은
X-M2X-Cache-FileMeta
헤더 값이 메타 데이터로 저장되어야 한다.개발 후 릴리스 시점에 정리한다. “최소 크기” 조건만 있어도 서비스에 문제가 없다.
multipart¶
"multipart": {
"enable": true,
"size": 100
}
enable (기본: true)
멀티파트 업로드 활성화
size (기본: 100MB)
멀티파트 업로드 최소 크기로
concurrent
의 1/2 세션개수로 업로드한다.
download¶
"download": { }
Hint
메타 데이터를
X-M2X-Cache-FileMeta
헤더로 RT에 응답해주어야한다.
throttling¶
Object Storage 가용량 한계( 429 Too Many Requests
응답등)상황이 발생할 경우 작업량 쓰로틀링 정책을 설정한다.
"throttling": {
"enable": true,
"policy": "retry",
"retryMax": 5
}
enable (기본: true)
활성화. 비활성화(
false
)시 에러로 처리하고 계속 진행한다.
policy (기본: true)
retry
랜덤하게 0~100ms 사이 대기 후 재시도 한다.
backoff
1초대기 후 재시도한다. 재시도 시마다 2배씩 대기시간이 연장된다.Note
멀티노드 동시성을 회피하기 위해 개별 노드는 0~100ms 사이의 임의의 랜덤 지터를 가진다.
retryMax (기본: 5회)
최대 재시도 횟수
properties¶
"properties": {
"memoryRatioContents": 50,
"cacheObjectSize": 900,
"enableEmergencyMode": false,
"enableSyncStale": true,
"writeCountSmallFile": 0,
"enableRrd": true
}
memoryRatioContents (기본: 50%)
RT가 사용하는 전체 메모리 중 콘텐츠 적재비율
cacheObjectSize (기본: 900bytes)
RT 캐싱객체당 메모리 크기
enableEmergencyMode (기본: false)
RT Emergency 모드 활성화
enableSyncStale (기본: true)
stale.log를 활성화하여 콘텐츠 Purge등을 선기록 후 비정상 종료 상황에도 반영한다.
writeCountSmallFile (기본: 0)
캐싱 객체의 초당 Write-Back 개수. 0인 경우 자동계산된다.
enableRrd (기본: true)
가상호스트별로 RRD 그래프를 제공한다.
false
로 설정하면 기록하지 않는다.
purge¶
Purge계열 API 동작에 대해 설정한다.
{
"env": {
"rt": {
"purge": {
"mode": "sync"
}
}
}
}
mode (기본: sync)
Purge계열 동작방식 설정
sync
동기로 동작한다.async
비동기로 동작한다.
async¶
비동기 Purge 동작에 대해 설정한다.
"async": {
"target": "pattern",
"queueMax": "100000"
}
target (기본: pattern)
비동기 무효화로 구성된 상태라도, 요청된 URL에 따라 선별적으로 비동기 처리한다.
pattern
패턴요청에 대해서만 비동기 처리한다.all
모든 요청을 비동기 처리한다.
queueMax (기본: 100000)
비동기 무효화 최대 저장개수
비동기로 동작하는 경우 무효화 요청은 큐에 저장되며 백그라운드로 수행된다.
Note
백그라운드 수행 이전이라도 접근되는 콘텐츠가 무효화 대상이라면 즉시 만료된다.
비동기 API를 호출했으나 동기로 처리되었다면
201 Created
로 응답한다.
preCacheControl¶
비동기 Purge 관리 및 반영정책을 설정한다.
"preCacheControl": {
"enable": true,
"matchMax": 5000,
"matchFirstOnly": false
}
enable (기본: true)
접근되는 콘텐츠에 대해 저장된 비동기 무효화를 매칭한다.
matchMax (기본: 5000)
최대 매칭 개수
matchFirstOnly (기본: false)
false
큐잉된 비동기 Purge 전체를 스캔한다.
true
큐잉된 비동기 Purge 중 매칭 아이템에 대해서만 반영한다.