12 특수한 요구 사항에 맞게 I/O 특성 조정

이전 장에서 설명한 기본 파일 시스템 구성 단계를 수행하면 대개의 경우 균형 잡힌 최적의 성능을 얻을 수 있습니다. 따라서 응용 프로그램 작동 방식을 잘 모를 경우 이 절의 설정을 기본값으로 두는 것이 좋습니다. 그러나 응용 프로그램에서 특이하게 일정하거나 큰 I/O 요청을 만드는 경우 파일 시스템이 물리적 I/O를 처리하는 방식을 조정하거나 변경하면 전반적인 성능이 향상될 수 있습니다.

읽기 및 쓰기가 전부 또는 대부분 디스크 섹터의 512바이트 경계에서 정확히 시작하고 종료하는 경우 물리적 I/O가 가장 효율적입니다. 디스크 I/O는 섹터 크기 청크로만 발생할 수 있습니다. 따라서 I/O 요청에 섹터 경계에 걸쳐 있는 경우 시스템에서는 추가 작업을 수행하여 응용 프로그램 데이터를 동일한 섹터의 관련 없는 데이터와 분리합니다. 이 과정에서 관련 없는 데이터가 손상되지 않도록 해야 합니다. 최악의 경우 여러 섹터에 쓸 때 파일 시스템은 섹터를 읽고 메모리의 섹터 데이터를 수정한 다음 섹터를 다시 디스크에 써야 합니다. 이러한 읽기-수정-쓰기 작업은 추가되는 기계적 작업만으로도 성능 면에서 비용이 많이 듭니다.

대부분의 응용 프로그램은 섹터 경계에 제대로 정렬되지 않은 다양한 크기의 데이터를 읽고 써야 합니다. 이 때문에 대부분의 파일 시스템처럼 Oracle HSM은 기본적으로 페이징된 I/O를 사용합니다. 파일 시스템에서는 Solaris 페이징된 메모리의 데이터 캐시를 읽거나 이 캐시에 써서 응용 프로그램의 I/O 요청을 즉시 처리합니다. 파일 시스템에서는 더욱 효율적으로 크기가 지정되고 제대로 정렬된 물리적 읽기 및 쓰기를 통해 비동기적으로 캐시를 업데이트합니다. 디스크에서 데이터를 읽을 때마다 동일한 작업에서 예정된 읽기를 예측하고 해당하는 데이터를 캐시로 로드하여 물리적 I/O의 대부분을 수행할 수 있습니다. 따라서 대부분의 I/O 요청을 가상 메모리 페이지에 캐시된 데이터를 사용하여 충족할 수 있으므로, 추가되는 물리적 디스크 작업이 없습니다. 페이징된 I/O로 인해 메모리가 사용되고 시스템 CPU에 로드가 가해지지만 대부분의 경우 이러한 비용은 물리적 I/O 효율 향상으로 상쇄되는 것보다 많습니다.

그러나 이 I/O의 이점으로도 페이징된 I/O 관련 추가 오버헤드를 상쇄할 수 없는 경우도 있습니다. 잘 정렬된 I/O를 항상 수행하는 응용 프로그램과 이렇게 하도록 조정할 수 있는 응용 프로그램에는 페이지 캐싱이 아무 도움도 되지 않습니다. 엄청나게 큰 I/O를 수행하는 응용 프로그램도 첫번째와 마지막 섹터만 제대로 정렬되지 않고 큰 I/O는 어떤 경우든 너무 커서 캐시에 보관할 수 없기 때문에 페이지 캐싱으로 얻을 수 있는 이점이 거의 없습니다. 마지막으로 원격 측정 데이터, 감시 비디오 또는 다른 유형의 실시간 정보를 스트리밍하는 응용 프로그램은 쓰기를 비휘발성 스토리지로 즉시 커밋하지 않는 경우 복구할 수 없는 데이터가 손실될 위험이 있습니다. 이러한 경우 직접 I/O를 사용하는 것이 더 좋을 수 있습니다. 직접 I/O를 지정하는 경우 파일 시스템에서는 페이지 캐시를 건너뛰고 응용 프로그램 메모리와 디스크 장치 간에 직접 데이터를 전송합니다.

Oracle HSM에서는 I/O 캐싱 동작을 선택하고 조정할 때 상당한 유연성을 제공합니다. 응용 프로그램의 I/O 특성을 파악하고 예상 파일 시스템 I/O에 대한 Solaris 시스템 및 드라이버 매개변수 조정에 설명된 작업을 수행했으면 다음과 같이 접근 방법을 선택합니다.

대량 데이터 전송에 맞게 페이징된 I/O 최적화

응용 프로그램 및 하드웨어 특성에 더 잘 맞게 페이징된 I/O를 조정할 수 있습니다. 읽기 캐시와 쓰기 캐시가 충분해서 응용 프로그램이 전송하는 평균 데이터 양이든 물리적 스토리지에서 전송할 수 있는 최대 데이터 양이든 전송할 수 있어야 합니다. 어느 쪽 양이든 페이지 캐싱을 적절하게 조정하지 못하면 캐시가 제대로 활용되지 않아 응용 프로그램 I/O 요청에 물리적 I/O가 더 필요하게 되고 전반적인 시스템 성능이 떨어집니다.

예를 들어 단일 디스크 볼륨에서 구현된 md 데이터 장치와 3+1 RAID 5 볼륨 그룹으로 구현된 md 장치 간의 차이점을 고려해 보십시오. 64킬로바이트 DAU(디스크 할당 단위) 하나를 캐시에서 RAID 그룹에 써서 응용 프로그램의 쓰기 요청을 각각 처리하고 다중 디스크 장치에서 발생할 수 있는 추가 대역폭을 무시할 경우 RAID 장치는 작지만 효율성이 낮은 21(및 22)킬로바이트 조각 3개로 I/O를 분할한 다음 RAID 그룹의 데이터 디스크 3개에 데이터를 써야 합니다. 따라서 이 구성을 사용하여 응용 프로그램의 64킬로바이트 I/O 요청을 수행하려면 페이지 캐시를 사용하여 요청을 하나의 3-DAU, 192킬로바이트 I/O로 조합할 경우보다 필요한 작업이 상당히 더 많습니다. 응용 프로그램이 장치 대역폭의 몇 배 즉, 192, 384 또는 576킬로바이트의 I/O 요청을 만들 수 있거나 이렇게 하도록 조정할 수 있는 경우 더 많은 데이터를 캐시하고 각 물리적 I/O에 더 많이 전송하여 오버헤드를 줄이고 성능을 향상할 수 있습니다.

따라서 응용 프로그램의 I/O 요구 사항을 식별하고 하드웨어의 I/O 등록 정보를 파악합니다. 그런 다음 다음과 같이 진행하십시오.

  1. 파일 시스템 호스트에 root로 로그인합니다.

    root@solaris:~# 
    
  2. 운영체제의 /etc/vfstab 파일을 백업합니다.

    root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
    root@solaris:~# 
    
  3. 텍스트 편집기에서 /etc/vfstab 파일을 열고 조정이 필요한 파일 시스템의 행을 찾습니다.

    이 예제에서 파일 시스템의 이름은 qfsma입니다.

    root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount     System  fsck  Mount    Mount
    #to Mount  to fsck  Point     Type    Pass  at Boot  Options
    #--------  -------  --------  ------  ----  -------  --------------------
    /devices   -        /devices  devfs   -     no       -
    ...
    qfsma      -        /qfsma    samfs   -     yes      ...
    
  4. 파일 시스템의 Mount Options 필드에서 writebehind=n 마운트 옵션을 추가합니다. 여기서 n8킬로바이트의 배수입니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다. 파일을 저장하고 편집기를 닫습니다.

    writebehind 옵션에 따라 캐시가 디스크로 플러시되기 전에 지정된 파일이 페이지 캐시에 대기될 수 있는 양이 결정됩니다. 대기열이 크면 여러 개의 작은 응용 프로그램 쓰기를 더 적은 수의 크고 더 효율적인 물리적 I/O로 통합하므로 매개변수를 더 높은 값으로 설정하면 성능이 향상됩니다. 매개변수를 더 작은 값으로 설정하면 변경사항이 비휘발성 스토리지에 더 빨리 기록되므로 데이터 보호가 향상됩니다.

    기본값은 512킬로바이트(8개의 64킬로바이트 DAU)이며, 일반적으로 큰 블록의 순차적 I/O에 적합합니다. 하지만 이 예제에서는 패밀리 세트에 스트라이프 파일 할당을 사용하는 md 디스크 장치가 2개 포함되어 있습니다. 두 md 장치에 128킬로바이트를 쓰기 위해 스트라이프 너비는 하나의 64킬로바이트 DAU입니다. md 장치는 3+1 RAID 5 그룹입니다. 따라서 세 개의 데이터 스핀들 각각에 최소 128킬로바이트를 쓰려고 하므로 총 쓰기는 768킬로바이트(각각 8킬로바이트 그룹 96개) 이상입니다.

    #File
    #Device    Device   Mount     System  fsck  Mount    Mount
    #to Mount  to fsck  Point     Type    Pass  at Boot  Options
    #--------  -------  --------  ------  ----  -------  --------------------
    /devices   -        /devices  devfs   -     no       -
    ...
    qfsma      -        /qfsma    samfs   -     yes      ...,writebehind=768
    :wq
    root@solaris:~# 
    
  5. 파일 시스템의 I/O 성능을 테스트하고 필요한 경우 writebehind 설정을 조정합니다.

  6. 텍스트 편집기에서 /etc/vfstab 파일을 다시 엽니다. 파일 시스템의 Mount Options 필드에서 readahead=n 마운트 옵션을 추가합니다. 여기서 n은 8킬로바이트의 배수입니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다. 파일을 저장하고 편집기를 닫습니다.

    readahead 옵션에 따라 단일 물리적 읽기 동안 캐시로 읽어들이는 데이터 양이 결정됩니다. 응용 프로그램에서 순차적으로 읽는 것 같으면 파일 시스템에서는 각 물리적 읽기 동안 파일 데이터의 예정 블록을 캐시합니다. 그런 다음 일련의 응용 프로그램 읽기 요청을 캐시 메모리에서 처리하여, 여러 응용 프로그램 읽기 요청을 하나의 물리적 I/O 요청으로 통합합니다.

    기본값은 1024킬로바이트(16개의 64킬로바이트 DAU)이며, 일반적으로 큰 블록의 순차적 I/O에 적합합니다. 데이터베이스 또는 소형 응용 프로그램에서 자체적으로 미리 읽기를 수행하는 경우에는 Oracle HSM readahead0으로 설정하여 충돌을 방지합니다. 그렇지 않은 경우 일반적으로 readahead는 단일 물리적 I/O에서 전송할 수 있는 최대 데이터를 캐시하도록 설정해야 합니다. readahead 설정이 응용 프로그램에서 일반적으로 요청하고 장치가 제공할 수 있는 데이터 양보다 작은 경우 응용 프로그램 I/O 요청을 수행하려면 물리적 I/O가 필요 이상으로 필요합니다. 그러나 readahead를 너무 높게 설정하는 경우 메모리를 너무 많이 사용하여 전체 시스템 성능이 떨어질 수 있습니다. 예제에서는 readahead736킬로바이트(36개 64킬로바이트 DAU)로 설정합니다.

    #File
    #Device    Device   Mount     System  fsck  Mount    Mount
    #to Mount  to fsck  Point     Type    Pass  at Boot  Options
    #--------  -------  --------  ------  ----  -------  --------------------
    /devices   -        /devices  devfs   -     no       -
    /proc      -        /proc     proc    -     no       -
    ...
    qfsma      -        /qfsma    samfs   -     yes      ...,readahead=736
    :wq
    root@solaris:~# 
    
  7. 파일 시스템의 I/O 성능을 테스트하고 필요한 경우 readahead 설정을 조정합니다.

    readahead 매개변수 크기를 늘리면 큰 파일 전송의 성능이 어느 정도만 증가합니다. 따라서 readahead 크기를 재설정한 후 시스템의 성능을 테스트합니다. 그런 다음 전송 속도가 더 이상 향상되지 않을 때까지 readahead 크기를 위로 조정합니다.

페이징된 I/O 및 직접 I/O 간 전환 사용

응용 프로그램의 I/O 동작에 더 잘 맞는 경우 페이징된 I/O와 직접 I/O 간을 전환할 수 있도록 Oracle HSM 파일 시스템을 구성할 수 있습니다. 직접 I/O가 유용할 수 있는 읽기 및 쓰기의 섹터 맞춤 및 최소 크기 특성을 지정한 다음 전환을 트리거할 적격 읽기 및 쓰기 수를 설정합니다. 다음과 같이 하십시오.

  1. 파일 시스템 호스트에 root로 로그인합니다.

    root@solaris:~# 
    
  2. 운영체제의 /etc/vfstab 파일을 백업합니다.

    root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
    root@solaris:~# 
    
  3. 텍스트 편집기에서 /etc/vfstab 파일을 열고 구성할 파일 시스템의 행을 찾습니다.

    이 예제에서 파일 시스템의 이름은 qfsma입니다.

    root@solaris:~# vi /etc/vfstab
    #File     Device                      Mount
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- ------ ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   stripe=1
    
  4. 512바이트 섹터 경계에 제대로 정렬되는 읽기 요청에 대해 직접 I/O를 시작하기 위한 임계값 크기를 설정하려면 파일 시스템의 Mount Options 필드에 dio_rd_form_min=n 마운트 옵션을 추가합니다. 여기서 n은 킬로바이트 수입니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다.

    기본적으로 dio_rd_form_min=256킬로바이트입니다. 예제에서는 응용 프로그램이 512킬로바이트 이상의 읽기를 요청하지 않는 한 제대로 정렬된 읽기를 지속적으로 만들지 않습니다. 따라서 제대로 정렬된 직접 읽기에 대한 임계값 크기를 512로 변경합니다.

    #File     Device                      Mount
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- ------ ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   stripe=1,dio_rd_form_min=512
    
  5. 512바이트 섹터 경계에 제대로 정렬되는 쓰기 요청에 대해 직접 I/O를 시작하기 위한 임계값 크기를 설정하려면 파일 시스템의 Mount Options 필드에 dio_wr_form_min=n 마운트 옵션을 추가합니다. 여기서 n은 킬로바이트 수입니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다.

    기본적으로 dio_wr_form_min=256킬로바이트입니다. 예제에서는 응용 프로그램이 1메가바이트 이상의 쓰기를 요청하지 않는 한 제대로 정렬된 쓰기를 지속적으로 만들지 않습니다. 따라서 제대로 정렬된 직접 쓰기에 대한 임계값 크기를 1024킬로바이트로 변경합니다.

    #File     Device                      Moun
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- ------ ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   ...,dio_wr_form_min=1024
    
  6. 512바이트 섹터 경계에 제대로 정렬되지 않는 읽기 요청에 대해 직접 I/O를 시작하기 위한 임계값 크기를 설정하려면 파일 시스템의 Mount Options 필드에 dio_rd_ill_min=n 마운트 옵션을 추가합니다. 여기서 n은 킬로바이트 수입니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다.

    기본적으로 dio_rd_ill_min=0킬로바이트이므로 잘못 정렬된 읽기에 직접 I/O가 사용되지 않습니다. 예제에서는 응용 프로그램이 일반적으로 작은 데이터 청크에 대해 잘못 정렬된 읽기 요청을 만듭니다. 이 데이터는 대부분 순차적으로 다시 읽습니다. 따라서 이 읽기에는 페이지 캐싱을 사용하는 것이 더 좋습니다. 직접 I/O로 전환하면 불필요하게 물리적 I/O가 추가되고 성능이 떨어집니다. 따라서 기본값을 적용하고 vfstab 파일을 변경하지 않습니다.

    #File     Device                      Mount
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- ------ ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   ...,dio_wr_form_min=1024
    
  7. 512바이트 섹터 경계에 제대로 정렬되지 않는 쓰기 요청에 대해 직접 I/O를 시작하기 위한 임계값 크기를 설정하려면 파일 시스템의 Mount Options 필드에 dio_wr_ill_min=n 마운트 옵션을 추가합니다. 여기서 n은 킬로바이트 수입니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다.

    기본적으로 dio_wr_ill_min=0킬로바이트이므로 잘못 정렬된 쓰기에 직접 I/O가 사용되지 않습니다. 잘못 정렬된 쓰기는 시스템에서 섹터를 읽고, 수정하고, 써야 하므로 성능 측면에서 특히 비용이 많이 들 수 있습니다. 그러나 예제에서는 응용 프로그램이 경우에 따라 섹터 경계에 맞지 않는 하나의 큰 쓰기 요청을 한다는 점을 알고 있습니다. 읽기-쓰기-수정 작업이 큰 순차 섹터 블록의 처음과 끝에서만 수행되므로 직접 I/O가 페이징된 I/O보다 더 이롭습니다. 따라서 dio_wr_ill_min=2048킬로바이트를 설정합니다.

    예제에서는 맞지 않는 데이터 쓰기 작업 동안 직접 I/O를 사용하기 위한 기본 임계값을 2048킬로바이트로 변경합니다.

    #File     Device                      Mount
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- ------ ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   ...,dio_wr_ill_min=2048
    
  8. 읽기에 직접 I/O를 사용하도록 설정하려면 Mount Options 필드에 dio_rd_consec=n 마운트 옵션을 추가합니다. 여기서 n은 직접 I/O로의 전환을 트리거하기 위해 위에 저장된 크기 및 맞춤 요구 사항을 충족해야 하는 연속 I/O 전송의 수입니다. 직접 I/O가 유용한 응용 프로그램 작업에 대해 선택하는 값을 선택합니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다.

    기본적으로 dio_rd_consec=0이므로 I/O 전환이 사용 안함으로 설정됩니다. 예제에서는 응용 프로그램이 dio_rd_form_min에 지정된 최소 크기 512킬로바이트 이상이고 잘 정렬된 연속 읽기 3개를 요청하는 경우 직접 I/O가 적합해질 때까지 이러한 요청이 계속됩니다. dio_rd_form_min에 지정된 최소 크기가 기본값인 0이므로 직접 I/O를 사용으로 설정해도 맞지 않는 읽기 요청에는 영향을 주지 않습니다. 따라서 dio_rd_consec=3을 설정합니다.

    #File     Device                      Mount 
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- ------ ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   ...,dio_rd_consec=3
    
  9. 쓰기에 직접 I/O를 사용하도록 설정하려면 Mount Options 필드에 dio_wr_consec=n 마운트 옵션을 추가합니다. 여기서 n은 직접 I/O로의 전환을 트리거하기 위해 위에 저장된 크기 및 맞춤 요구 사항을 충족해야 하는 연속 I/O 전송의 수입니다. 직접 I/O가 유용한 응용 프로그램 작업에 대해 선택하는 값을 선택합니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다.

    기본적으로 dio_wr_consec=0이므로 I/O 전환이 사용 안함으로 설정됩니다. 예제에서는 응용 프로그램이 dio_wr_form_min에 지정된 최소 크기 1024킬로바이트 이상이고 제대로 정렬된 연속 쓰기 2개를 요청하는 경우 직접 I/O가 적합해질 때까지 이러한 요청이 계속됩니다. 또한 잘못 정렬된 연속 쓰기 2개가 dio_wr_form_min에 지정된 2048킬로바이트보다 크면 잘못 정렬된 상태가 비교적 문제되지 않습니다. 따라서 dio_wr_consec=2를 설정합니다.

    #File     Device                      Mount 
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- ------ ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   ...,dio_wr_consec=2
    
  10. vfstab 파일을 저장하고 편집기를 닫습니다.

    #File     Device                      Mount 
    #Device   to     Mount    System fsck at    Mount
    #to Mount fsck   Point    Type   Pass Boot  Options
    #-------- ------ -------- -----  ---- ----- -----------------------------
    /devices  -      /devices devfs  -    no    -
    /proc     -      /proc    proc   -    no    -
    ...
    qfsma     -      /qfsma   samfs  -    yes   ...,dio_wr_consec=2
    :wq
    root@solaris:~# 
    
  11. 수정된 파일 시스템을 마운트합니다.

    root@solaris:~# mount /qfsms
    root@solaris:~# 
    

직접 I/O만 사용하도록 파일 시스템 구성

응용 프로그램의 I/O 특성으로 인해 직접 I/O만 사용하는 것이 좋은 경우 forcedirectio 마운트 옵션을 사용하여 전체 파일 시스템을 마운트할 수 있습니다(개별 파일 또는 디렉토리에 대해 직접 I/O를 지정하는 방법에 대한 자세한 내용은 Oracle HSM setfa 매뉴얼 페이지 참조).

직접 I/O만 사용하도록 파일 시스템을 마운트하려면 다음과 같이 하십시오.

  1. 파일 시스템 호스트에 root로 로그인합니다.

    root@solaris:~# 
    
  2. 운영체제의 /etc/vfstab 파일을 백업합니다.

    root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
    root@solaris:~# 
    
  3. 텍스트 편집기에서 /etc/vfstab 파일을 열고 직접 I/O를 사용할 파일 시스템의 행을 찾습니다.

    이 예제에서 파일 시스템의 이름은 qfsma입니다.

    root@solaris:~# vi /etc/vfstab
    #File
    #Device    Device   Mount     System  fsck  Mount    Mount
    #to Mount  to fsck  Point     Type    Pass  at Boot  Options
    #--------  -------  --------  ------  ----  -------  --------------------
    /devices   -        /devices  devfs   -     no       -
    /proc      -        /proc     proc    -     no       -
    ...
    qfsma      -        /qfsma    samfs   -     yes      stripe=1
    
  4. 파일 시스템의 Mount Options 필드에 forcedirectio 마운트 옵션을 추가합니다. 콤마를 공백 없이 사용하여 마운트 옵션을 구분합니다. 파일을 저장하고 편집기를 닫습니다.

    #File
    #Device    Device   Mount     System  fsck  Mount    Mount
    #to Mount  to fsck  Point     Type    Pass  at Boot  Options
    #--------  -------  --------  ------  ----  -------  --------------------
    /devices   -        /devices  devfs   -     no       -
    /proc      -        /proc     proc    -     no       -
    ...
    qfsma      -        /qfsma    samfs   -     yes      stripe=1,forcedirectio
    :wq
    root@solaris:~# 
    
  5. 수정된 파일 시스템을 마운트합니다.

    root@solaris:~# mount /qfsms 
    root@solaris:~# 
    

Directory Name Lookup Cache 크기 늘리기

공유 파일 시스템의 클라이언트가 여러 파일을 동시에 여는 경우 메타데이터 서버에서 Oracle Solaris DNLC(Directory Name Lookup Cache)의 기본 크기가 적합하지 않을 수 있습니다. 메타데이터 서버가 모든 클라이언트 대신 파일 이름을 조회하므로 이런 상태에서는 파일 시스템 성능이 저하될 수 있습니다.

이러한 종류의 작업 로드가 예상되는 경우 Directory Name Lookup Cache 크기 매개변수 ncsize 값을 기본 크기의 2~3배로 변경합니다. 지침은 Oracle Solaris Information Library에서 Oracle Solaris Tunable Parameters Reference Manual을 참조하십시오(머리말의 사용 가능한 설명서 절 참조).