OneFS: 메모리 이용률
Summary: 이 문서에서는 일반적인 메모리 범주에 대해 간략하게 설명하고 사용 가능 또는 "무료"로 간주될 수 있는 메모리 범주에 대해 설명합니다. 특정 프로세스 및 컨테이너가 사용할 수 있는 메모리 수에 대한 지침이 제공됩니다.
Instructions
메모리가 부족하면 노드가 재부팅되고 프로세스가 재시작되며 성능 문제가 발생할 수 있습니다. 이 문서에서는 노드의 사용 가능한 메모리를 평가하는 방법을 간략하게 설명하고 몇 가지 기술 메모리 지침을 참조합니다. OneFS에서 메모리는 크게 5가지 영역 또는 대기열로 분류됩니다. 사용 가능, 비활성, 유선, 활성 및 버퍼
사용 가능한 메모리
사용 가능한 메모리는 즉시 사용할 수 있으며 할당되지 않습니다.
비활성(Inact) 메모리는 최근에 사용되지 않았으며 할당할 수 있습니다.
메모리
사용 불가유선 메모리가 커널에서 사용되고 있으며 다른 할당에 사용할 수 없습니다.
활성 메모리가 최근에 사용되었으며 사용자 공간에 할당되었습니다.
버퍼(Buf) 메모리는 디스크 캐싱에 사용됩니다.
사용 가능한 메모리
계산이러한 메모리 범주는 명령 상단에서 확인할 수 있습니다.
Cache 범주가 표시되지 않고 Swap 섹션에 아무 것도 표시되지 않을 것으로 예상됩니다.
# top last pid: 98143; load averages: 0.00, 0.02, 0.00 up 48+04:45:17 16:01:09 643 processes: 1 running, 642 sleeping CPU: 0.0% user, 0.0% nice, 0.2% system, 0.0% interrupt, 99.8% idle Mem: 512M Active, 28G Inact, 11G Wired, 12G Buf, 7530M Free Swap:
다음에서 출력을 보는 경우 vmstat -H에 사용 가능한 메모리 페이지(AVM) 및 사용 가능한 메모리(FRE)가 바이트 단위로 표시됩니다.
# vmstat -H procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad4 ad7 in sy cs us sy id 0 14 0 9333548 7713640 863 0 0 0 564 15 0 0 428 903 200 0 0 100
AVM 페이지를 바이트로 변환하면 사용 가능한 메모리(비활성 + 사용 가능)가 표시됩니다.9333548 x 4096 = 38230212608 bytes
Convert to GB 38230212608/(1024^3)= 35.6 GB Available Memory
Inact 및 Free 값을 top 이 예의 출력에는 다음이 포함됩니다.28GB + 7.35GB = 35.35GB
상위 출력이 이미 반올림되었으므로 vmstat을 클릭합니다.
프로세스별 메모리 사용률
가상 크기 또는 vsz(SIZE) 는 이 프로세스에 할당된 메모리를 나타냅니다.
상단의 매뉴얼 페이지에서 "SIZE는 프로세스의 총 크기(텍스트, 데이터, 스택)"
상주 세트 크기(RES )는 이 프로세스에서 사용 중인 물리적 메모리의 양을 나타냅니다.
맨 위의 매뉴얼 페이지에서 "RES는 현재 상주 메모리의 양입니다 (SIZE와 RES는 모두 킬로바이트로 제공됨)"top 가장 많은 가상 메모리를 사용하는 6개의 프로세스를 보여주는 명령:
# top -o size -n 6 last pid: 26745; load averages: 0.15, 0.20, 0.17 up 3+19:06:14 20:03:26 103 processes: 1 running, 102 sleeping Mem: 152M Active, 23G Inact, 14G Wired, 12G Buf, 10G Free Swap:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 10244 root 15 60 r112 592M 310M kqread 3 6:35 0.00% nfs 2698 root 11 20 0 585M 125M select 7 34:41 0.00% isi_celog_monitor 2544 root 26 60 r112 506M 70184K kqread 4 0:05 0.00% isi_papi_d 3217 root 2 26 0 439M 48336K kqread 3 0:13 0.00% isi_celog_capture 2676 root 2 52 0 399M 41540K kqread 2 1:46 0.00% isi_celog_capture 26740 root 2 20 0 399M 40168K kqread 6 0:00 0.00% isi_celog_capture
노드당 LW 컨테이너 메모리 사용량 및 열린
파일의 최대값 OneFS 버전에 따라 메모리에 대해 몇 가지 게시된 최대값이 있습니다. 노드당 열린 파일, LW 컨테이너 내의 SMB 및 NFS와 같은 항목에 대해 설명합니다.
OneFS 기술 사양 가이드를 참조하십시오.
- LW 컨테이너: 9~23페이지
OneFS에서는 3개의 lwio 프로세스 컨테이너는 SMB, NFS 및 Swift 프로세스 각각에 대해 하나의 컨테이너가 있습니다. SMB 컨테이너는 총 RAM의 최대 20%가 될 수 있지만 최소 1GB, 최대 32GB입니다. NFS 컨테이너는 총 RAM의 최대 25%가 될 수 있지만 최소 1GB, 최대 8GB입니다. Swift 컨테이너는 512MB입니다.
- 열린 파일 제한: 페이지 12
노드당 열려 있는 최대 파일 수는 노드당 최대 파일 수의 90%입니다. vnodes 다음 수식으로 표현된 대로 해당 노드에서: kern.maxfiles = kern.maxvnodes * 0.9 입/출력 데몬과 같은 OneFS 프로토콜 데몬(lwio)을 사용하는 경우 노드에서 열 수 있는 파일 수에 추가적인 제약이 있을 수 있습니다. 프로토콜 데몬은 커널이 프로세스당 메모리 소비에 제한을 두기 때문에 일반적으로 이러한 제약을 적용합니다.
최대
값에 대한 메모리 사용률 확인 의 메모리 보기 lsass 를 사용한 프로세스 ps:
# ps auwx | egrep "USER|lsass" | grep -v grep USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 14689 0.0 0.3 162112 20404 ?? I 20Feb17 0:33.30 lw-container lsass (lsass)
를 사용하여 확인 top 명령을 사용하여 수행됩니다.
top -n 100 | egrep "SIZE|lsass" PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 14689 root 26 20 0 158M 20764K ucond 2 0:00 0.00% lsass