반응형


Take a look at document #A4678152 ("Comparing page size for vmstat, top, glance, ps -el").


1. Top reports free memory in 1kb chunks so to get them to match you must divide tops free amount by 4 to get the true number of 4kb pages free and have it match vmstat. In other words, top reports in 1kb pages so these numbers must be multiplied by 4 to get 4kb kernel pages numbers.

2. For vmstat, avm (active virtual pages) and free (size of the free list) memory are reported in 4kb pages sizes.

3. Glance reports 1kb page sizes. This number will often be significantly different from ps -el since glance reports usage of shared memory also.

From the Glance help window for RSS (* PROC_MEM_RES): The number of KB of resident memory for the process. This consists of text, data, stack, as well as the process' portion of shared memory. This value is similar to the SZ field of the ps -el command, except that the ps command shows only data, stack, and text areas, and it reports their sizes in page units rather than KB. On some systems ps reports the virtual rather than
resident size.

4. ps -el reports in 4kb kernel page sizes.



vsz = The size in kilobytes (1024 byte units) of the core image of the process. See column sz, above.
sz = The size in physical pages of the core image of the process, including text, data, and stack space.

Glance RSS = RSS(* PROC_MEM_RES): The number of KB of resident memory for the process. This consists of text, data, stack, as well as the process' portion of shared memory. This value is similar to the SZ field of the ps -el command, except that the ps command shows only data, stack, and text areas.

반응형

'OS > HP-UX::' 카테고리의 다른 글

HP-UX depot 패키지 설치  (0) 2014.06.11
HP-UX 11.11 gcc 설치  (0) 2014.06.11
HP-UX Thread dump 및 프로세스 분석 툴 Glance  (0) 2012.08.22
HP-UX 컴파일러 관련 정보  (0) 2011.12.01
반응형

출처 : http://blog.naver.com/PostView.nhn?blogId=syj0841&logNo=140046786256&widgetTypeCall=true


* depot 패키지로 소프트웨어 설치 및 삭제
1. 패키지를 적당한 곳에 두고 패키지를 등록하는 작업을 한다. 그리고 설치한다.
(내 경우는 /var/spool/sw 아래에 두고 시작한다.)
# swreg -l depot /var/spool/sw/package_name.xxx
# swinstall -s /var/spool/sw/package_name.xxx
# swremove

* depot 패키지 관련 SW List 보기
# swlist
# swlist -a state -l fileset > swlist.txt

* depot 패키지 관련 configuration
#
swconfig

* SAM (Sysam Administrator Manager)
#sam

반응형
반응형



HP-UX에서 acc 컴파일러를 사용하다가 갑자기 포맷하는 일이 생겨서 어쩔 수 없이 gcc를 설치하게 되었다.


gcc를 설치하려니 여러가지 dependencies 패키지가 발생했는데 우선 내가 설치하다가 걸린 패키지들은 아래와 같다.


gettext

libiconv

zlib

libgcc


뭐 버전에 따라서 차이가 있을 수 있지만 swinstall로 설치할때는 zlib와 libgcc만 표시가 되었는데

실제 설치해보니 libiconv, gettext가 걸렸다. 


기본적으로 /usr/gnome/lib 쪽에 설치는 되어 있는 것으로 확인되었지만 해당 부분은 내가 설치한 것도 아니고 링크를 걸어도

정상적으로 인식이 되지 않아 별도로 패키지를 구해서 설치하니 정상적으로 표시되었다.


마지막에 


/usr/lib/dld.sl: Can't open shared library: /usr/local/lib/libintl.sl
/usr/lib/dld.sl: No such file or directory
Abort(coredump)


해당 부분이 발생해서 당황했었지만 이는 gettext 라이브러리를 설치해주면 해결되는 현상.


HP-UX 설치 패키지들은 아래의 경로에서 다운 받았다.

URL : http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801/?ciid=2a08725cc2f02110725cc2f02110275d6e10RCRD (HP공식 - HP 가입해야합니당)

URL : http://hpux.connect.org.uk/

URL : http://mirrors.develooper.com/hpux/downloads.html

URL : http://gnu.april.org/software/gcc/gcc-4.4/buildstat.html


--------------------------------------------------------------------------------------------


위 같이... 설치해 보았지만 골 때리는 현상을 발견했다.

-m32 -m64 와 같은 비트 옵션이 먹지 않는다는 사실.


이게 왜 이런가 하고 한참 동안 삽질 하다가 HP 공식 홈페이지를 통해서 확인한 사실은 내가 영어 해석을 잘 못해서 그런데

대충 해석해보니 32비트용 gcc랑 64비트 gcc를 둘다 깔아야 한다. 라는 얘기로 보인다.


자세한 얘기는 아래의 링크...

http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801/?ciid=2a08725cc2f02110725cc2f02110275d6e10RCRD


There are two separate GCC packages for PA-RISC, one that generates ILP32 code, and another that generates LP64 code. The 32-bit version is installed in the /opt/hp-gcc directory, and the 64-bit version is installed in /opt/hp-gcc64.


심지어 깔리는 위치도 각각 다르다... 

일단 둘다 깔아야 겠다... 나중에 다시 한번 확인해봐야겠다 ㅠ



반응형
반응형

살펴보다가 너무 좋은 자료가 있어서 퍼왔다..

출처 : http://blog.naver.com/bumsukoh/110114572973

 

 

 

이전 포스트에 이어 프로세스 Thread 정보를 확인하기 위한 OS 명령어 활용법 그 두번째로 HP-UX에서 제공하는 명령어에 대해 알아 보도록 하겠습니다.

 

HP-UX에서는 glance로 프로세스에 대한 모든 것을 볼 수 있습니다.

glance 툴은 굉장히 많은 유용한 정보를 제공합니다. 우선 시스템에 대한 전반적인 상태 정보, 프로세스 정보, 네트웍, DISK, 메모리등등.. HP-UX 시스템에 대한 거의 모든 것을 모니터링 할 수 있는 툴이라 할 수 있습니다.

glance에서 java 프로세스와 관련하여 보아야할 주요항목이 프로세스와 프로세스의 Thread, 프로세스 메모리 정보들입니다.

Solaris prstat의 microstat 정보만큼은 아니지만 THREAD에 대한 각종 CPU 사용 정보(System, User, Cswitch, Interrupt, Nice, Nnice, Normal등)를 제공합니다.

 

이러한 glance는 text 모드와 gui 모드, 그리고 advisor 모드를 제공합니다.

터미널에서 바로 사용할 수 있는 text 모드가 가장 많이 사용됩니다. gui 모드는 X-Window 환경에서 사용하며 여러가지 정보를 각각의 창에서 볼 수 있다는 장점이 있습니다. advisor 모드는 필요한 정보를 특정 시간동안 일정한 간격으로 정보를 남길수 있습니다. advisor 모드는 "HP-UX Glance advisor를 통한 CPU 자원 모니터링 방법" (http://blog.naver.com/bumsukoh/110107086979) 포스트를 참조하시면 될 것 같습니다.

glance 명령어 사용법은 다음과 같습니다.

 

# glance -j [갱신간격(초)]

 

저는 개인적으로 "-j" 옵션을 선호합니다. 갱신 간격이 기본이 5초여서 신속한 정보를 보기가 힘든점이 있어 저는 "glance -j 1" 를 통해 1초 마다 갱신하도록 하여 모니터링합니다.

 

그럼 glance의 프로세스 정보와 Thread 정보를 확인하는 방법에 대해 설명하겠습니다.

=========================================================================================

다음은 glance를 수행 시 첫화면입니다.

 

상단에 전체적인 시스템 사용율 정보(CPU, Memory, Disk, Network등)가 나옵니다.

그리고 그 아래에 각 프로세스들에 대한 리스트와 간략한 CPU. Memory, Block 정보들이 나오게됩니다(다른 프로세스명과 User ID는 일부러 삭제했습니다.). 여기서는 java 프로세스(pid 9852)에 대한 모니터링을 설명하도록 하겠습니다.

 

자 그럼 해당 프로세스에 대한 상세 모니터링을 위해 "S" key를 누르고 프로세스 ID를 입력합니다.

 

그러면 위와 같이 해당 프로세스에 대한 상세정보가 출력됩니다.

보시면 아시겠지만 프로세스에 대한 다양한 정보들이 쭉 출력됩니다. 이러한 정보 중에서 다양한 CPU사용율정보(User, System, Interrupt 등), Memory 사용율 정보(RSS/VSS, Fault 등), Wait Reason 등의 정보를 눈여겨 보시면 좋을것 같습니다. 우선은 수치가 높은 부분은 확인을 해 볼 필요가 있겠죠.

 

그럼 여기서 각 Thread에 대한 정보를 확인 하기 위해 "G" key를 누릅니다.

위와 같이 각 Thread에 대한 리스트와 함께 CPU, I/O, Priority, Block 정보를 볼 수가 있습니다.

 

CPU의 경우 현재 사용율과 누적 사용율을 보실 수가 있습니다. 아무래도 누적 사용율이 높으면 일을 많이 하는 Thread라고 판단할 수 있습니다. 그럼 해당 Thread가 무엇인지 확인할 필요가 있습니다. 이렇때 Thread dump를 통해 TID와 매핑하여 확인할 수 있습니다.

위의 그림에서는 6949836 TID가 현재 CPU 사용을 많이 하고 있으며, CPU Time 누적치도 높게 보여집니다. 참고로 CPU Util과 CPU Time의 의미는 다음과 같습니다.

- CPU Util은 해당 모니터링 시간(glance interval이 3초라면 3초동안)동안 해당 Thread가 사용한 전체 CPU 용량(100 * CORE수의 %)에 대한 비율입니다.

- CPU Time은 해당 Thread가 실제로 CPU를 점유한 시간입니다. 보통 CPU의 Scheduling 시간(보통 1 tick이라함)이 10ms이므로 Thread가 한번에 점유할 수 있는 최대 시간은 10ms라고 볼 수 있습니다. 우선순위가 높은 Thread의 경우 CPU 점유 시간이 높을 수 밖에 없겠죠.

 

더욱 상세한 Thread 정보를 보기 위해서는 "I" key를 누르고 TID를 입력합니다.

위와 같이 해당 TID의 Thread에 대한 상세 정보가 출력됩니다. 프로세스의 상세정보 부분과 거의 유사한 정보들이 출력됩니다.

 

이렇게 glance를 통해 프로세스에 대한 전반적인 모니터링 방법에 대해 알아 보았습니다.

많은 분들이 glance 라는 툴은 잘아시는데 사용법, 특히 화면 key에 대한 부분을 잘 모르시더라고요.

저도 이러한 key를 모두 알고 있지는 않습니다. 대신 key help 화면을 위한 key는 꼭 기억하고 있습니다.^^ 화면에서 "h" key를 누르게 되면 다음과

같은 help 화면을 보실 수 있습니다.

 

 

help key만 알고있으며 필요시 key를 확인하며 사용해도 아무 지장이 없습니다.

추가적으로 프로세스에 대한 Memory 정보와 Open File정보, System call 정보에 대한 화면을 보여드리도록 하겠습니다.

 

- Memory 정보

 

프로세스에 할당된 메모리 block들에 대한 메모리 Type, 참조계수, RSS, VSS, 할당 File명등에 대한 정보를 확인하실 수 있으며, 아래에는 프로세스에 대한 유형별(Text, Data, Stack, Shared, Other) 전체적인 사용량이 출력됩니다.

- Open File 정보

 

프로세스가 Open한 FD(File Descriptor)에 대한 정보가 출력됩니다. 실제 File의 경로와 파일명이 잘 출력되지 않지만 Volumne과 inode정보가 있어 파일을 찾는(find -inum 명령 사용)데는 문제가 없습니다.

- System call 정보

 

프로세스가 수행시킨 System call 함수에 대한 항목과 그에 대한 정보들입니다.

위에서는 횟수로는 gettimeofday() 함수가 가장 많이 호출되었으며, Elapsed Time은 ksleep() 함수인것을 알 수 있습니다.

해당 프로세스가 시간과 관련된 내용을 많이 처리하는 프로세스인 것을 알 수 있으며, 이 부분이 염려할 수준은 아닌것으로 보여집니다. ksleep()은 프로세스가 SLEEP으로 빠지게 되면 호출되는 함수로 CPU JOB만 수행하는 프로세스는 아니며, I/O등의 BLOCK(임의적일수도 있음)으로 인해 SLEEP으로 빠지는 경우가 있는 것으로 보여집니다.

 

=========================================================================================

위와 같이 glance를 사용하면 프로세스에 대해 OS가 제공하는 거의 모든 정보를 모니터링 가능합니다.

참고로 glance는 HP-UX의 kernel trace 정보를 활용하여 보여줌으로 굉장히 막강한 기능을 제공합니다.

kernel trace를 위해 caliper나 ktrace등으로 별도로 하지 않아도 어느 정도의 정보는 제공하게 되며 이러한 정보는 시스템을 튜닝 및 trace하는데 상당한 도움이 되는 것이 사실입니다.

 

Solaris(DTrace)나 AIX(trace, curt등) 을 사용해 보셨다면 glance가 제공하는 실시간적인 상태 정보는 거의 환상이라고 할 수 있겠죠.

그 다음으로는 pstack 명령어입니다.

 

이 부분은 Solaris의 pstack과 동일하기 때문에 별도로 설명은 드리지 않겠습니다.

Solaris의 ptack 부분 (http://blog.naver.com/bumsukoh/110114008655)을 참고하시면 되겠습니다.

단, pstack은 HP Itanium 에서 사용가능한 명령어입니다.

 

그외 pfiles, pmap등과 같은 프로세스 관련된 유용한 명령어들이 있습니다만, 여기서는 Java 프로세스와 Thread에 대한 내용에 초점이 두었기에 다루지 않도록 하겠습니다.

 

(다음 기회에 HP-UX의 프로세스 관련 명령어를 통한 모니터링 방법에 대해 설명드리겠습니다.)

다음은 gdb인데요. 굳이 gdb까지 사용하여 뭔가 트러블슈팅하는 경우는 그렇게 많지 않을 것 같은데요.

알고 있으면 상당히 유용한건 사실입니다. (써먹을 기회가 별로 없어서 그렇지만요 ㅠ.ㅠ!)

자, 그럼 gdb를 어디에 써먹을 것인가? gdb는 Unix 프로세스를 debugging하기 위한 툴입니다.

이 툴은 보통 C 언어의 프로그램을 디버깅하는데 사용됩니다.(물론 C++, Fortran, Ada등도 가능합니다.)

Java 기반의 시스템과 프로그램이 많아지면서 HP-UX에서는 gdb에서 Java에 대한 분석도 가능하도록 하기 위한 기능을 제공하게 됩니다.

Java Unwind LIbrary라고 하는것인데.. 자세한 사항은 "HP-0UX 에서 gdb를 이용해 Java 프로세스 core 분석하기 !!" (http://blog.naver.com/bumsukoh/110112408842) 포스트를 참고하시면 될 것 같습니다.

그 외에 프로세스 프로파일링을 위한 막강 프로파일 툴인 caliper 등을 활용할 수 있으나, 굳이 Java기반에서는 이러한 프로파일링 툴까지 쓸 필요는 없을것 같고, 대신 Java를 위한 프로파일링 툴은 알아둘 필요가 있습니다. 이 부분은 이번 연재의 뒷부분에서 다루도록 하겠습니다.

다음 포스트에서는 "OS 툴을 잘 활용하라 !" AIX 에 대해 설명드리도록 하겠습니다.

그럼 건강하시고 다음 포스트에서 뵙도록 하겠습니다.

반응형

'OS > HP-UX::' 카테고리의 다른 글

HP-UX 에서 Glance와 ps로 보는 메모리 내용의 차이점.  (0) 2015.08.17
HP-UX depot 패키지 설치  (0) 2014.06.11
HP-UX 11.11 gcc 설치  (0) 2014.06.11
HP-UX 컴파일러 관련 정보  (0) 2011.12.01
반응형


보통 gcc나 g++은 /user/bin에 있고 cc는 gcc의 링크가 걸려 있다. (내가 알기로는)

HP-UX에서 사용하는 c++ 컴파일러는 aCC인데 해당 컴파일러의 위치는
/opt/aCC/bin에 있다. 물론 /opt/aCC에 lib나 include 관련 내용도 찾아 볼 수 있다.

CC 파일의 경우는 /usr/ccs에 보면 cc 파일이 있다.

----------------------------------------------------------------------------------
어쨋거나 HP-UX에서 사용하는 aCC용 옵션들을 보면 아래와 같다.


컴파일 옵션:

aCC
HP aC++ 컴파일러
$EXTRA_CFLAG
7 HP-UX 플랫폼에서 IA64 및 64비트 지원이 사용 가능한 경우 이 플래그는7 7 +DD64 -AA 7 값을 포함하고, 32비트 지원이 사용 가능한 경우7 7 +DD32 -AA 7 값을 포함합니다. HP-UX 플랫폼에서 PA-RISC 및 64비트 지원이 사용 가능한 경우,7 +DA2.0W 값을 포함합니다. PA-RISC 플랫폼에서의 32비트 지원을 위해 이 플래그에는 값이 포함되지 않습니다.7 7
7
+DD64
7
IA64의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
+DD32
7
IA64의 HP-UX용 32비트 코드를 생성하기 위해 사용되어야 합니다.7
7 7
-AA
7
IA64에서 이름공간 std 및 C++ 표준 라이브러리와 같은 ANSI C++ 표준 기능을 허용합니다.7
7 7
+DA2.0W
7
PA-RISC의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
-ext
"long long" 지원을 포함하는 여러 C++ 확장자를 사용할 수 있게 합니다.
-I$DB2PATH/include
DB2 포함 파일의 위치를 지정합니다. 예를 들면, $HOME/sqllib/include와 같습니다.
-c
컴파일만 수행하고 링크는 수행하지 마십시오. 컴파일과 링크는 서로 다른 단계입니다.

링크 옵션

aCC
링커에 대한 프론트엔드로 HP aC++ 컴파일러를 사용합니다.
$EXTRA_CFLAG
7 HP-UX 플랫폼에서 IA64 및 64비트 지원이 사용 가능한 경우 이 플래그는7 7 +DD64 -AA 7 값을 포함하고, 32비트 지원이 사용 가능한 경우7 7 +DD32 -AA 7 값을 포함합니다. HP-UX 플랫폼에서 PA-RISC 및 64비트 지원이 사용 가능한 경우,7 +DA2.0W 값을 포함합니다. PA-RISC 플랫폼에서의 32비트 지원을 위해 이 플래그에는 값이 포함되지 않습니다.7 7
7
+DD64
7
IA64의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
+DD32
7
IA64의 HP-UX용 32비트 코드를 생성하기 위해 사용되어야 합니다.7
7 7
-AA
7
IA64에서 이름공간 std 및 C++ 표준 라이브러리와 같은 ANSI C++ 표준 기능을 허용합니다.7
7 7
+DA2.0W
7
PA-RISC의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
-o $1
실행 파일을 지정합니다.
$1.o
프로그램 오브젝트 파일을 지정합니다.
utilemb.o
Embedded SQL 프로그램의 경우, 오류 점검을 위한 Embedded SQL 유틸리티 오브젝트 파일을 포함합니다.
utilapi.o
non-Embedded SQL 프로그램의 경우, 오류 점검을 위한 DB2 API 유틸리티 오브젝트 파일을 포함합니다.
7 7
$EXTRA_LFLAG
7
런타임 경로를 지정합니다. 설정되어 있는 경우, 32비트에 대해서는 -Wl,+b$HOME/sqllib/lib32 값이 포함되며 64비트에 대해서는 -Wl,+b$HOME/sqllib/lib가 포함됩니다. 설정하지 않은 경우, 값을 포함하지 않습니다.7
7 7
-L$DB2PATH/$LIB
7
DB2 런타임 공유 라이브러리의 위치를 지정합니다. 7 32비트의 경우: $HOME/sqllib/lib32; 64비트의 경우:7 $HOME/sqllib/lib.7
-ldb2
DB2 라이브러리로 링크합니다.

추가 컴파일러 옵션에 대한 내용은 해당 컴파일러의 문서를 참조하십시오.



또한 HP-UX에서 사용하는 cc용 옵션들을 보면 아래와 같다. cc는 /usr/bin에 위치하고 있다.

컴파일 옵션:

cc
C 컴파일러
$EXTRA_CFLAG
7 HP-UX 플랫폼에서 IA64 및 64비트 지원이 사용 가능한 경우 이 플래그는7 +DD64 값을 포함하고, 32비트 지원이 사용 가능한 경우7 +DD32 값을 포함합니다. HP-UX 플랫폼에서 PA-RISC 및 64비트 지원이 사용 가능한 경우,7 +DA2.0W 값을 포함합니다. PA-RISC 플랫폼에서의 32비트 지원을 위해 이 플래그에는 값이 포함되지 않습니다.7 7
7
+DD64
7
IA64의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
+DD32
7
IA64의 HP-UX용 32비트 코드를 생성하기 위해 사용되어야 합니다.7
7
+DA2.0W
7
PA-RISC의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
-Ae
HP ANSI 확장 모드를 사용 가능하게 합니다.
-I$DB2PATH/include
DB2 포함 파일의 위치를 지정합니다.
-c
컴파일만 수행하고 링크는 수행하지 마십시오. 컴파일과 링크는 서로 다른 단계입니다.

링크 옵션

cc
링커에 대한 프론트엔드로 컴파일러를 사용합니다.
$EXTRA_CFLAG
7 HP-UX 플랫폼에서 IA64 및 64비트 지원이 사용 가능한 경우 이 플래그는7 +DD64 값을 포함하고, 32비트 지원이 사용 가능한 경우7 +DD32 값을 포함합니다. HP-UX 플랫폼에서 PA-RISC 및 64비트 지원이 사용 가능한 경우,7 +DA2.0W 값을 포함합니다. PA-RISC 플랫폼에서의 32비트 지원을 위해 이 플래그에는 값이 포함되지 않습니다.7 7
7
+DD64
7
IA64의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
+DD32
7
IA64의 HP-UX용 32비트 코드를 생성하기 위해 사용되어야 합니다.7
7
+DA2.0W
7
PA-RISC의 HP-UX용 64비트 코드를 생성하기 위해 사용되어야 합니다.7
7
-o $1
실행 파일을 지정합니다.
$1.o
프로그램 오브젝트 파일을 지정합니다.
utilemb.o
Embedded SQL 프로그램의 경우, 오류 점검을 위한 Embedded SQL 유틸리티 오브젝트 파일을 포함합니다.
utilapi.o
non-Embedded SQL 프로그램의 경우, 오류 점검을 위한 DB2 API 유틸리티 오브젝트 파일을 포함합니다.
7 7
$EXTRA_LFLAG
7
런타임 경로를 지정합니다. 설정되어 있는 경우, 32비트에 대해서는 -Wl,+b$HOME/sqllib/lib32 값이 포함되며 64비트에 대해서는 -Wl,+b$HOME/sqllib/lib가 포함됩니다. 설정하지 않은 경우, 값을 포함하지 않습니다.7
7 7
-L$DB2PATH/$LIB
7
DB2 런타임 공유 라이브러리의 위치를 지정합니다. 7 32비트의 경우: $HOME/sqllib/lib32; 64비트의 경우:7 $HOME/sqllib/lib.7
-ldb2
DB2 라이브러리로 링크합니다.

추가 컴파일러 옵션에 대한 내용은 해당 컴파일러의 문서를 참조하십시오.

반응형

+ Recent posts