요약:

요약:

질문: 실제 메모리 사용량을 보고하는 방법(아니요은닉처! )사용나이몬또는가상 머신 상태또는svmonAIX 6에서?

나이몬:
여기에 이미지 설명을 입력하세요.

가상 머신 통계:
여기에 이미지 설명을 입력하세요.

svmon:
여기에 이미지 설명을 입력하세요.

Linux에서와 마찬가지로 free 명령을 사용할 수 있지만 AIX에서는 사용할 수 없습니다.

[user@notebook ~]$ free -m
         total       used       free     shared    buffers     cached
Mem:          7797       4344       3453          0        219       2745
-/+ buffers/cache:       1379       6417
Swap:         2047          0       2047
[user@notebook ~]$ free -m | grep cache: | awk '{print $3}'
1379
[user@notebook ~]$ 

답변1

짧은 버전: 모든 파일 캐시에 대해 알고 싶다면 clnt사용 중인 +페이지(단위는 4k 페이지)에 대한 출력을 보거나 실행 파일(동일 단위)을 제외한 파일 캐시에 대한 "파일 페이지"를 찾아보십시오.perssvmon -Gvmstat -v


무슨 일이 일어나고 있는지 완전히 이해하려면 다음 문서를 확인해야 합니다.AIX 페이지 교체 개요.

간단히 말해서, AIX에는 두 가지 메모리 분류가 있습니다.

  • 작업 기억 vs 영구 기억

    • 작업 메모리는 프로세스(스택, 힙, 공유 메모리) 및 커널 메모리입니다. 이러한 메모리를 페이지 아웃해야 하는 경우 교체해야 합니다.

    • 영구 메모리는 파일 캐시입니다. 페이지 아웃이 필요한 경우 페이지 아웃이 발생한 파일 시스템으로 반환됩니다(더티 페이지의 경우 깨끗한 페이지가 회수됩니다). 이는 JFS 파일 시스템의 비클라이언트(또는 영구) 페이지와 JFS2, NFS 및 기타 클라이언트 페이지로 구분됩니다.

  • 계산된 페이지와 계산되지 않은 페이지.

    • 컴퓨팅 페이지는 다시 프로세스 및 커널 데이터와 프로세스 텍스트 데이터(예: 실행 파일/코드를 캐시하는 페이지)입니다.

    • 비계산은 실행 불가능한 파일 캐시(또는 공유 라이브러리)와는 다른 것입니다.

svmon -G(그런데 svmon -G -O unit=MB좀 친절해요) 영구 페이지 대신 일자리를 주세요. 이 work열은 작업 메모리입니다. pers(JFS) 및 (JFS2) 열을 추가 하여 clnt영구 메모리를 얻습니다 .

귀하의 경우 파일 시스템(186151*4k 페이지)에서 지원하는 약 730MB의 영구 페이지가 있습니다.

topas오른쪽 상단 모서리에 있는 "위젯"은 이제 FileSystemCache (numperm)약간 다른 내용을 표시하며 동일한 데이터를 얻습니다 vmstat -v. 이는 계산되지 않은 영구 페이지일 뿐입니다. 즉, 위와 동일하지만 실행 파일 페이지는 제외됩니다.

귀하의 경우 약 350MB(16G의 2.2%) 정도입니다.

어쨌든 캐시가 별로 없군요.

답변2

찾고있는 명령 (IMHO)은 다음과 같습니다.

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB

여기서 주요 옵션은 다음과 같습니다.

  • 'filtertype=working' # 일명, 캐싱 없음;
  • 'segment=off' #실제로 -O를 사용할 때의 기본값
  • 'filtercat=exclusive' # 공유 메모리나 커널 atm을 포함하지 않습니다.
  • 'unit=MB' # 페이지 수를 기준으로 계산하고 싶은 사람은 누구입니까?

-C(명령 이름 관련, 아래 몇 가지 예) 및 -U(사용자 관련)와 같은 다른 옵션도 살펴보는 것이 좋습니다.

++++댓글 시작++++

귀하의 질문에 대한 의견으로 원래 입력하려고 했지만 평판이 부족하여 여기에 새로운 사용자가 된 내용을 삽입하십시오.

귀하의 vmstat 출력은 현재 상황보다 더 많은 것을 알려줍니다. 단일 출력 라인이기 때문에 역사적입니다. pi/po(페이지 공간 페이지 입력/페이징 공간)의 기록을 표시하므로 메모리 문제가 있는 것으로 의심됩니다. 페이지 출력)

관심 있는 다른 열은 fr/sr 열입니다.

  • fr: lrud가 공개한 페이지(가장 최근에 사용되지 않은 데몬, 일명 페이지 스틸러)
  • sr:lrud "이전" 페이지를 찾는 페이지 스캔/검색
  • sr/fr: 해제하기 위해 "스캔"해야 하는 페이지 수를 나타내는 비율 1

제가 생각하기에 혼란스러운 점은 여기에 제공된 pi/po 값(다른 명령의 데이터와 완전히 일치하지 않음)도 여기에서 가동 시간이 아니기 때문에 이러한 숫자를 생성하는 "테스트"가 무엇인지 알기가 어렵다는 것입니다.

  • pi: 페이징 공간 페이지 입력(즉, 페이징 공간에서 애플리케이션 메모리 읽기)
  • po: 메모리를 훔치고 애플리케이션(작업) 메모리를 페이징 공간에 씁니다. 작업 메모리만 페이징 공간으로 들어가거나 페이징 공간에서 나옵니다.

프레젠테이션에서는 pi=22 및 po=7을 표시합니다. 이는 평균적으로 시스템이 데이터를 쓰는 횟수의 3배에 해당하는 빈도로 (정보를 쓴 후) 페이징 공간에서 정보를 읽는다는 것을 의미합니다. 이는 데이터를 터치하기 전에(pi)에서 읽은 다음 다시 도난(sr/fr)(sr/fr)하기 때문에 시스템이 고갈되고 있음을 나타냅니다. 또는 애플리케이션이 데이터를 "대기" 전에 다시 읽어서 액세스 권한이 있는 경우 삭제하세요.

간단히 말해서, 제공된 데이터는 "고통"이 발생한 순간과 "동기화"되지 않습니다. 이는 현재 메모리의 2.2%만이 캐싱에 사용되는 이유를 설명할 수 있습니다(그리고 "컴퓨팅, 로드된 프로그램"이라고도 함).

가상 머신 상태또한 -I(대문자: i, "fi" 및 "fo" 추가 - fileIn 및 fileOut 활동) 및 -w(와이드) 플래그를 사용하여 숫자가 텍스트 헤더 아래에 더 잘 배치되도록 하는 것이 좋습니다.

++++"댓글" 끝

-P(프로세스 뷰)를 사용하여 발췌한 내용을 살펴보겠습니다.

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB | head -15 

    Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
14614630 httpd             21.5     0.06        0     21.5
11272246 httpd             21.4     0.06        0     21.4
12779758 httpd             21.2     0.06        0     21.2
17760476 httpd             20.9     0.06        0     20.9
11796712 httpd             20.8     0.06        0     20.8
17039454 httpd             20.6     0.06        0     20.6
11862240 httpd             20.6     0.06        0     20.6
14680090 httpd             20.5     0.06        0     20.5
10747970 httpd             20.5     0.06        0     20.5
11141286 httpd             20.5     0.06        0     20.5
 4718766 mysqld            13.6     0.02        0     13.6

루트가 아닌 경우에는 해당 환경의 명령만 볼 수 있습니다.

$ svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB
Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
 5505172 svmon             10.7     0.19     0.44     11.4
 6553826 ksh               0.57     0.02        0     0.57
 9175288 ksh               0.55     0.02        0     0.55
12910710 sshd              0.55     0.02        0     0.55
15204356 sshd              0.52     0.02        0     0.52
12779760 head              0.18     0.02        0     0.18

특정 명령을 보고 싶을 수도 있습니다. 따라서 httpd를 보려면 루트로 다시 전환하세요.

요약:

svmon -C httpd -O filtertype=working,segment=off,filtercat=exclusive,unit=MB 
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               227.44     0.69        0   227.44

세부정보: 발췌

    # svmon -C httpd -O filtertype=working,segment=category,filtercat=exclusive,unit=MB >
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               230.62     0.81        0   230.62

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                    230.62     0.81        0   230.62

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  81a203         3 work working storage              m   24.6     0    0    24.6
                   parent=883990
  8b82d7         3 work working storage              m   18.8     0    0    18.8
                   parent=834226
  8b9d37         3 work working storage              m   18.2     0    0    18.2
                   parent=884fb0
  8915f2         f work shared library data          m   2.00     0    0    2.00
                   parent=898373
  89abb3         f work shared library data          m   2.00     0    0    2.00
                   parent=84b9a9
  824ea4         f work shared library data          m   2.00     0    0    2.00

이는 "segment=category"를 잘 표시하지 않으므로 이제 더 간단한 명령(tail)을 사용하고 각 메모리 "세그먼트" 유형의 요약 및 세부 정보를 표시하지만 여전히 "작동" 메모리(일명 캐시 없음)만 표시합니다.

# svmon -C tail -O filtertype=working,segment=category,unit=MB                    
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
tail                                  82.5     52.6     5.12     90.6

...............................................................................
SYSTEM segments                      Inuse      Pin     Pgsp  Virtual
                                      34.1     33.1     2.38     35.8

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m   34.1  33.1 2.38    35.8

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                      0.18     0.02        0     0.18

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  88b4f1         f work working storage             sm   0.09     0    0    0.09
  82d005         2 work process private             sm   0.07  0.02    0    0.07
  8e0c9c         3 work working storage             sm   0.02     0    0    0.02

...............................................................................
SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                      48.2     19.5     2.75     54.6

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
    9000         d work shared library text          m   48.2  19.5 2.75    54.6

답변3

nmon 다음에 "m"을 입력하면 메모리의 유용한 용도를 빠르게 보여줍니다.

ipcs -am

DB2, Oracle 등 많은 애플리케이션에서 사용하는 공유 메모리 - 명령어로 SEGSZ의 크기를 확인한다 ipcs -am. 소유자 열은 일반적으로 SGA의 Oracle 사용자 또는 DB2 버퍼 캐시의 db2inst1과 같은 목적을 알려줍니다.

그리고 프로세스에 따라 다르므로 까다로울 수 있습니다. 동일한 프로그램 파일을 실행하는 모든 프로세스는 읽기 전용 코드 페이지를 공유합니다. 프로세스가 RDBMS 및 Apache와 같은 공통 프로세스에 의해 시작된 후 분기되는 경우 일부 또는 거의 모든 데이터 및 자루 페이지를 공유할 수도 있습니다. 프로세스에 필요하지만 우리에게는 거의 보이지 않는 수십 개의 라이브러리의 경우에도 마찬가지입니다.

이러한 알 수 없는 공유로 인해 일반적으로 모든 프로세스의 모든 메모리를 합산하면 분명히 메모리보다 훨씬 큽니다.

nmon최상위 프로세스에 "t"를 사용한 다음 프로세스 크기를 정렬하기 위해 "4"를 사용하면 프로세스 메모리가 표시됩니다.

  • 크기 KB = 디스크에 있는 프로그램 파일의 크기.
  • 상주 세트 크기 = 메모리 크기(코드와 같은 파일 시스템에 아직 남아 있는 페이지 및 페이징 디스크의 일부 부분 제외)".
  • ResText 열은 Resident Set의 코드 페이지입니다.
  • ResData 열은 상주 세트의 데이터 및 스택 페이지입니다.

답변4

topas명령은 실제 ​​메모리와 컴퓨터 메모리의 비율을 표시합니다. 이는 AIX에서 기본적으로 사용 가능해야 하며 Linux의 그것과 유사합니다(그러나 훨씬 더 많은 정보를 제공합니다) top.

기본적으로 시작 시 topas풍부한 정보(CPU를 사용하는 상위 프로세스, 메모리 사용량 요약 등)가 표시되며, 누르면 h다른 키 및 해당 기능과 함께 인라인 도움말 텍스트가 표시됩니다(예: c몇 번 누르면 다음 단계가 순환됩니다). 다양한 방법으로 CPU 사용량 목록).

관련 정보