2011/12/05

솔라리스 11이 발표가 되면서 기존 솔라리스 10과의 차이를 비교한 문서가 있군요.

Oracle Solaris 10 Compared to Oracle Solaris 11 - Transitioning From Oracle Solaris 10 to Oracle Solaris 11

뭐랄까 짜투리 존재하던 상당한 서비스 및 패키지들을 과감하게 버려버린 흔적이 여지없이 보이는 군요. 

몇가지를 들어보면

CDE의 완전 퇴출

오픈 솔라리스에서 예측되었던 거지만 좀 아쉽군요. 한때 IBM, HP, SGI등과 협심해서 MS의 윈도우에 대응하겠다고 만들었던, 나름 중원의 강자들이 최초로 단일화해서 상당히 오랜 기간 유지되었던 윈도우 환경이었는데 말이죠. 이때 단일화하지 말고, 그냥 오픈윈도우를 준수했더라면 어땠을까 하는 상념도 드는 군요.

UFS의 부팅 및 기본 화일 시스템에서 퇴출

그래도 ZFS 볼륨위에서 UFS를 만들 수는 있을 테므로 UFS 화일 시스템 자체는 더 존속하지 않을 까 싶습니다.

점프스타트 기능의 변화 : Automated Installer

이름이 참 오라클스럽다는 생각을 해봅니다. 느낌은 콩글리쉬라고나 할까... 

네트웍 구성의 변경 

가장 눈에 뜨이는 항목인데요. 네트웍은 자동 구성시때에는 netcfg를 사용하고 매뉴얼 구성때에는 dladm과 ipadm을 사용하는 것으로 바뀌게 되었습니다. 띄엄 띄엄 관리해온 솔라리스 관리자 분들 당황하시겠군요.

SV4 패키징의 변화 

SVR 패키징 방식이 없어지지는 않겠지만, 기본 패키징 방식은 IPS용으로 바뀌었죠. 인터넷이 없는 곳이나 인터넷 접속이 안되는 엔터프라이즈 내에서는 별도로 IPS 서버 구성을 해두어야 함을 내포하고 있는 부분입니다. 

프린트 서비스의 절제 

프린트 서비스가 전부 CUPS로 압축되는 군요. 이제 좀 리눅스만큼 프린팅이 될런지 자못 궁금하네요. 프린트 기능을 보면 썬이 얼마나 허술하게 솔라리스를 유지해왔는 지를 여실히 보여주는 아픈 기억입니다.

sys* 툴 대체제 등장

sysconfig 유틸 하나로 기존의 sys-config, sys-unconfig 등등의 뻘짓이 통일 되는 군요. 

Ksh의 버젼 변경 

솔라리스 기본 콘쉘의 버젼이 바뀝니다. 매우 중요한 부분인데요. 로그인하면 바로 손끝에 닿는 기능이기도 하고, 기존에 작성되었던 각종 스크립트들과의 호환성이슈가 있을 수도 있는 부분이기도 하구요. 새로운 콘쉘의 버젼은 ksh93이구요, 반면 사용자들에게 기본 할당되는 쉘은 ksh93이 아니라, bash라는 점입니다. 리눅스와의 호환성에서 중요한 부분인데, 리눅스는 sh 라고 불리우는 기본 쉘이 모두 bash기능이기 때문에 리눅스에서 쉘을 가져왔을 경우 쉘스크립트안의 첫번째 줄인 호출 인식자에 /bin/sh는 /usr/bin/bash로 변경해서 돌려야 합니다.

rdist, rstart등의 퇴출

대신에 rsync, ssh를 쓰는 것으로 바뀌었군요.

 

 

2011/10/05

솔라리스 10 2011.08 버젼의 새로운 기능 리뷰

오라클은 최근에 솔라리스 10 2011년 08 버젼(이하 솔라리스 10 08/11 )을 발표했습니다. 새로운 업데이트 버젼의 개선된 기능에 대한 요약 문서가 함께 발표되었는데요, 간단하게 요약해보겠습니다.

범주 별로 보면 얼추 다음과 같습니다.


  1. 설치 및 관리 기능 
  2. 시스템 성능 개선
  3. 네트워킹 및 보안 기능 개선
  4. 새로운 장치 지원 및 드라이버 개선
  5. 프리웨어 지원 개선


각 분야별 중요한 것만 살펴보면 다음과 같습니다.

1. 설치 및 관기 기능
일단 이번 버젼의 솔라리스 부터 2TB 이상의 메모리를 지원하기 시작했군요. 향후 나오는 대형의 스팍 시스템의 메모리 크기가 2TB를 쉽게 넘을 것을 예측할 수 있는 부분이군요.
솔라리스 10까지 있는 라이브 업그레이드 기능이 ZFS를 보다 더 잘 지원하게 되었습니다. luupgrade를 이용하여 zfs 플래쉬를 설치한다거나, luucreate를 이용하여 새로운 BE를 지원하는 기능이 개선되었습니다. 라이브 업그레이드와 관련된 것들은 매뉴얼을 참고해야 합니다.

2. 시스템 성능 개선
smt_pause(3C)라는 API가 추가된 것이 눈에 띕니다. 하드웨어 기반의 가상 CPU를 제공하는 CMT 혹은 인텔의 Hyper-Thread 시스템의 경우, 실행 중인 애플리케이션이  그 가상 CPU를 사용하지 않는 것이 명시적일 경우 의도적으로 이 라이브러리를 호출함으로써 해당 가상 CPU가 공유하는 실제 코어에 연결되어있는 다른 가상 CPU로 다른 애플리케이션이 더욱 빠르게 코어 진입을 허용해주게 합니다.

아울러, 대량의 스레드를 가진 애플리케이션(프로세스)의 메모리 할당 라이브러리로 적합한 libmtmalloc(3C) API가 개선됨으로써 멀티 스레드의 성능이 더욱 좋아졌다는 군요. 참고로, 싱글 스레드를 사용하는 경우에는 libc의 메모리 라이브러리를, 16 이하의 스레드를 만드는 경우에는 libumem 메모리 할당 라이브러리를 그 이상의 스레드 수를 만드는 경우에는 libmtmalloc을 권고한다는 커멘트가 덧붙여져 있군요.

성능과 관련된 부분중 가장 실질적인 부분은 바로 이 '공유 메모리'관련 변경이 아닌가 생각이 듭니다. 발표문에 따르면, ISM 및 DISM에 관여하는 공유 메모리 기능(생성, 잠금, 잠금 해제, 삭제 방법)을 변경한후 해당 작업들의 성능이 대폭 개선되었다고 되어 있습니다. 이 부분의 메모리는 오라클 데이타베이스가 핵심적으로 사용하는 부분인데, 아무래도 데이타베이스의 성능이 개선되었음을 느끼게 하는 부분이군요.

3. 네트워킹 및 보안
IPFilter의 NAT가 IPv6를 지원하게 되었네요. 계정 암호와 관련해서 변경 사항이 눈에 보이는 데요. 이전 버젼에서는 계정이 잠기게 되었을 때(암호를 연속적으로 틀렸거나, 관리자가 잠궈 버렸을 경우) 다음 세가지 방법으로 잠긴 계정을 풀 수 있었습니다.


  • passwd -u 옵션 사용
  • passwd -d 옵션을 사용하여 암호 항목 삭제
  • 새 암호 지정

이번 릴리즈에서는 마지막 세번째 방법을 지원하지 않게 되었습니다. 잠긴 계정에 대해 암호를 지정하기 위해서는 두번째 방법으로 잠긴 암호를 일단 풀고나서 새로운 암호를 지정하는 방식으로 변경되었습니다.
아울러, root 계정에 대해서 면제되었던 암호 설정 방식이 이번 버젼부터는 일반사용자에게 적용되는 규칙을 동등하게 적용받도록 강제되어서 root에 대한 암호 설정이 강화되었습니다.  root 계정 단순하게 넣으시던 분들은 체감을 바로 하는 부분이겠습니다.

암호화 환경과 관련하여 인상적인 변경은 이번 버젼에서 ssh 서버(sshd)가 chroot()를 지원하기 시작했다는 점입니다. chroot를 사용하게 되면 ssh 를 통해 접속하는 외부 사용자에게 접근할 수 있는 디렉토리의 영역을 제한하게 함으로써 한층 보안이 강화된 모습을 엿볼 수 있겠습니다.

4. 새로운 장치 및 드라이버 개선
눈에 뜨이는 부분이 RDSv3 RDMA의 지원인 것 같습니다. 이번 버젼부터 오라클 솔라리스는 오라클 데이타베이스 11g가 요구하는 RDSv3 RDMA인터페이스를 지원합니다.  

오라클은 RDS(Reliable Datagram Sockets)용 RDMA(Remote Direct Memory Access) 인터페이스를 정의했습니다. 이러한 인터페이스는 OFED(OpenFabrics Enterprise Distribution) 버전 1.3 이후 Linux 플랫폼에서 제공되었습니다. 이 기능은 주로 InifiniBand 전송에 사용됩니다. RDSv1에서 RDS 드라이버는 userland에서 커널로 데이터를 복사하는 방식으로 원격 대상으로 데이터를 전송합니다. 이와 같은 방식으로 대용량 데이터 복사는 시간과 비용을 많이 소비합니다. RDSv3은 InifiniBand를 지원함으로써 DMA(direct memory access)로 응답 시간을 줄여서 이 문제를 해결합니다.

5. 프리웨어
흥미로운 지원이 추가되었습니다. 바로 오픈소스에서 많이 사용되는 Apache C++ Standard Library 지원이 추가된 점인데요.  Apache C++ Standard Library(stdcxx)는 ISO/IEC:14882:2003 표준(프로그래밍 언어 C++)과 완전히 호환되도록 C++ 표준 라이브러리를 구현한 것입니다. 이 라이브러리는 현재 기본 Oracle Solaris libCstd.so.1 또는 STLport4 표준 라이브러리 구현과 함께 사용할 수 없는 수많은 표준 C++ 라이브러리 기능에 프로그래밍 방식으로 액세스합니다. Oracle Solaris Studio 12 Update 1부터는 Oracle Solaris Studio C++ 컴파일러가 Apache C++ Standard Library를 지원합니다.

원문 참고: http://download.oracle.com/docs/cd/E24846_01/html/E23296/gijtg.html#scrolltoc

2011/09/21

솔라리스에서 병목 추적(LatencyTop for Solaris modified by Bonghwan)

TCP Write 부분에 대해서는 오류가 있어서 소스에서 삭제했습니다. 따라서, 아래 그림에 있는 TCP Write와 같은 부분은 더 이상 출력되지 않습니다. 추후 별도로 TCP status를 하는 스크립트를 소개해보겠습니다.

---
곧 출시를 앞두고 있는 솔라리스 11의 프리젠테이션 자료를 보니, LatencyTop 라는 스크립트를 언급하고 있더군요.  검색을 해보니 리눅스 시스템에서 지연 부분을 찾기 위해서 인텔이 만들었던 LatencyTop이라는 유틸리티를 흉내내기 위하여  솔라리스 커널 엔지니어인 브라이언 칸트릴(Bryan Cantrill)이 만들어 놓은 스크립트인 듯 하더군요.

인텔 만들어서 오픈한 LatencyTop의 자료는 http://www.latencytop.org/ 에서 참고할 수 있으며, 관련 소스도 다운 받을 수 있습니다. 처음에는 여기의 소스도 다운받아서 솔라리스에서 컴파일 해보려 했으나 불행하게도 소스코드 내에서 리눅스 만의 화일 시스템 debugfs을 마운트하는 것 때문에 컴파일이 불가능했습니다.

여하튼 브라이언 덕분에 솔라리스용을 손쉽게 구할 수 있었습니다.


다음은 여기서 다운받은 LatencyTop 원본의 출력의 예입니다.


그렇지만 다운 받아서 출력을 해보니 뭔가 개인적으로 좀 불만스럽더군요. 출력도 다소 플렌들리하지 않고, 보고 싶은 부분도 추가가 필요해 보였습니다. 그래서, 약간의 수정을 가하여 다음과 같은 개선된 LatencyTop을 만들어 봤습니다.

새로 개선된 LatencyTop은 일단 가로줄을 더 넓게 쓰도록 했고, Mutex Lock과 같은 주요 병목 포인트는 물론이거니와 아울러서 Mutex Spin과 TCP 데이타 전송시 걸리는 소요 시간들도 보이도록 했습니다. 

LatencyTop을 실행하면 6개의 컬럼이 나타나는데, 실행후 5초간 샘플링을 한 후 그 결과를 좌측으로 부터 프로세스의 이름, 프로세스 ID, 관련 병목 포인트, 그 병목 요소 호출수, 각 병목 요소 처리 최대 시간과 평균시간이 차례로 출력이 됩니다.  아래와 예를 참고하시기 바랍니다.


-Process-            -PID-  -Cause-                   -Count-      -Maximum-      -Average-
notification-dae    [1631  ] mutex spin                      1         1 usecs         1 usecs
wnck-applet         [1575  ] mutex spin                      1         2 usecs         2 usecs
xscreensaver        [1584  ] mutex spin                      1        26 usecs        26 usecs
firefox-bin         [1709  ] Unlink file                     1       102 usecs       102 usecs
Xorg                [1410  ] mutex lock                      1       129 usecs       129 usecs
gnome-terminal      [1647  ] mutex lock                      1       141 usecs       141 usecs
xscreensaver        [1584  ] mutex lock                      1       170 usecs       170 usecs
Xorg                [1410  ] mutex spin                      2        22 usecs        11 usecs
dtrace              [2090  ] mutex spin                      4       165 usecs        43 usecs
pageout             [2     ] mutex lock                      4      1521 usecs       462 usecs
gnome-terminal      [1647  ] mutex spin                      5       149 usecs        39 usecs
firefox-bin         [1709  ] mutex lock                      9       562 usecs       158 usecs
firefox-bin         [1709  ] TCP write                      10      1502 usecs       288 usecs
firefox-bin         [1709  ] Reading from file              10     20863 usecs      3886 usecs
sched               [0     ] mutex lock                     28       214 usecs        65 usecs
firefox-bin         [1709  ] mutex spin                     41        49 usecs         6 usecs
zpool-rpool         [5     ] mutex lock                     51      3453 usecs       255 usecs
sched               [0     ] mutex spin                     67      1225 usecs        29 usecs
pageout             [2     ] Writing to file                83     22971 usecs      1507 usecs
pageout             [2     ] mutex spin                     98       994 usecs       132 usecs
zpool-rpool         [5     ] mutex spin                    332       309 usecs        11 usecs


분석을 위해서는 이 결과에서 어떤 병목 요소의 호출수가 가장 많은가( 위의 예에서는 zpool-rpool )와 어떤 요소의 최대 지연시간이 많은 지를 보아야 합니다. 지연 시간 관점에서 위의 예를 살펴 보게 되면 pageout과 firefox-bin의 지연 시간이 긴 것을 할 수가 있는데, pageout은 화일 쓰기에 대한 병목을 유발하면서 호출당 최대 지연 시간이 22971/83 = 276.7590361445783 microseconds 인 반면에 firefox-bin은 화일 읽기를 위한 행위를 하고 있고, 호출당 최대 지연시간이 2086.3 microseconds 임을 알 수가 있습니다. 

따라서, 단위 호출당 관점에서 튜닝을 접근해야 한다면 이 시스템은 firefox가 접근하는 스토리지를 개선하거나 firefox가 사용하는 메모리를 대폭 늘리거나 하여 보다 건전한 환경을 구축할 수 있다고 할 수 있겠습니다. 중요한 것은 지금 현재 이 시스템이 결코 느리거나 문제가 있는 것은 아니라는 것입니다.

부하가 일시적으로 몰리거나 하여 증폭되었을 때같은 최악의 경우를 생각했을 경우를 대비하여 사전에 준비하기 위한 데이타로 바라봐야 하며, 아울러, 이와 같은 샘플링을 여러번 반복하여서 나온 값을 기준으로 가장 중요한 것부터 환경을 개선하는 기반 데이타로 사용되어져야 합니다. 

추가로 위 환경에서 발생한 pageout은 firefox-bin이 많은 읽기를 시도하기 때문에 발생하는 것임을 추측해볼 수 있는데(다른 Dtrace script로 추가 증명을 해볼 수 있습니다.) 따라서,결과적으로 본다면  화일에 대한 읽기와 쓰기를 동시에 개선해야 하는 것이 보다 더 중요하다고 생각해볼 수 있습니다. 결국 보다 좋은 스토리지의 확보가 더욱 중요하다는 것을 추리해볼 수가 있겠습니다.

수정된 LatencyTop의 소스는 다음과 같습니다.


#!/usr/sbin/dtrace -Cs


/*
#
# latencytop is monitoring hot places of bottlenecks
# This was written by Bryan Cantrill in 2008
# Bonghwan Kim, have updated a little bit to have more comfortable output. 2011
#
#
*/


#pragma D option quiet


#define RW_READER 0x1


dtrace:::BEGIN
{
printf("######\n");
printf("###### This script is written by Bryan Cantrill(2008) and updated by Bonghwan Kim(2011)\n");
printf("######\n");
printf("Tracing... Hit Ctrl-C to end.\n");
}


/*
* Reading from file
* Writing to file
*/
io:::start
{
start[args[0]->b_edev, args[0]->b_blkno] = timestamp;
self->iostart=1;
}


io:::done
/self->iostart && start[args[0]->b_edev, args[0]->b_blkno]/
{
this->delta = timestamp - start[args[0]->b_edev, args[0]->b_blkno];
this->cause = args[0]->b_flags & B_READ ?
"Reading from file" : "Writing to file";
@lcount[execname,pid,this->cause] = count();
@lmax[execname,pid,this->cause] = max(this->delta);
@lavg[execname,pid,this->cause] = avg(this->delta);
start[args[0]->b_edev, args[0]->b_blkno]=0;
self->iostart=0;
}


/*
* mutex lock
*/
lockstat:::adaptive-block
{
@lcount[execname,pid,"mutex lock"] = count();
@lmax[execname,pid,"mutex lock"] = max(arg1);
@lavg[execname,pid,"mutex lock"] = avg(arg1);
}


/*
* mutex spin
*/
lockstat:::adaptive-spin
{
@lcount[execname,pid,"mutex spin"] = count();
@lmax[execname,pid,"mutex spin"] = max(arg1);
@lavg[execname,pid,"mutex spin"] = avg(arg1);
}




/*
* rwsem read lock
* rwsem write lock
*/
lockstat:::rw-block
{
this->cause = arg2 == RW_READER ?
"rwsum read lock" : "rwsum write lock";
@lcount[execname,pid,this->cause] = count();
@lmax[execname,pid,this->cause] = max(arg1);
@lavg[execname,pid,this->cause] = avg(arg1);
}


/*
* Unlinking file
*/
syscall::unlink:entry
{
self->start_unlink = timestamp;
}


syscall::unlink:return
/self->start_unlink/
{
this->delta = timestamp - self->start_unlink;
@lcount[execname,pid,"Unlink file"] = count();
@lmax[execname,pid,"Unlink file"] = max(this->delta);
@lavg[execname,pid,"Unlink file"] = avg(this->delta);
self->start_unlink = 0;
}


/*
* sync system call
*/
syscall::syssync:entry
{
self->start_syssync = timestamp;
}


syscall::syssync:return
/self->start_syssync/
{
this->delta = timestamp - self->start_syssync;
@lcount[execname,pid,"sync system call"] = count();
@lmax[execname,pid,"sync system call"] = max(this->delta);
@lavg[execname,pid,"sync system call"] = avg(this->delta);
self->start_syssync = 0;
}


/*
* fsync system call
*/
syscall::fdsync:entry
{
self->start_fdsync = timestamp;
}


syscall::fdsync:return
/self->start_fdsync/
{
this->delta = timestamp - self->start_fdsync;
@lcount[execname,pid,"fsync system call"] = count();
@lmax[execname,pid,"fsync system call"] = max(this->delta);
@lavg[execname,pid,"fsync system call"] = avg(this->delta);
self->start_fdsync = 0;
}




/*
* Print output summary
*/




profile:::tick-5s,
dtrace:::END
{
/* normailze nanoseconds samples into microseconds samples */
normalize(@lmax, 1000);
normalize(@lavg, 1000);


printf("%-20s %-6s %-20s %12s %14s %14s\n", "-Process-","-PID-","-Cause-", "-Count-","-Maximum-","-Average-");
printa("%-20s[%-6d] %-20s %@12d %@9d usecs %@9d usecs\n", @lcount, @lmax, @lavg);
printf("\n");


trunc(@lcount);
trunc(@lmax);
trunc(@lavg);
}

2011/07/22

페이스북의 클라우드 아키텍쳐

최근 일어나고 있는 최신의 유행은 Hadoop이라고 할 수 있겠습니다. Hadoop은 대규모 병렬 화일 시스템 처럼 사용이 될 뿐 아니라, MAP & Reduce의 기능을 활용하여 저장되는 텍스트 화일들의 실시간 분석 기능을 제공하기 때문에, 일석이조의 관점에서 많이 회자되고 있습니다.
그런데, 이런 Hadoop 기반의 분석(Analytics) 기능이 다수의 장애 포인트와 아울러 실제 실시간 분석으로 제공하지 못하는 점 때문에 대형의 서비스 업체 : 구굴, 페이스북, 야후가 분석 기능을 쓰지 않는 다는 얘기입니다.
실시간 분석을 하려면 아무래도 메모리에 모든 것을 두어야 하는데, 특히 카운터를 메모리에 두면 유리할 수 있겠죠. 이 기능을 위해서 Facebook은 memcached를 이용해서 구축했다고 되어 있네요. 그러나, 이런 memcache 기반의 환경은 1%장애만 나도 분석 결과에 영향을 끼치기 때문에 고가용이 중요한데 facebook의 구성은 고가용은 아니라고 되어있네요.
아울러 컴퓨팅에서는 '쓰기IO'가 매우 중요한데, 병렬 쓰기를 통해서 성능을 높이기 위해서 카산드라를 Hbase의 플랫폼으로 쓰고 있다는 점을 언급하고 있네요.
Nati Shalom's Blog: Architecture

링크: http://natishalom.typepad.com/nati_shaloms_blog/architecture/

2011/07/14

[클라우드 컴퓨팅] 이메일과 클라우드 컴퓨팅

이메일 서비스는 사실 단순한 서비스라서 클라우드 컴퓨팅화 하기가 다소 애매하다고 생각할 수 있는데, 아래 회사는 멋지게도 벌크 이메일 서비스를 클라우드 컴퓨팅화해서 제공을 하는 군요. 대량 이메일 발송 서비스를 위한 플랫폼 애즈어 서비스(Platform as a service)를 제공하고 있는 Elastic Email 이라는 서비스를 소개합니다.

회사의 포털 사이트는 http://elasticemail.com/ 입니다.

이 회사는 서비스 사용자로부터 미리 약속되어져 있는 API를 통해서 이메일과 관련 파라메터(발송 수, 대상,예약등) 접수를 받아서 대량 발송을 대행해주는 역할을 한다고 할 수 있습니다. 이런 이메일 대량 발송서비스는 이미 커머셜 단계에서는 상당히 발전되어 있는데, 거의 모든 대부분의 서비스는 전용 클라이언트나 해당 웹사이트에 기 저장된 정보를 이용해서 메일을 발송하도록 되어 있습니다만, 이 회사는 사용자의 웹 애플리케이션에서 API를 통해서 관련 데이타의 접근과 주문을 할 수 있도록 허용하고 있다는 점입니다. 이전 전용 클라이언트를 활용하는 방식이 SaaS 모델이라면 API를 통해서 접속의 유연성을 제어하는 것은 PaaS의 모델이라고 할 수 있습니다.

서비스 제공자는 API를 통해서 발생된 트랜잭션들을 모두 저장해놓음으로써 향후 과금을 시도하는 방식이겠습니다.

클라우드 컴퓨팅의 관점에서 보면 이메일 서비스의 상당히 발전된 형태를 취하고 있으며, SaaS와 아울러 PaaS를 어떻게 취급해야 하는 지, 기존의 SaaS 모델을 어떻게 하면 PaaS 모델로 확장할 수 있는 지를 보여주는 좋은 예라고 할 수 있을 듯 합니다.

아울러 이 링크는 최근 미국에서의 클라우드 컴퓨팅 현황입니다. 참고가 될 듯 합니다.


2010/05/24

미국 정부의 클라우드 컴퓨팅

무려 일년에 76조원을 투자하는 전 세계에서 가장 큰 IT 고객인 미국 정부가 2009년 클라우드 컴퓨팅 시작을 선언하고 그 이후의 과정과 여러 가지 내용들을 담은 보고서를 출시했습니다. 이 보고서는 전 공공영역에 걸친 클라우드 컴퓨팅에 관한 백서 수준으로 우리나라 공공기관에도 큰 지침이 될 듯 합니다.

공공 시장에서 비즈니스를 하시는 분들은 필히 참고하셔야 할 듯 하네요.
Chief Information Officers Council - State of Public Sector Cloud Computing


2010/04/20

버추얼박스의 디스크의 크기를 늘리는 법

메모리 4GB 노트북의 오픈솔라리스 위에서 윈도우즈를 가장 잘 사용할 수 있는 방법은 역시 버추얼박스인 것 같습니다.
버추얼박스는 버젼업을 하면서 매우 극적으로 나아진다는 것을 직접 느낄 수 있는데요 그러다보니 더욱 자주 사용하게 됩니다.
더욱 자주 사용하다보니, PC에서 만나는 여러가지 문제를 여기서도 보게되는 군요.

보통 테스트용으로 만들때 윈도우즈 XP 게스트 C: 드라이브의 크기를 10G로 만들었는데, 오피스에 아래한글에 이것 설치하다보니 결국 문제가 생기는 군요. 아래 링크 내용은 이런 경우 C: 드라이브의 크기를 늘려주는 방법입니다.

보다 정확하게는 더 큰 사이즈의 새로운 드라이브를 만들어서 기존의 C: 내용을 그대로 복사한 후 새드라이브를 이용하여 부팅해서 사용하란 얘기이구요. 이때 복사를 위해서 사용되는 툴은 GParted라는 툴입니다. 뭔가 크기를 멋지게 그냥 키우고 싶은 마음이 굴뚝같은데 그런 방법은 없는 것 같군요. 애초부터 볼륨 매니저를 사용해서 구성했어야만 가능했을 일인것 같기도 합니다.

How to resize a VirtualBox disk partition - my-guides.net
참고로 오픈솔라리스에서 Virtual Box의 디스크 이미지를 ZFS에 저장하려고 하면, 반드시 한가지 사항을 주의해야 하는 데요. 모든 메모리를 ZFS 캐쉬로 먹어버리려고 하는 ZFS 덕분에 Virtualbox의 게스트는 성능이 좋아질 지 모르나 모든 메모리의 소진으로 인한 시스템 전반의 성능이 나빠질 수 있게됩니다.

따라서, 이 경우 처럼 zfs상에 대 규모 화일이 있는데 read/write가 random으로 일어나는 경우에는 해당 이미지들(여기서는 vdi)을 별도의 zfs 화일 시스템에 담고, 이 화일 시스템의 속성에서 캐쉬를 비활성화합니다. (primarycache=none, secondarycache=none) ufs 상에서 directio와 유사한 효과를 가지게 됩니다.


2009/11/27

솔라리스 이진 호환성 힘의 장단점


썬은 유난히도 애플리케이션의 호환성을 중요하게 생각해온 회사였다. 사실 경쟁사로 있는 H혹은 I사는 새 플랫폼이 나오면 같은 CPU 아키텍쳐를 상속받은 플랫폼이면서도 새로 컴파일을 요구하는 경우가 대부분이었다. 반면에 솔라리스는 내가 봐온 10여년째 이진 화일 호환성을 주요 장점으로 내세워 왔다. 동시에 타 경쟁사의 컴파일 어게인 정책에 대해서는 매우 후진적임을 늘 강조해왔다고 할 수 있다.

개발자로서의 경험을 가진 나로써는 '새장비 들어왔을 때 컴파일 좀 다시 한번 한다고 해서 문제가 될까 ? ' 하고 생각한 적이 있다. 그러니까, 썬에서 중요하게 여겼던 이진 화일 호환성에 대해서 큰 메릿을 못느꼈던 것이다. 그러다, 시간이 지남에 따라 많은 자신의 주요 업무가 증가하고, 봐야할 장비가 늘어나면서, 혹은 지금은 없어졌지만 예전 코드가 남아 있는 경우에 새로운 장비에 예전 이진 화일을 그냥 사용할 수 있는 것이 얼마나 커다란 생산성을 제공하는 지를 새삼스럽게 깨닫곤 한다. 테스트를 해야한다거나 특정 사실만 확인하면 될 급할 때 컴파일러 준비해야 하고 버젼 확인해되고 컴파일하고 디버깅하고 등등 이런 준비를 한다는 것이 생각보다 커다란 부하임을 느끼게 된 것이다. 만약 이럴때 운영체제가 예전 이진 화일의 호환성을 유지해준다면 그냥 돌려보고 확인하면 되는 경우도 많기 때문이다.
그러다 보니, 나를 포함한 많은 솔라리스 사용자들은 어느새 이런 주요 기능에 젖어있게 됐고 너무나 당연한 기능으로 생각하게 됐다. 그러다 보니, 여기서 발생하는 부작용이 나타났다.

8년째 같은 바이너리를 사용해오고 있는 고객이 있었다. 그 사이에 장비는 종류만 4번 바뀌었다.
어느날 나에게 연락을 해서는 클럭도 높고 새로나온 장비를 샀는데, 빠르긴 한 것 같은데 확 빨라졌다는 느낌을 못 받겠다. 왜 그런지 알 수 있겠나라는 요청을 해오셨다. 사실 이런 경우에는 개발자 컨설팅 서비스를 사셔야만 지원을 받을 수 있는 문제인데, 연간 서비스 비용으로 10억씩 내시는 분들이기 때문에 그냥 컨성팅 해드리기로 했다 ^^;

고객분의 애플리케이션을 확인해봤다. 시스템 사용 상태로 봐선 나쁘진 않았다. 하지만, 업무 시작하는 시간대에 부하가 증가(CPU usage 100%)해서 지연시간이 꽤 길었다가 부하가 떨어지면 정상적인 현상대로 내려오는 상황이었다.


사실 언뜻 생각해보면 시스템의 성능 대비 부하가 많아서 생긴 지극히 정상적인 상황이라고 할 수 있다. 그러나, 이런 현상에서 시스템의 업무 부하율을 평균 50% 이하로 유지해야 하는 고객의 입장에서는 장비를 추가로 구매해야 하는 상황이었다.

사실 벤더에서 일하는 엔지니어의 입장에서 보면 그냥 장비를 추가 구매하실 것을 권고하는 것이 맞을 수 있겠다 싶었다. 그런데, 고객분은 내부적으로 그럴 입장이 아니었던 모양이다. 내부적으로 테스트를 충분히 하셔서 새 기종이 적정 기종이라고 주장해왔고, 새로 구매한 플랫폼의 개수가 적정수라고 보고했던 것이다.

그런데, 막상 부하를 올려보니 위 그림 처럼 나온 것이다. 따라서, 추가 구매를 하면 당신 자신이 매우 곤란한 입장이고, 추가 구매를 안하자니 서비스가 불안한 상황이 된 것이다. 그래서 나를 부르게 되었던 것이다.

나는 일단 개선의 여지가 있는 지 확인해보기로 했다. 마침, 서비스 팀에서 이제는 상당히 보편화된 dtrace를 이용해서 애플리케이션의 락(lock)을 분석한 보고서가 있었다. 내 시간을 많이 덜어준 셈이다.

아래는 dtrace 결과를 통해서 보고된 내용중 일부이다.

===== Count ========

_write 410

.....

_save_nv_regs 2100

strcmp 5594

memcpy 8572

====== Time [Nano Second] ========

memcpy 51474200

_write 204638300

__pollsys 3209242900

----------- dtrace end ---

보고서를 보니 해당 서비스 애플리케이션이 memcpy, strcmp를 많이 호출하는데다 소요 시간이 가장 긴 부분임을 알 수 있었다. '음... 메모리 오퍼레이션을 개선해볼 수 있겠는데' 라는 생각이 즉각적으로 들었다.

사실 해당 애플리케이션은 컴파일된지 근 8년이나 되는 오래된 애플리케이션이었다. 이전에 있던 플랫폼은 SF4900인데 반해 새 장비는 M3000 장비였다. 그렇다면 같은 스팍 구조의 CPU이긴 하지만 두개의 플랫폼은 클락을 제외하곤 캐쉬에서 큰 차이가 있다.

너무나 당연하게 캐쉬가 다르면 메모리 오퍼레이션에서 상당한 오버헤드가 만들어질 수 있다. corestat이나 cpustat으로 더 자세하게 분석할 수 있겠지만 확신이 들었기에 그런 과정을 생략하고 보유하고 있는 애플리케이션의 재컴파일을 요구했다. 썬스튜디오 12U1으로 컴파일했다.

단순히 재컴파일만 했는데 다음과 같은 놀라운 결과를 보였다. 부하가 몰렸을 때에도 고작 100% 밑을 돌았고, 전체 평균으로는 50%를 하향하는 매우 안정적인 상황으로 반전되었다. 고객은 당연히 놀라워하고 기뻐했다.


사실 이런 경우는 매 새로운 플랫폼이 들어올때마다 재컴파일을 했으면 생기지 나타나지 않았을 문제이다. 그러나, 현업에서는 몰리는 부하도 감당하기 힘든데, 장비가 들어올때마다 형상관리를 새롭게 변경하는 것도 쉬운일이 아닌 것이다. 그래서 솔라리스의 이진 화일 호환성 지원은 빛을 발해왔던 것이다. 그러나, 위와같은 부작용도 간혹(8년에 한번정도) 발생하긴 한다.

좋다고 해야할 지 나쁘다고 해야 할 지 헷갈릴 수도 있겠다.

간혹 고객분들 중에는 나름 테스트를 하기 위해서 여러 장비를 놓고 테스트를 하는 경우가 있다. 경쟁사에서는 무조건 재 컴파일을 요구해서 재컴파일을 해서 테스트하시고, 솔라리스에서는 잘 도니까 그냥 테스트하신단다. 얼핏 들으면 썬에 매우 우호적으로 들리는데 결과가 솔라리스에 불리하게 나오면 짜증내신다.... 컴파일할 때 같이 하셔서 하시지...

위 컴파일 시 사용되었던 컴파일러는 썬스튜디오 12 업데이트 1이다.
적용했던 컴파일 옵션은 다음과 같다.

32bit:
CFLAGS= -g -fast -xO3 -xtarget=native -D_POSIX_PTHREAD_SEMANTICS

64bit:
CFLAGS= -g -fast -xO3 -m64 -xtarget=native -D_POSIX_PTHREAD_SEMANTICS

여기에서 중요한 옵션은 -fast 옵션이며, 그외 -xO3는 이기종 스팍 플랫폼간 호환성(플로팅 포인트 연산간 호환성)을 위해서 덜 최적화하는 옵션이다. -xtarget 옵션은 -fast 매크로에 포함되어 있는 것이나 native 플랫폼 최적화를 명시한다는 의미에서 넣어졌다. 만약 해당 최적화가 다른 구 스팍 플랫폼에서 호환성 문제를 야기한다면, -xtarget=native를 -xtarget=generic 으로 변경해서 컴파일해야 한다.

2009/10/19

사용 예를 통한 Dtrace 학습

솔라리스 시니어 엔지니어인 Ricky의 글입니다.
몇가지 사례를 통한 유용한  Dtrace 스크립트와 어떻게 해석했는 지 에 대한 과정이 있습니다.

특이한 것은, 매우 일찍이 멀티코어/하드웨어 스레드 개념을 발표한 썬 이후로 하드웨어 멀티 스레드개념이 보편화 되어 가고 있는 시점에서 보면, 멀티 스레드 상에서 어떤 코딩이 멀티 코어 시스템을 잘 활용할 수 있는 지, 어떤 코딩이 시스템에 오버헤드를 많이 주는 지등이 점점 명료해지고 있습니다.

아래의 사례를 기준으로 본다면, memset을 쓰는 것보다 각각의 byte에 0으로 초기화하는 것이 빠르고, condition variable 사용시에는 broadcast보다 condition signal을 사용하는 것이 스레드가 많아질 수록 생기는 오버헤드를 줄여준다는 것을 dtrace로 보여주고 있습니다.  또한 스레드가 많은 경우에는 메모리 할당시 슬라브 혹은 멀티스레드 전용 메모리 할당 기법을 쓰는 것이 매우 효율적이라는 것도 보여주고 있습니다.

애플리케이션 개발자들에게 많은 것을 시사하는 것이라고 할 수 있습니다.

Tutorial: DTrace by Example


2009/07/16

zfs의 화일 시스템 에러(permanent error)와 패키지 수정 (pkg fix)

최신 버젼의 zfs를 쓰면서 우연히 알게 된 것은 화일 시스템의 오류가 왕왕 생긴 다는 점입니다.
아마도, 랩탑이기 때문에 파워가 없어서 그냥 꺼졌거나 하면서 생긴 것으로 보이는데.. 생각보다
이런 오류가 생각보더 훨씬 자주 나타난다는 게 약간 맘에 걸립니다. 이게 정상인지..

간혹 fmstat나 zpool을 보면 아래와 같이 오류가 발생하는 경우가 있습니다.

$ pfexec zpool status -xv
  pool: rpool
 state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: scrub completed after 4h46m with 6 errors on Wed Jul 15 20:19:19 2009
config:

    NAME        STATE     READ WRITE CKSUM
    rpool       ONLINE       0     0     7
      c5d0s0    ONLINE       0     0    55  291K repaired

errors: Permanent errors have been detected in the following files:

        rpool/export/home/bhkim:<0x2d071>
        rpool/ROOT/opensolaris-2@install:/usr/lib/amd64/libcspi.so.0.10.11
        rpool/ROOT/opensolaris-2@install:/usr/bin/w3m
        rpool/ROOT/opensolaris-2@install:/usr/bin/what
        rpool/ROOT/opensolaris-2@install:/usr/bin/wracct
        rpool/ROOT/opensolaris-2@install:/usr/bin/wtpt

오류라고 나온 화일을 실행시도 해봤더니, 정말 I/O 에러라고 나옵니다. ㅡㅡ;

bhkim@vaio-bhkim:~/MyVideos$ wracct
bash: /usr/bin/wracct: I/O error

패키지 수정을 시도해야 겠습니다. 일단 해당 화일이 어떤 패키지에 속하는 지 알아야 하는데 다음과 같이해서 알아낼 수 있습니다.
#pkg search /usr/bin/wracct
SUNWcs라는 것을 얘기해주는데, 결과가 길어서 여기서는 생략합니다.

일단, 오류로 나온 다른 화일의 패키지로 검사를 해봤습니다.
#pkg fix SUNWgnome-a11y-libs

#
엥... 아무런 무언가가 없습니다. 오류가 없이 verify 했다는 얘기입니다.
여기서 오픈 솔라리스 에서 2% 안타까운 것은 zfs에서 해당 화일이 오류가 있다고 나왔다면
pkg 에서도 오류임을 자동으로 감지해서 fix할때 fix해주었으면 하는데, pkg는 화일의 목록만 검사하는 듯 하군요.
오류 없다고 지나가는 것을 보니까 말이죠.

그렇다면, 해당 화일을 삭제하고 fix를 시도하면 감지할 것으로 예상하고 이번에는 실제 작업 대상 패키지에서 작업해봤습니다.

$ pfexec bash
# rm /usr/bin/wracct
일단 삭제했습니다.

# pkg fix SUNWcs
Verifying: pkg:/SUNWcs                                          ERROR  <--- 오.. 역시 에러가 나오네요.
    file: usr/bin/cat
        Warning: package may contain bobcat!  (http://xkcd.com/325/)   ;; 근데 뭔 에러가... 이리 많지 ㅡㅡ;
        file: var/spool/cron/crontabs/root        ..... --
        Group: 'root' should be 'sys'
        file: etc/nsswitch.conf                   ..... ||
        Group: 'root' should be 'sys'
        file: usr/bin/wracct                      ..... //             ;; 아하.. 화일이 없음을 감지했습니다.
        File does not exist
        hardlink: etc/rc2.d/S82mkdtab             ..... //
        No such path etc/rc2.d/S82mkdtab
Created ZFS snapshot: 2009-07-16-00:42:02         ..... //             ;; 스냅샷을 찍어주고 수리들어가네요.
Repairing: pkg:/SUNWcs                                      
PHASE                                          ITEMS
Indexing Packages                            481/670




2009/07/15

죽어버린 X-window (X window crash)

오픈 솔라리스 2009.06 버젼으로 업데이트해서 잘 사용하고 있었습니다.
너무 문제가 없어서 그랬는지, 어제는 악마의 속삭임에 빠져서, 이것 저것 업데이트를 했습니다.
pkg로 업데이트를 하면 괜찮았을 텐데, 별개로 컴파일해서 인스톨하고 했습니다.

제가 설치한 화일들은 잘 돌은 듯 했습니다.

문제는 오늘 발생. 모니터를 붙여서 화면 클로닝으로 설정하려고 했습니다. nVidia configuration으로 평소에 하던 대로 아주 편하게 했습니다. 그런데 이게 웬걸.. 화면 구성을 하고 apply를 누르는 순간 X-window가 죄다 없어지고, 텍스트 콘솔 화면이 잠깐 보였다고 다시 재로그인하는 화면으로 돌아옵니다.

여러 창으로 작업을 하던 상황에서 이렇게 되니 당황스럽습니다.  일단, X server가 시그널 받아서 죽는 것 같다는 느낌이 듭니다. 그런데,  명령어 창을 띄워야 뭘 live로 추적해볼 텐데.. 윈도우즈가 죽어버리니.. 어쩌나 하는 생각을 하게 됐습니다. 급기야, 'dtrace를 쓸 수 있나? ' 하는 생각에 이르렀습니다.

마침 /opt/DTT 디렉토리에 Dtrace Toolkit이 설치되어 있었습니다.

창을 하나 열었습니다. 그리고 다음처럼 명령을 실행했습니다.
$pfexec dtrace -s /opt/DTT/Proc/crash.d > /var/tmp/crash.report &

마침 Dtrace Toolkit에는 프로세스가 죽을때를 캡쳐해주는 스크립트가 있더군요.
다시 화면 구성을 시도했습니다. 예상대로 또 죽었습니다.  이럴 때 안죽으면 사실 좀 황당한데. 아주 착하게 잘 죽었습니다. ㅡㅡ;

재 로그인을 한 후 /var/tmp/crash.report 화일을 확인해봤습니다.

아~~주 훌륭합니다.  프로세스 죽을 때 이렇게 분석해주는 보고서는 첨 봤습니다.
단지 놀라울 따름입니다.


:/var/tmp$ cat crash.report
Waiting for crashing applications...

-----------------------------------------------------
CRASH DETECTED at 2009 Jul 15 15:47:06
-----------------------------------------------------
Type:    SIGSEGV
Program: Xorg
Args:    /usr/X11/bin/Xorg :0 -depth 24 -nolisten tcp -audit 0 -br -auth /var/lib/gdm/:0\0
PID:     1640
TID:     1
LWPs:    1
PPID:    1639
UID:     0
GID:     0
TaskID:  115
ProjID:  0
PoolID:  0
ZoneID:  0
zone:    global
CWD:     /var/lib/gdm
errno:   0

User Stack Backtrace,
              libglx.so.1`0xfffffd7ffd1c45ae

Kernel Stack Backtrace,
              genunix`sigaddqa+0x5f
              genunix`trapsig+0x119
              unix`trap+0x12a1
              unix`0xfffffffffb8001d9

Ansestors,
    1640 /usr/X11/bin/Xorg :0 -depth 24 -nolisten tcp -audit 0 -br -auth /var/lib/gdm/:0\0
      1639 /usr/sbin/gdm-binary\0
        1351 /usr/sbin/gdm-binary\0
          1 /sbin/init\0
            0 sched\0

Times,
    User:    9182 ticks
    Sys:     8066 ticks
    Elapsed: 209133 ms

Sizes,
    Heap:   43286536 bytes
    Stack:  577536 bytes


보고서에 나온대로 Xorg 서버의 현재 작업 디렉토리로 가봤습니다.  예상대로 core 알을 까놨군요.
보고서 상으로 보면 libglx.so에서 죽었네요. ( libglx.so.1`0xfffffd7ffd1c45ae )

core를 좀 더 확인해봤습니다.
$echo "\$C" | mdb core ; pstack과 같습니다.
/var/lib/gdm# echo "\$C" | mdb core
fffffd7fffdfe450 libc.so.1`_lwp_kill+0xa()
fffffd7fffdfe470 libc.so.1`raise+0x19()
fffffd7fffdfe4b0 libc.so.1`abort+0xd9()
fffffd7fffdfe4d0 0x4c32ba()
fffffd7fffdfe4e0 AbortServer+0x13()
fffffd7fffdfe5d0 FatalError+0xe4()
fffffd7fffdfe700 xf86SigHandler+0xb5()
fffffd7fffdfe710 libc.so.1`__sighndlr+6()
fffffd7fffdfe7a0 libc.so.1`call_user_handler+0x2a7()
fffffd7fffdfe7d0 libc.so.1`sigacthandler+0xc6(b, 0, fffffd7fffdfe7f0)
000000000100c640 0xfffffd7ffd4c43de()
000000000217b910 0()
0000000000001000 0()


고개가 갸우뚱 하네요... 어디서 죽은 거지 ? dtrace 말이 맞는 건가 ?
어드레스 맵을 한번 더 확인해보기로 했습니다.
# echo "\$m" | mdb core
            BASE            LIMIT             SIZE NAME
          400000           5fc000           1fc000 /usr/X11/bin/amd64/Xorg
          60c000           620000            14000 /usr/X11/bin/amd64/Xorg
          800000          6c3b000          643b000 /usr/X11/bin/amd64/Xorg
fffffd7ff52d6000 fffffd7ff54d6000           200000
fffffd7ff6b88000 fffffd7ff6d88000           200000
fffffd7ff6ef8000 fffffd7ff70f8000           200000
fffffd7ff7d46000 fffffd7ff7f46000           200000
fffffd7ff80e8000 fffffd7ff82e8000           200000
fffffd7ff84ec000 fffffd7ff86ec000           200000
fffffd7ff873a000 fffffd7ff893a000           200000
fffffd7ff8ad6000 fffffd7ff8cd6000           200000
fffffd7ff8dc6000 fffffd7ff8fc6000           200000
fffffd7ff9400000 fffffd7ff9442000            42000 /usr/X11/lib/modules/amd64/libfb.so
fffffd7ff9452000 fffffd7ff9454000             2000 /usr/X11/lib/modules/amd64/libfb.so
fffffd7ff9800000 fffffd7ff9801000             1000 /usr/X11/lib/modules/amd64/libfb.so
fffffd7ff9a00000 fffffd7ff9d85000           385000 /usr/X11/lib/modules/drivers/amd64/nvidia_drv.so
fffffd7ff9e85000 fffffd7ff9f1f000            9a000 /usr/X11/lib/modules/drivers/amd64/nvidia_drv.so
fffffd7ff9f1f000 fffffd7ff9f3e000            1f000 /usr/X11/lib/modules/drivers/amd64/nvidia_drv.so
fffffd7ff9ff0000 fffffd7ff9ff1000             1000
fffffd7ffa000000 fffffd7ffa004000             4000 /usr/X11/lib/modules/extensions/amd64/libIA.so
fffffd7ffa014000 fffffd7ffa015000             1000 /usr/X11/lib/modules/extensions/amd64/libIA.so
fffffd7ffa400000 fffffd7ffa401000             1000 /usr/X11/lib/modules/extensions/amd64/libIA.so
fffffd7ffa7f0000 fffffd7ffa7f1000             1000
fffffd7ffa800000 fffffd7ffa809000             9000 /usr/X11/lib/modules/extensions/amd64/libdri.so
fffffd7ffa819000 fffffd7ffa81a000             1000 /usr/X11/lib/modules/extensions/amd64/libdri.so
fffffd7ffac00000 fffffd7ffac01000             1000 /usr/X11/lib/modules/extensions/amd64/libdri.so
fffffd7ffaff0000 fffffd7ffaff1000             1000
fffffd7ffb000000 fffffd7ffb009000             9000 /usr/X11/lib/modules/extensions/amd64/librecord.so
fffffd7ffb019000 fffffd7ffb01a000             1000 /usr/X11/lib/modules/extensions/amd64/librecord.so
fffffd7ffb400000 fffffd7ffb401000             1000 /usr/X11/lib/modules/extensions/amd64/librecord.so
fffffd7ffb7f0000 fffffd7ffb7f1000             1000
fffffd7ffb800000 fffffd7ffb801000             1000 /usr/X11/lib/modules/fonts/amd64/libfreetype.so
fffffd7ffb811000 fffffd7ffb812000             1000 /usr/X11/lib/modules/fonts/amd64/libfreetype.so
fffffd7ffbab7000 fffffd7ffbbff000           148000
fffffd7ffbc00000 fffffd7ffbc01000             1000 /usr/X11/lib/modules/fonts/amd64/libfreetype.so
fffffd7ffbc8b000 fffffd7ffbceb000            60000
fffffd7ffc000000 fffffd7ffccf4000           cf4000 /usr/X11/lib/NVIDIA/amd64/libGLcore.so.1
fffffd7ffcdf4000 fffffd7ffd245000           451000 /usr/X11/lib/NVIDIA/amd64/libGLcore.so.1
fffffd7ffd245000 fffffd7ffd257000            12000 /usr/X11/lib/NVIDIA/amd64/libGLcore.so.1
fffffd7ffd270000 fffffd7ffd2d0000            60000
fffffd7ffd400000 fffffd7ffd540000           140000 /usr/X11/lib/modules/extensions/NVIDIA/amd64/libglx.so.1
fffffd7ffd57d000 fffffd7ffd5dd000            60000
fffffd7ffd5de000 fffffd7ffd63e000            60000
fffffd7ffd63f000 fffffd7ffd6a5000            66000 /usr/X11/lib/modules/extensions/NVIDIA/amd64/libglx.so.1
fffffd7ffd6a5000 fffffd7ffd6a7000             2000 /usr/X11/lib/modules/extensions/NVIDIA/amd64/libglx.so.1
fffffd7ffd6cd000 fffffd7ffd72d000            60000
fffffd7ffd7f0000 fffffd7ffd7f1000             1000
fffffd7ffd800000 fffffd7ffd805000             5000 /usr/X11/lib/modules/extensions/amd64/libdbe.so
fffffd7ffd815000 fffffd7ffd816000             1000 /usr/X11/lib/modules/extensions/amd64/libdbe.so
fffffd7ffd826000 fffffd7ffd86f000            49000
fffffd7ffd8af000 fffffd7ffd90f000            60000
fffffd7ffd910000 fffffd7ffd970000            60000
fffffd7ffd971000 fffffd7ffd9d1000            60000
fffffd7ffda70000 fffffd7ffdad0000            60000
fffffd7ffdaff000 fffffd7ffdb5f000            60000
fffffd7ffdb9f000 fffffd7ffdbff000            60000
fffffd7ffdc00000 fffffd7ffdc01000             1000 /usr/X11/lib/modules/extensions/amd64/libdbe.so
fffffd7ffdcef000 fffffd7ffdd4f000            60000
fffffd7ffdd6c000 fffffd7ffddcc000            60000
fffffd7ffddcd000 fffffd7ffde2d000            60000
fffffd7ffde2e000 fffffd7ffde8e000            60000
fffffd7ffde8f000 fffffd7ffdeef000            60000
fffffd7ffdf0c000 fffffd7ffdf10000             4000
fffffd7ffdf1a000 fffffd7ffdf7a000            60000
fffffd7ffdf90000 fffffd7ffdf98000             8000
fffffd7ffdf9f000 fffffd7ffdfff000            60000
fffffd7ffe000000 fffffd7ffe027000            27000 /usr/X11/lib/modules/extensions/amd64/libextmod.so
fffffd7ffe037000 fffffd7ffe039000             2000 /usr/X11/lib/modules/extensions/amd64/libextmod.so
fffffd7ffe04a000 fffffd7ffe0aa000            60000
fffffd7ffe0b5000 fffffd7ffe1b5000           100000
fffffd7ffe1b6000 fffffd7ffe1b7000             1000
fffffd7ffe1ba000 fffffd7ffe21a000            60000
fffffd7ffe21b000 fffffd7ffe27b000            60000
fffffd7ffe28f000 fffffd7ffe2cf000            40000
fffffd7ffe2d0000 fffffd7ffe2dc000             c000
fffffd7ffe2dd000 fffffd7ffe33d000            60000
fffffd7ffe33e000 fffffd7ffe39e000            60000
fffffd7ffe39f000 fffffd7ffe3ff000            60000
fffffd7ffe400000 fffffd7ffe401000             1000 /usr/X11/lib/modules/extensions/amd64/libextmod.so
fffffd7ffe413000 fffffd7ffe414000             1000
fffffd7ffe424000 fffffd7ffe444000            20000
fffffd7ffe445000 fffffd7ffe4a5000            60000
fffffd7ffe4b7000 fffffd7ffe506000            4f000
fffffd7ffe507000 fffffd7ffe567000            60000
fffffd7ffe568000 fffffd7ffe5c8000            60000
fffffd7ffe5c9000 fffffd7ffe5cd000             4000
fffffd7ffe5cf000 fffffd7ffe6cf000           100000
fffffd7ffe6d0000 fffffd7ffe6d1000             1000
fffffd7ffe6d9000 fffffd7ffe719000            40000
fffffd7ffe730000 fffffd7ffe733000             3000
fffffd7ffe73b000 fffffd7ffe79e000            63000
fffffd7ffe79f000 fffffd7ffe7ff000            60000
fffffd7ffe800000 fffffd7ffe8a3000            a3000 /usr/X11/lib/modules/amd64/libpcidata.so
fffffd7ffe8b3000 fffffd7ffe902000            4f000 /usr/X11/lib/modules/amd64/libpcidata.so
fffffd7ffe912000 fffffd7ffe913000             1000
fffffd7ffe91d000 fffffd7ffe97d000            60000
fffffd7ffe97e000 fffffd7ffe9de000            60000
fffffd7ffe9f0000 fffffd7ffe9f8000             8000
fffffd7ffea12000 fffffd7ffea13000             1000
fffffd7ffea23000 fffffd7ffea24000             1000
fffffd7ffea7f000 fffffd7ffeadf000            60000
fffffd7ffeae0000 fffffd7ffeae3000             3000
/usr/X11/lib/amd64/libXau.so.6
fffffd7ffeaf3000 fffffd7ffeaf4000             1000
/usr/X11/lib/amd64/libXau.so.6
fffffd7ffeb06000 fffffd7ffeb0a000             4000
fffffd7ffeb10000 fffffd7ffeb12000             2000
fffffd7ffeb20000 fffffd7ffeb36000            16000 /lib/amd64/libz.so.1
fffffd7ffeb45000 fffffd7ffeb47000             2000 /lib/amd64/libz.so.1
fffffd7ffeb60000 fffffd7ffeb61000             1000
fffffd7ffeb70000 fffffd7ffebdf000            6f000 /lib/amd64/libm.so.2
fffffd7ffebee000 fffffd7ffebf1000             3000 /lib/amd64/libm.so.2
fffffd7ffec00000 fffffd7ffec01000             1000
fffffd7ffec5e000 fffffd7ffec7f000            21000
fffffd7ffec80000 fffffd7ffec81000             1000
fffffd7ffec90000 fffffd7ffecd6000            46000 /usr/X11/lib/modules/NVIDIA/amd64/libnvidia-wfb.so.1
fffffd7ffece5000 fffffd7ffece7000             2000 /usr/X11/lib/modules/NVIDIA/amd64/libnvidia-wfb.so.1
fffffd7ffed00000 fffffd7ffed01000             1000
fffffd7ffed20000 fffffd7ffed21000             1000
fffffd7ffed30000 fffffd7ffed34000             4000 /usr/X11/lib/modules/input/amd64/kbd_drv.so
fffffd7ffed44000 fffffd7ffed45000             1000 /usr/X11/lib/modules/input/amd64/kbd_drv.so
fffffd7ffed55000 fffffd7ffed56000             1000
fffffd7ffed60000 fffffd7ffed6c000             c000 /usr/X11/lib/modules/input/amd64/mouse_drv.so
fffffd7ffed7c000 fffffd7ffed7e000             2000 /usr/X11/lib/modules/input/amd64/mouse_drv.so
fffffd7ffed80000 fffffd7ffed81000             1000
fffffd7ffedd0000 fffffd7ffedd1000             1000
fffffd7ffee00000 fffffd7ffee01000             1000 /usr/X11/lib/NVIDIA/amd64/libnvidia-tls.so.1
fffffd7ffee11000 fffffd7ffee12000             1000
fffffd7ffee20000 fffffd7ffee21000             1000
fffffd7ffee32000 fffffd7ffee33000             1000
fffffd7ffee54000 fffffd7ffee64000            10000
fffffd7ffee70000 fffffd7ffee71000             1000
fffffd7ffee72000 fffffd7ffee73000             1000
fffffd7ffee82000 fffffd7ffee83000             1000
fffffd7ffee8e000 fffffd7ffee9f000            11000
fffffd7ffeea0000 fffffd7ffeea1000             1000
fffffd7ffeeb0000 fffffd7ffeebd000             d000 /usr/X11/lib/X11/xserver/amd64/libdrm.so.2
fffffd7ffeecd000 fffffd7ffeece000             1000 /usr/X11/lib/X11/xserver/amd64/libdrm.so.2
fffffd7ffeee0000 fffffd7ffeee1000             1000
fffffd7ffeef1000 fffffd7ffeef2000             1000
fffffd7ffeef6000 fffffd7ffeef7000             1000
fffffd7ffef00000 fffffd7ffef01000             1000 /usr/X11/lib/NVIDIA/amd64/libnvidia-tls.so.1
fffffd7ffef12000 fffffd7ffef13000             1000
fffffd7ffef16000 fffffd7ffef17000             1000
fffffd7ffef20000 fffffd7ffef21000             1000
fffffd7ffef30000 fffffd7ffef32000             2000 /lib/amd64/librt.so.1
fffffd7ffef40000 fffffd7ffef41000             1000
fffffd7ffef52000 fffffd7ffef53000             1000
fffffd7ffef60000 fffffd7ffef61000             1000
fffffd7ffef72000 fffffd7ffef73000             1000
fffffd7ffef80000 fffffd7ffef81000             1000
fffffd7ffef90000 fffffd7ffef9c000             c000 /usr/sfw/lib/amd64/libgcc_s.so.1
fffffd7ffefab000 fffffd7ffefac000             1000 /usr/sfw/lib/amd64/libgcc_s.so.1
fffffd7ffefc0000 fffffd7ffefc1000             1000
fffffd7ffefca000 fffffd7ffefcb000             1000
fffffd7ffefd0000 fffffd7ffefe0000            10000
fffffd7ffeff0000 fffffd7ffeff6000             6000
fffffd7fff000000 fffffd7fff001000             1000
fffffd7fff010000 fffffd7fff0d0000            c0000 /lib/amd64/libnsl.so.1
fffffd7fff0d0000 fffffd7fff0d7000             7000 /lib/amd64/libnsl.so.1
fffffd7fff0d7000 fffffd7fff0e0000             9000 /lib/amd64/libnsl.so.1
fffffd7fff0f0000 fffffd7fff101000            11000 /lib/amd64/libsocket.so.1
fffffd7fff111000 fffffd7fff112000             1000 /lib/amd64/libsocket.so.1
fffffd7fff112000 fffffd7fff113000             1000 /lib/amd64/libsocket.so.1
fffffd7fff120000 fffffd7fff121000             1000
fffffd7fff130000 fffffd7fff131000             1000
fffffd7fff140000 fffffd7fff1a5000            65000 /usr/X11/lib/X11/xserver/amd64/libXfont.so.1
fffffd7fff1b5000 fffffd7fff1b8000             3000 /usr/X11/lib/X11/xserver/amd64/libXfont.so.1
fffffd7fff1b8000 fffffd7fff1bb000             3000 /usr/X11/lib/X11/xserver/amd64/libXfont.so.1
fffffd7fff1c0000 fffffd7fff355000           195000 /lib/amd64/libc.so.1
fffffd7fff365000 fffffd7fff371000             c000 /lib/amd64/libc.so.1
fffffd7fff371000 fffffd7fff373000             2000 /lib/amd64/libc.so.1
fffffd7fff375000 fffffd7fff387000            12000
fffffd7fff390000 fffffd7fff391000             1000
fffffd7fff3a0000 fffffd7fff3a1000             1000
fffffd7fff3a3000 fffffd7fff3eb000            48000 /lib/amd64/ld.so.1
fffffd7fff3fb000 fffffd7fff3fe000             3000 /lib/amd64/ld.so.1
fffffd7fff3fe000 fffffd7fff3ff000             1000 /lib/amd64/ld.so.1
fffffd7fffd72000 fffffd7fffe00000            8e000 [ stack ]


core에서 나오는 메모리 맵에서는 base map 400000에서 시작하니, d5c4...  영역을 봤더니
libglx.so 가 맞군요.

NVidia driver 화일이군요... Nvidia를 다시 설치해야 겠군요.

pkg search libglx.so 로 어떤 패키지인가 검색해봤더니... 예상대로
pkg:/SUNWxorg-mesa@7.2-0.111

어떻게 이 패키지만 업데이트 하나 고민하고 있습니다.  차라리 앞으로 롤백을 해야 할까요? 흠...


opensolaris 2009년 6월 에디션의 부팅 직후 메모리 맵입니다.

2G 메모리를 가지고 있는 소니 랩탑에서 오픈 솔라리스 2009년 6월 에디션을 부팅한 직후의 메모리 상태입니다.
ZFS file data 영역과 Anon 영역이 670MB 나 되는 군요... 메모리를 무지 쓰고 있군요... 흠...

/etc/system에서 maxusers=64로 낮춘 상태에서의 로딩입니다. default는 2038인가 정도 했던 것 같습니다.

~# echo "::memstat" | mdb -k
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                     132109               516   25%
ZFS File Data               82974               324   16%
Anon                        89869               351   17%
Exec and libs                3657                14    1%
Page cache                  20857                81    4%
Free (cachelist)            10609                41    2%
Free (freelist)            181731               709   35%

Total                      521806              2038
Physical                   521805              2038

~# echo "::kmastat" | mdb -k
cache                        buf    buf    buf    memory     alloc alloc
name                        size in use  total    in use   succeed  fail
------------------------- ------ ------ ------ ---------- --------- -----
kmem_magazine_1               16   3356   3514     57344B      3356     0
kmem_magazine_3               32   3550   3625    118784B      3573     0
kmem_magazine_7               64   6246   6262    413696B      6246     0
kmem_magazine_15             128   3707   3720    491520B      3879     0
kmem_magazine_31             256      0    180     49152B       166     0
kmem_magazine_47             384      0    140     57344B       131     0
kmem_magazine_63             512      0    161     94208B       155     0
kmem_magazine_95             768     54     55     45056B        54     0
kmem_magazine_143           1152      0      0         0B         0     0
kmem_slab_cache               72  78113  78155   5820416B     78121     0
kmem_bufctl_cache             24 273145 273212   6701056B    273195     0
kmem_bufctl_audit_cache      192      0      0         0B         0     0
kmem_va_4096                4096  46354  46368 189923328B     46368     0
kmem_va_8192                8192   1407   1408  11534336B      1407     0
kmem_va_12288              12288    275    280   3670016B       275     0
kmem_va_16384              16384  10924  10928 179044352B     10924     0
kmem_va_20480              20480    360    360   7864320B       360     0
kmem_va_24576              24576     66     70   1835008B        66     0
kmem_va_28672              28672    500    500  16384000B       500     0
kmem_va_32768              32768     45     48   1572864B        45     0
kmem_alloc_8                   8  32208  32695    266240B    369157     0
kmem_alloc_16                 16  20271  22088    360448B    133928     0
kmem_alloc_24                 24  10139  11690    286720B     70094     0
kmem_alloc_32                 32  19903  20875    684032B   2369647     0
kmem_alloc_40                 40  19053  22600    925696B    477081     0
kmem_alloc_48                 48   6254   8466    417792B    137913     0
kmem_alloc_56                 56  10852  13348    770048B   2372840     0
kmem_alloc_64                 64  10946  13020    860160B   1266893     0
kmem_alloc_80                 80  15931  16150   1323008B    121931     0
kmem_alloc_96                 96  18972  20418   2039808B     96164     0
kmem_alloc_112               112 112438 113435  13275136B    130292     0
kmem_alloc_128               128   6882  11439   1511424B    262361     0
kmem_alloc_160               160   3587   3875    634880B     16150     0
kmem_alloc_192               192    533    580    118784B   2287251     0
kmem_alloc_224               224   1191   7089   1708032B     74335     0
kmem_alloc_256               256   5266   6330   1728512B    153107     0
kmem_alloc_320               320   4226   7956   2715648B    214767     0
kmem_alloc_384               384    562    570    233472B     12381     0
kmem_alloc_448               448    143    152     77824B      6150     0
kmem_alloc_512               512    386    392    200704B      5727     0
kmem_alloc_640               640    364    378    258048B      5083     0
kmem_alloc_768               768     86     95     77824B     37586     0
kmem_alloc_896               896     74     81     73728B      2172     0
kmem_alloc_1152             1152    261    280    327680B    247575     0
kmem_alloc_1344             1344     80     90    122880B     82802     0
kmem_alloc_1600             1600     26     30     49152B       921     0
kmem_alloc_2048             2048    456    478    978944B     10930     0
kmem_alloc_2688             2688    695    711   1941504B      4488     0
kmem_alloc_4096             4096    217    865   3543040B     15630     0
kmem_alloc_8192             8192    649    653   5349376B     14609     0
kmem_alloc_12288           12288     64     69    847872B      1259     0
kmem_alloc_16384           16384     39     41    671744B       360     0
kmem_alloc_24576           24576     46     51   1253376B       211     0
kmem_alloc_32768           32768     33     36   1179648B       128     0
streams_mblk                  64   2770   2790    184320B    266835     0
streams_dblk_16              128    105    186     24576B    181534     0
streams_dblk_80              192    765   1040    212992B    573591     0
streams_dblk_144             256      1     90     24576B     13159     0
streams_dblk_208             320    211    480    163840B     12046     0
streams_dblk_272             384      0    280    114688B     40931     0
streams_dblk_336             448      1     16      8192B      1503     0
streams_dblk_528             640      0     18     12288B      3222     0
streams_dblk_1040           1152      0     49     57344B      3243     0
streams_dblk_1488           1600      1     10     16384B       594     0
streams_dblk_1936           2048      2     12     24576B       622     0
streams_dblk_2576           2688      0     12     32768B      2884     0
streams_dblk_3856           3968      0      4     16384B       508     0
streams_dblk_8192            112    511    558     73728B     23371     0
streams_dblk_12048         12160      0      4     49152B       396     0
streams_dblk_16384           112      0     31      4096B       147     0
streams_dblk_20240         20352      0      4     81920B       218     0
streams_dblk_24576           112      0     31      4096B        33     0
streams_dblk_28432         28544      0      3     86016B       263     0
streams_dblk_32768           112      0     31      4096B       186     0
streams_dblk_36624         36736      0      3    110592B        39     0
streams_dblk_40960           112      0     31      4096B        36     0
streams_dblk_44816         44928      0      2     90112B         2     0
streams_dblk_49152           112      0     31      4096B         7     0
streams_dblk_53008         53120      0      2    106496B         2     0
streams_dblk_57344           112      0     31      4096B         3     0
streams_dblk_61200         61312      0      2    122880B         4     0
streams_dblk_65536           112      0     31      4096B       803     0
streams_dblk_69392         69504      0      0         0B         0     0
streams_dblk_73728           112      0      0         0B         0     0
streams_dblk_esb             112      0     31      4096B       614     0
streams_fthdr                408      0      0         0B         0     0
streams_ftblk                376      0      0         0B         0     0
multidata                    248      0      0         0B         0     0
multidata_pdslab            7112      0      0         0B         0     0
multidata_pattbl              32      0      0         0B         0     0
log_cons_cache                48     17     83      4096B        22     0
taskq_ent_cache               56   1847   2698    155648B      8463     0
taskq_cache                  216    103    126     28672B       140     0
kmem_io_2G_128               128      2     31      4096B       489     0
kmem_io_2G_256               256      4     15      4096B        23     0
kmem_io_2G_512               512      4      8      4096B         4     0
kmem_io_2G_1024             1024      0      4      4096B        12     0
kmem_io_2G_2048             2048      2      2      4096B         3     0
kmem_io_2G_4096             4096      3      4     16384B        44     0
kmem_io_16M_128              128      0      0         0B         0     0
kmem_io_16M_256              256      0      0         0B         0     0
kmem_io_16M_512              512      0      0         0B         0     0
kmem_io_16M_1024            1024      0      0         0B         0     0
kmem_io_16M_2048            2048      0      0         0B         0     0
kmem_io_16M_4096            4096      0      0         0B         0     0
id32_cache                    32      0    125      4096B      3543     0
bp_map_4096                 4096      0      0         0B         0     0
bp_map_8192                 8192      0      0         0B         0     0
bp_map_12288               12288      0      0         0B         0     0
bp_map_16384               16384      0      0         0B         0     0
bp_map_20480               20480      0      0         0B         0     0
bp_map_24576               24576      0      0         0B         0     0
bp_map_28672               28672      0      0         0B         0     0
bp_map_32768               32768      0      0         0B         0     0
htable_t                      72   2767   2805    208896B     17748     0
hment_t                       64 138049 142600   9420800B    980866     0
hat_t                        176    105    110     20480B      1791     0
HatHash                     4096    105    108    442368B      1975     0
segkp_4096                  4096     97    112    458752B      1180     0
segkp_8192                  8192      0      0         0B         0     0
segkp_12288                12288      0      0         0B         0     0
segkp_16384                16384      0      0         0B         0     0
segkp_20480                20480      0      0         0B         0     0
umem_np_4096                4096      0     32    131072B       577     0
umem_np_8192                8192      0     16    131072B       494     0
umem_np_12288              12288      0     10    131072B       421     0
umem_np_16384              16384      0      8    131072B        73     0
umem_np_20480              20480      0      0         0B         0     0
umem_np_24576              24576      0      5    131072B        31     0
umem_np_28672              28672      0      0         0B         0     0
umem_np_32768              32768      0      4    131072B        39     0
mod_hash_entries              24   1300   1336     32768B     11890     0
ipp_mod                      304      0      0         0B         0     0
ipp_action                   368      0      0         0B         0     0
ipp_packet                    64      0      0         0B         0     0
seg_cache                     96  15615  16031   1601536B    130812     0
seg_pcache                   104      0     38      4096B         3     0
fnode_cache                  176      6     20      4096B        27     0
pipe_cache                   320    134    144     49152B       787     0
snode_cache                  152    438    468     73728B     24448     0
dv_node_cache                176    406    506     94208B       884     0
mac_impl_cache              1776      3      9     16384B         3     0
mac_ring_cache               136      0      0         0B         0     0
flow_entry_cache            3032     13     16     49152B        17     0
flow_tab_cache               216      3     18      4096B         3     0
mac_soft_ring_cache          344      9     10      4096B         9     0
mac_srs_cache               1528      6      8     12288B         6     0
mac_bcast_grp_cache           80     10     50      4096B        14     0
mac_client_impl_cache        728      3     11      8192B         3     0
mac_promisc_impl_cache       112      0      0         0B         0     0
dls_link_cache               336      3     11      4096B         3     0
dls_devnet_cache             320      3     12      4096B         3     0
sdev_node_cache              256   1510   1515    413696B      1903     0
dev_info_node_cache          640    152    162    110592B      1427     0
ndi_fm_entry_cache            32      6    125      4096B        72     0
thread_cache                 872    296    306    278528B      2149     0
lwp_cache                   1424    285    288    442368B       718     0
turnstile_cache               64    619    992     65536B      4074     0
tslabel_cache                 48      2     83      4096B         2     0
cred_cache                   188    147    160     32768B      1465     0
rctl_cache                    48   1434   1494     73728B     16397     0
rctl_val_cache                64   2923   2976    196608B     34315     0
task_cache                   128     41     62      8192B       121     0
kmem_defrag_cache            192      1     20      4096B         1     0
kmem_move_cache               56      0      0         0B         0     0
rootnex_dmahdl              2536   2200   2216   5672960B     64335     0
timeout_request              128      1     31      4096B         1     0
cyclic_id_cache               72      9     55      4096B         9     0
callout_cachebabecafe         80    374    403     53248B       374     0
callout_lcachebabecafe        48   9848   9858    651264B      9848     0
dnlc_space_cache              24      0      0         0B         0     0
vfs_cache                    208     70     76     16384B        76     0
vn_cache                     200  26478  26490   7233536B     36324     0
vsk_anchor_cache              40     40    100      4096B        44     0
file_cache                    56   1366   1420     81920B     71295     0
stream_head_cache            384    956    970    397312B      4600     0
queue_cache                  656   1718   1746   1191936B      7850     0
syncq_cache                  160     12     25      4096B        33     0
qband_cache                   64      2     62      4096B         2     0
linkinfo_cache                48     11     83      4096B        12     0
ciputctrl_cache              128      0      0         0B         0     0
serializer_cache              64    298    310     20480B      1959     0
as_cache                     224    104    119     28672B      1790     0
marker_cache                 120      0     33      4096B       556     0
anon_cache                    48  96891  96944   4784128B    271601     0
anonmap_cache                112  11179  11445   1339392B     69975     0
segvn_cache                  168  15565  15962   2842624B    111959     0
segvn_szc_cache1            4096      0      0         0B         0     0
flk_edges                     48      0     83      4096B         1     0
fdb_cache                    104      0      0         0B         0     0
timer_cache                  136      0      0         0B         0     0
vmu_bound_cache               32      0      0         0B         0     0
vmu_object_cache              32      0      0         0B         0     0
physio_buf_cache             248      0      0         0B         0     0
kcf_sreq_cache                48      0      0         0B         0     0
kcf_areq_cache               288      0      0         0B         0     0
kcf_context_cache            112      0      0         0B         0     0
clnt_clts_endpnt_cache        88      0      0         0B         0     0
zio_cache                    720      0   3553   2646016B    485479     0
zio_link_cache                48      0   3652    180224B    204521     0
zio_buf_512                  512  73559  73928  37851136B     77161     0
zio_data_buf_512             512   1212   1232    630784B      2843     0
zio_buf_1024                1024   1484   1496   1531904B      5263     0
zio_data_buf_1024           1024    105    112    114688B       881     0
zio_buf_1536                1536    309    328    503808B      1168     0
zio_data_buf_1536           1536    124    128    196608B       202     0
zio_buf_2048                2048    178    186    380928B      1084     0
zio_data_buf_2048           2048    105    110    225280B       856     0
zio_buf_2560                2560    133    144    368640B       946     0
zio_data_buf_2560           2560     77     88    225280B       152     0
zio_buf_3072                3072    103    112    344064B       881     0
zio_data_buf_3072           3072     71     80    245760B       726     0
zio_buf_3584                3584     77    128    458752B      2146     0
zio_data_buf_3584           3584     57     64    229376B       119     0
zio_buf_4096                4096    141    145    593920B      4036     0
zio_data_buf_4096           4096     45     48    196608B       235     0
zio_buf_5120                5120     62     80    409600B      4101     0
zio_data_buf_5120           5120     65     68    348160B       320     0
zio_buf_6144                6144     58    156    958464B      1681     0
zio_data_buf_6144           6144     84     88    540672B       297     0
zio_buf_7168                7168     50     60    430080B       590     0
zio_data_buf_7168           7168     54     56    401408B       163     0
zio_buf_8192                8192     20     25    204800B      1293     0
zio_data_buf_8192           8192  35665  36578 299646976B     37990     0
zio_buf_10240              10240     27     36    368640B       430     0
zio_data_buf_10240         10240     30     34    348160B        49     0
zio_buf_12288              12288      7     13    159744B       463     0
zio_data_buf_12288         12288     21     23    282624B        33     0
zio_buf_14336              14336     15    876  12558336B     10537     0
zio_data_buf_14336         14336     43     46    659456B        67     0
zio_buf_16384              16384  10869  10882 178290688B     12124     0
zio_data_buf_16384         16384     25     27    442368B        30     0
zio_buf_20480              20480     12     22    450560B       422     0
zio_data_buf_20480         20480     46     49   1003520B       149     0
zio_buf_24576              24576      7     15    368640B       752     0
zio_data_buf_24576         24576     37     40    983040B        54     0
zio_buf_28672              28672      5     15    430080B       281     0
zio_data_buf_28672         28672     26     26    745472B        26     0
zio_buf_32768              32768      1      9    294912B       349     0
zio_data_buf_32768         32768     31     31   1015808B        31     0
zio_buf_36864              36864      0      6    221184B       118     0
zio_data_buf_36864         36864     23     24    884736B        25     0
zio_buf_40960              40960      3     25   1024000B       325     0
zio_data_buf_40960         40960     15     15    614400B        16     0
zio_buf_45056              45056      6     10    450560B        91     0
zio_data_buf_45056         45056      7      7    315392B         7     0
zio_buf_49152              49152      1      6    294912B       199     0
zio_data_buf_49152         49152     10     10    491520B        10     0
zio_buf_53248              53248      0      3    159744B        28     0
zio_data_buf_53248         53248      7      9    479232B        13     0
zio_buf_57344              57344      1      7    401408B       135     0
zio_data_buf_57344         57344     10     10    573440B        10     0
zio_buf_61440              61440      0      4    245760B        22     0
zio_data_buf_61440         61440     14     14    860160B        28     0
zio_buf_65536              65536    161    167  10944512B      9529     0
zio_data_buf_65536         65536      6      6    393216B         6     0
zio_buf_69632              69632      0      3    208896B        10     0
zio_data_buf_69632         69632      3      3    208896B         3     0
zio_buf_73728              73728      1      6    442368B       113     0
zio_data_buf_73728         73728      8      8    589824B         8     0
zio_buf_77824              77824      0      5    389120B        32     0
zio_data_buf_77824         77824      4      4    311296B         4     0
zio_buf_81920              81920      0      4    327680B       114     0
zio_data_buf_81920         81920      4      5    409600B        24     0
zio_buf_86016              86016      0      3    258048B        12     0
zio_data_buf_86016         86016      3      3    258048B         3     0
zio_buf_90112              90112      0      4    360448B       121     0
zio_data_buf_90112         90112      5      5    450560B         5     0
zio_buf_94208              94208      0      2    188416B         4     0
zio_data_buf_94208         94208      1      4    376832B        41     0
zio_buf_98304              98304      1      5    491520B        77     0
zio_data_buf_98304         98304      1      1     98304B         1     0
zio_buf_102400            102400      0      2    204800B         7     0
zio_data_buf_102400       102400      2      2    204800B         2     0
zio_buf_106496            106496      1      4    425984B        49     0
zio_data_buf_106496       106496      0      0         0B         0     0
zio_buf_110592            110592      0      1    110592B         2     0
zio_data_buf_110592       110592      6      6    663552B         6     0
zio_buf_114688            114688      0      5    573440B        86     0
zio_data_buf_114688       114688      2      2    229376B         2     0
zio_buf_118784            118784      0      3    356352B         8     0
zio_data_buf_118784       118784      3      3    356352B         3     0
zio_buf_122880            122880      1      5    614400B        64     0
zio_data_buf_122880       122880      1      2    245760B         9     0
zio_buf_126976            126976      1      4    507904B         9     0
zio_data_buf_126976       126976      0      1    126976B         4     0
zio_buf_131072            131072      1     37   4849664B      3145     0
zio_data_buf_131072       131072    231    289  37879808B      2137     0
dmu_buf_impl_t               192 116077 117380  24039424B    124235     0
dnode_t                      664  70505  70638  48222208B     71003     0
arc_buf_hdr_t                168  57125  57132  10174464B     62433     0
arc_buf_t                     48  55775  56689   2797568B     65108     0
zil_lwb_cache                200      2   1020    208896B      1927     0
zfs_znode_cache              192  20087  22720   4653056B     81883     0
ip_minor_arena_sa_1            1     26     64        64B       309     0
ip_minor_arena_la_1            1     69    128       128B        71     0
ip_conn_cache                504      1      8      4096B        27     0
tcp_conn_cache              1864     55     62    126976B       113     0
udp_conn_cache              1248     29     36     49152B       712     0
rawip_conn_cache            1168      2     10     12288B         2     0
rts_conn_cache               616      7     12      8192B        11     0
ip_helper_stream_cache        32     67    124      8192B       547     0
ire_cache                    336     38     44     16384B        65     0
rt_entry                     168      2     23      4096B         2     0
radix_mask                    32      1    125      4096B         1     0
radix_node                   120      1     33      4096B         1     0
ipsec_actions                 72      0      0         0B         0     0
ipsec_selectors               80      0      0         0B         0     0
ipsec_policy                  72      0      0         0B         0     0
ipsec_info                   352      0     11      4096B        78     0
tcp_timercache                88     65     90      8192B        66     0
tcp_sack_info_cache           80      2     50      4096B        42     0
tcp_iphc_cache               120     55     66      8192B       111     0
squeue_cache                 168      3     20      4096B         3     0
sctp_conn_cache             2264      1      9     20480B         1     0
sctp_faddr_cache             176      0      0         0B         0     0
sctp_set_cache                24      0      0         0B         0     0
sctp_ftsn_set_cache           16      0      0         0B         0     0
ire_gw_secattr_cache          32      0      0         0B         0     0
socket_cache                 528     67     75     40960B       553     0
socktpi_cache                872      0      9      8192B         1     0
socktpi_unix_cache           872    525    540    491520B      1942     0
sock_sod_cache               680      0      0         0B         0     0
drv_secobj_cache             296      5     13      4096B         5     0
dld_str_cache                288      7     13      4096B       457     0
process_cache               3168    106    117    372736B      1099     0
exacct_object_cache           40      0      0         0B         0     0
hal0_cache                   464      0      8      4096B         1     0
fctl_cache                   112      0      0         0B         0     0
kssl_cache                  1608      0      0         0B         0     0
tl_cache                     432    547    567    258048B      2088     0
keysock_1                      1      0      0         0B         0     0
spdsock_1                      1      0     64        64B         1     0
namefs_inodes_1                1     26     64        64B        28     0
port_cache                    80   2515   6800    557056B      7013     0
lnode_cache                   32      1    125      4096B         1     0
pty_map                       64      3     62      4096B         3     0
ufs_inode_cache              368      0      0         0B         0     0
directio_buf_cache           272      0      0         0B         0     0
lufs_save                     24      0      0         0B         0     0
lufs_bufs                    256      0      0         0B         0     0
lufs_mapentry_cache          112      0      0         0B         0     0
Hex0xffffff0148631658_minor_1      1      0      0         0B         0     0
Hex0xffffff0149d75548_minor_1      1      0      0         0B         0     0
dtrace_state_cache         16384      0      0         0B         0     0
authkern_cache                72      0     55      4096B         7     0
authnone_cache                72      0      0         0B         0     0
authloopback_cache            72      0      0         0B         0     0
authdes_cache_handle          80      0      0         0B         0     0
rnode_cache                  656      2      6      4096B         2     0
nfs_access_cache              56      1     71      4096B         1     0
client_handle_cache           32      1    125      4096B         1     0
rnode4_cache                 968      0      0         0B         0     0
svnode_cache                  40      0      0         0B         0     0
nfs4_access_cache             56      0      0         0B         0     0
client_handle4_cache          32      0      0         0B         0     0
nfs4_ace4vals_cache           48      0      0         0B         0     0
nfs4_ace4_list_cache         264      0      0         0B         0     0
NFS_idmap_cache               48      0      0         0B         0     0
lm_vnode                     184      0      0         0B         0     0
lm_xprt                       32      0      0         0B         0     0
lm_sysid                     160      0      0         0B         0     0
lm_client                    128      0      0         0B         0     0
lm_async                      32      0      0         0B         0     0
lm_sleep                      96      0      0         0B         0     0
lm_config                     80      2     50      4096B         2     0
vnic_cache                   112      0      0         0B         0     0
aggr_port_cache              936      0      0         0B         0     0
aggr_grp_cache              2152      0      0         0B         0     0
crypto_session_cache         104      0      0         0B         0     0
fcsm_job_cache               104      0      0         0B         0     0
sppptun_map                  432      0      0         0B         0     0
------------------------- ------ ------ ------ ---------- --------- -----
Total [hat_memload]                              9629696B    998614     0
Total [kmem_msb]                                13852672B    368877     0
Total [kmem_va]                                411828224B     59945     0
Total [kmem_default]                           433041408B  14276864     0
Total [kmem_io_2G]                                 36864B       575     0
Total [umem_np]                                   786432B      1635     0
Total [id32]                                        4096B      3543     0
Total [zfs_file_data_buf]                      355504128B     47590     0
Total [segkp]                                     458752B      1180     0
Total [ip_minor_arena_sa]                             64B       309     0
Total [ip_minor_arena_la]                            128B        71     0
Total [spdsock]                                       64B         1     0
Total [namefs_inodes]                                 64B        28     0
------------------------- ------ ------ ------ ---------- --------- -----

vmem                         memory     memory    memory     alloc alloc
name                         in use      total    import   succeed  fail
------------------------- ---------- ----------- ---------- --------- -----
heap                      574271488B 1092953833472B         0B     36057     0
    vmem_metadata          17424384B   17432576B  17432576B      4032     0
        vmem_seg           16166912B   16166912B  16166912B      3932     0
        vmem_hash           1006080B    1007616B   1007616B        52     0
        vmem_vmem            258440B     286256B    249856B        79     0
    static                        0B          0B         0B         0     0
        static_alloc              0B          0B         0B         0     0
    hat_memload             9629696B    9629696B   9629696B      2357     0
    kstat                    309608B     315392B    249856B      1006     0
    kmem_metadata          16400384B   16515072B  16515072B      3521     0
        kmem_msb           13852672B   13852672B  13852672B      3387     0
        kmem_cache           249984B     307200B    307200B       424     0
        kmem_hash           2231808B    2240512B   2240512B       263     0
    kmem_log                  65952B      69632B     69632B         6     0
    kmem_firewall_va       34492416B   34492416B  34492416B       270     0
        kmem_firewall             0B          0B         0B         0     0
        kmem_oversize      34413115B   34492416B  34492416B       270     0
    mod_sysfile                 744B       4096B      4096B        18     0
    kmem_va               436310016B  436310016B 436310016B      3472     0
        kmem_default      433053696B  433053696B 433053696B     60274     0
    kmem_io_2G                36864B      36864B     36864B      3414     0
    kmem_io_16M                   0B          0B         0B         0     0
    bp_map                        0B          0B         0B         0     0
    umem_np                  786432B     786432B    786432B        86     0
    ksyms                   2871496B    2899968B   2899968B       317     0
    ctf                     1395410B    1462272B   1462272B       312     0
heap_core                   3092480B  931115008B         0B        50     0
    heaptext               15360000B   67108864B         0B       220     0
        module_text        15583192B   15872000B  15355904B       317     0
    id32                       4096B       4096B      4096B         1     0
    module_data             3302669B    3395584B   3088384B       427     0
logminor_space                   33B     262137B         0B        38     0
taskq_id_arena                   56B 2147483647B         0B        81     0
zfs_file_data             355504128B 2139095040B         0B     37662     0
    zfs_file_data_buf     355504128B  355504128B 355504128B     37662     0
device                      1597440B 1073741824B         0B     33135     0
segkp                      15523840B 2139095040B         0B      2514     0
mac_minor_ids                    15B     261142B         0B        16     0
rctl_ids                         35B      32767B         0B        35     0
zoneid_space                      0B       9998B         0B         0     0
taskid_space                     41B     999999B         0B       120     0
pool_ids                          0B     999998B         0B         0     0
contracts                        44B 2147483646B         0B       135     0
ip_minor_arena_sa                64B     262140B         0B         1     0
ip_minor_arena_la               128B 4294705152B         0B         2     0
lib_va_32                  10252288B 2138816512B         0B        20     0
tl_minor_space                  547B     262138B         0B      2071     0
keysock                           0B 4294967295B         0B         0     0
spdsock                          64B 4294967295B         0B         1     0
namefs_inodes                    64B      65536B         0B         1     0
lib_va_64                 119177216B 137988696055808B         0B       131     0
 
devfsadm_event_channel            1B        101B         0B         1     0
devfsadm_event_channel            1B          2B         0B         1     0
ptms_minor                        3B         16B         0B         3     0
Hex0xffffff0148631658_minor         0B 4294967294B         0B         0     0
Hex0xffffff0149d75548_minor         0B 4294967294B         0B         0     0
syseventd_channel                 3B        101B         0B         3     0
syseventd_channel                 1B          2B         0B         1     0
syseventconfd_door                0B        101B         0B         0     0
syseventconfd_door                1B          2B         0B         1     0
dtrace                         1710B 4294967295B         0B      5295     0
dtrace_minor                      0B 4294967293B         0B         0     0
lmsysid_space                     0B      16383B         0B         0     0
aggr_portids                      0B      65534B         0B         0     0
aggr_key_ids                      0B      64535B         0B         0     0
crypto                            0B         16B         0B         1     0
ipnet_minor_space                 4B     262141B         0B         4     0
ds_minors                         0B     262140B         0B         0     0
logdmux_minor                     0B        256B         0B         0     0
sppptun_minor                     0B         16B         0B         0     0
shmids                            1B         64B         0B        31     0