자 보통 솔라리스에서는 2G이상의 파일은 생성할 수 없다고 알고 있나요?
이는 정말일까? 사실 이부분도 system performance의 한 종류다.
 
만약 이런 사실이 정말이라면 솔라리스는 개떡 같은 시스템일 수 있다.
왜냐? 대형 서비스를 하는 곳에서 운영하는 DBM의 경우 하나의 파일이
2G의 용량을 훌쩍 넘길 수 있기 때문이다.
 
[root@/www] # df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c0d0s0        6.4G   3.3G   3.0G    53%    /
/proc                    0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                  1022M   156K  1022M     1%    /var/run
swap                  1022M    16K  1022M     1%    /tmp
/dev/dsk/c0d1s0        3.9G   302M   3.6G     8%    /www
/dev/dsk/c0d0s7        480M   2.8M   430M     1%    /export/home
[root@/www] #
 
현재 내 파일 시스템의 영역이다. 아마도 글을 올린 다음.. 칸이 엉망으로
망가질 것이다. 그러나 잘 살펴보도록 하자.
 
우리는 정말 2G 이상의 파일은 만들 수 없는지 확인하기 위해 딱 2G 이상
용량의 파일을 구현해보자. 그런데 이리저리 파일 시스템을 살펴서 처리해보자
자 잘 살펴보니 /dev/dsk/c0d0s0 의 root (/)파일 시스템의 사용한 공간이 3.3G
이다. 앗 그러고 보니 /dev/dsk/c0d1s0 의 /www 파일 시스템의 경우 3.6G
의 남은 용량을 보니 이것을 테스트해보면 딱이겠다.
 
[root@/] # pwd
/
[root@/] # ls
TT_DB       devices     lib         platform    usr
bin         etc         lost+found  proc        var
boot        export      mnt         root        vol
cdrom       home        net         sbin        www
dev         kernel      opt         tmp         xfn
[root@/] # tar cvf /www/www.tar TT_DB devices lib platform usr bin etc var
> boot root vol sbin kernel opt xfn
..
..
(상당히 오래걸렸다.)
 
자 파일이 생성된 곳을 찾아가서 파일 용량을 확인해보자.
 
[root@/] # cd www/
[root@/www] # du -h www.tar
 3.3G   www.tar
[root@/www] #
 
분명히 3.3G의 파일이 하나 만들어졌다. 이로 보아 솔라리스에서는 하나의 파일
이 가질 수 있는 용량은 정해진 것은 아닌 것이다.
 
시스템의 설정을 살펴보자.
 
[root@/] # ulimit -a
core file size (blocks)     unlimited
data seg size (kbytes)      unlimited
file size (blocks)          unlimited
open files                  256
pipe size (512 bytes)       10
stack size (kbytes)         8480
cpu time (seconds)          unlimited
max user processes          1925
virtual memory (kbytes)     unlimited
[root@/] #
 
자 잘살펴본다면 뭔가 보일 것이다.
 
file size (blocks)          unlimited
이부분이다.
 
man ulimit 명령어를 사용해보면 최대 파일 블럭 지정은 -f 이다.
 
솔라리스에서 하나의 블럭은 512 byte를 가지므로 파일 생성시 최대 파일 용량을
1 mega byte로 지정하려면 최대 블럭을 2048로 지정하면 될것이다.
 
[root@/] # ulimit -f 2048
[root@/] # ulimit -a
core file size (blocks)     unlimited
data seg size (kbytes)      unlimited
file size (blocks)          2048
open files                  256
pipe size (512 bytes)       10
stack size (kbytes)         8480
cpu time (seconds)          unlimited
max user processes          1925
virtual memory (kbytes)     unlimited
[root@/] #
 
자 몇가지 명령어를 사용해서 파일을 생성해 보라. 분명히 1 M 이상의 파일은 생
성할 수 없을 것이다.
 
ulimit 명령어를 사용해서 여러가지 조작을 해서 설정해서 테스트해보는 것도 하
나의 방법일 것이다. ulimit를 살펴보면 file size 및 다른 설정도 많이 있다.
 
팁..
시스템 V 이상의 버전에서 하나의 프로세서가 파일을 생성할 시, 몇가지 시스템
을 불러온다. 우선 write 시스템을 호출하여 쓰기 모드로 들어가며, 이때 ulimit
시스템도 불러와 시스템 상태를 살펴본다. 당연히 cmask 시스템도 적용시켜봐서
이 파일을 내가 건들어도 퍼미션에 문제가 없는지 살피기도 한다. 열거해 놓은
이러한 작업 뿐 아니라, 무수히 많은 작업이 이루어진다. 그래서 대표적인 것만
말해 놓았다. ^^! 솔라리스를 처음 설치해 놓으면 ulimit 에 파일 쓰기에 대한
제한을 걸어 놓지 않는다. 그러나 시스템 관리자에 의해서 ulimit 시스템에 제
동을 걸어 놓을 수 있다. 가끔 게시판에 어느 용량 이상의 파일은 생성되지 않
아요..하는 물음이 나올 수는 있으나,  특정 파일 시스템 특징으로 인해서 2G 이
상의 파일을 생성할 수 없는 경우를 제외하고는 최근의 시스템은 대부분 2G 이상
의 파일 용량을 허용하고 있다. (fat32 시스템에 2G 이상의 파일을 생성해보라.
분명히 실패한다. -ㅁ-; 그래서 vmware에서 2G 이상의 하드 파일을 만들 때 스필
트(split 분할모드)모드가 존재하는 것이다. 우리는 이것을 꼭 참고하자.
다음 안건은 acct 냐햐햐햐햐

출처 : http://blog.naver.com/canard

+ Recent posts