← man/disk_and_filesystems
cvdbset — man cvdbset — 80×24
ugur@toprak:~/man/disk_and_filesystems$man cvdbset
Bölüm 8 Disk & Dosya Sistemleri

cvdbset

cvdb izlemesini kontrol eden bir program.

Genel Bakış

       cvdbset [options]

Açıklama

cvdbset, sistem yöneticilerinin Xsan Dosya Sistemi istemci dosya sisteminden gelen cvdb(8) izleme bilgilerini kontrol etmeleri için bir araçtır.

Yayılan izleme düzeyi modül bazında kontrol edilebilir. İzlemenin etkinleştirildiği modüller kümesine izleme kümesi (trace set) denir. İzleme düzeyi, bir izleme noktası kümesi (giriş/çıkış noktaları gibi) belirtilerek daha da hassaslaştırılabilir. Etkinleştirilmiş izleme noktaları kümesine logmask denir.

Uyarı: İzlemenin etkinleştirilmesi önemli bir performans etkisine neden olabilir.

cvdbset şu amaçlarla kullanılabilir:

İzleme kümesindeki mevcut tüm istemci modüllerini listelemek.

Tüm modülleri izleme kümesine eklemek.

İzleme kümesini tanımlamak.

Seçilen modülleri izleme kümesine eklemek.

Seçilen modülleri izleme kümesinden kaldırmak.

İzleme kümesindeki bir modül kümesi için logmask ayarlamak.

Günlük kaydı tamponunu yeniden boyutlandırmak.

Sürekli izlemeyi başlatmak/durdurmak.

İzlemeyi devre dışı bırakmak.

Seçenekler

seçenek yok İzlemenin etkin/devre dışı olduğunu, günlük tamponunun boyutunu, izleme kümesindeki modülleri ve bunlara karşılık gelen logmask'leri görüntüler.

all Tüm modüllerin izlenmesini etkinleştirir. cvdbset bir modül listesiyle çağrıldığında bazı modüller kapatılır. cvdbset all, tüm modülleri izleme için ayarlar. + veya - ile kullanıldığında, tüm modülleri ekler veya kaldırır.

[:]module1 [:]module2 ... Bir modül listesiyle çağrıldığında, cvdbset önce tüm modülleri devre dışı bırakır. Ardından, tam olarak verilen modül listesini etkinleştirir. Etkinleştirilebilecek tüm modülleri görmek için cvdbset -l komutunu/seçeneğini kullanın. Modül adının önüne : getirilirse, modül adını içeren tüm modüller etkilenir.

  • [:]module1 [:]module2 ... İlk argüman olarak bir artı işareti (+) ve ardından bir modül listesiyle çağrıldığında, verilen modül listesi mevcut izleme kümesine eklenir. Modül adının önüne : getirilirse, modül adını içeren tüm modüller etkilenir.
  • [:]module1 [:]module2 ... İlk argüman olarak bir eksi işareti (-) ve ardından bir modül listesiyle çağrıldığında, verilen modül listesi mevcut izleme kümesinden kaldırılır. Modül adının önüne : getirilirse, modül adını içeren tüm modüller etkilenir.

  • -h: Bir yardım mesajı görüntüler ve çıkar.

  • -c: Sürekli cvdb izlemesini etkinleştirir. İzleme günlüğü saniyede bir kez alınır ve cvdbout.000001, ... olarak adlandırılan dosyalara yerleştirilir.

  • -d: cvdb izlemesini devre dışı bırakır.

  • -g: Mevcut izleme tamponunu standart çıktıya döker.

  • -l: Günlük kaydının etkin olup olmadığını, tampon boyutunu ve tüm modüller için logmask değerini görüntüler.

  • -L: -t seçeneği ile kullanılmak üzere kullanılabilir tüm izleme noktalarının listesini görüntüler.

  • -r mb: İzleme tamponunu mb megabayt olarak yeniden boyutlandırır.

-t tracepoint Belirtilen modüller için yalnızca belirtilen izleme noktalarında izlemeyi etkinleştirir. Birden fazla -t seçeneği sağlanabilir. İzleme noktalarının listesini görmek için cvdbset'in -L seçeneğini kullanın.

Örnekler

       İzleme kümesinde hangi modüllerin olduğunu ve bunların logmask'lerini görmek için, parametresiz cvdbset komutu kullanılır. İşte başlangıçta bu komutun çıktısı.

 	  Debug logging is DISABLED, Bufsize 4194304
 	  Currently set masks:
 	  Module '   proxy_clnt' module 0x0000000000000001   logmask 0xffffffffffffffff
 	  Module '	  cvdir' module 0x0000000000000002   logmask 0xffffffffffffffff
 	  Module '	 cvdisk' module 0x0000000000000004   logmask 0xffffffffffffffff
 	  Module '	   cvnc' module 0x0000000000000008   logmask 0xffffffffffffffff
 	  Module '	 cvpath' module 0x0000000000000010   logmask 0xffffffffffffffff
 	  Module '	portmap' module 0x0000000000000020   logmask 0xffffffffffffffff
 	  Module '	 cvsock' module 0x0000000000000040   logmask 0xffffffffffffffff
 	  Module '	 cvsubr' module 0x0000000000000080   logmask 0xffffffffffffffff
 	  Module '	 dmigfs' module 0x0000000000000100   logmask 0xffffffffffffffff
 	  Module '	   dmig' module 0x0000000000000200   logmask 0xffffffffffffffff
 	  Module '	   dmon' module 0x0000000000000400   logmask 0xffffffffffffffff
 	  Module '	 extapi' module 0x0000000000000800   logmask 0xffffffffffffffff
 	  Module '	 extent' module 0x0000000000001000   logmask 0xffffffffffffffff
 	  Module '	  fsmat' module 0x0000000000002000   logmask 0xffffffffffffffff
 	  Module '	 fsmcom' module 0x0000000000004000   logmask 0xffffffffffffffff
 	  Module '	fsmdmig' module 0x0000000000008000   logmask 0xffffffffffffffff
 	  Module '     fsmproxy' module 0x0000000000010000   logmask 0xffffffffffffffff
 	  Module '	fsmrtio' module 0x0000000000020000   logmask 0xffffffffffffffff
 	  Module '     fsmtoken' module 0x0000000000040000   logmask 0xffffffffffffffff
 	  Module '	 fsmvfs' module 0x0000000000080000   logmask 0xffffffffffffffff
 	  Module '     fsmvnops' module 0x0000000000100000   logmask 0xffffffffffffffff
 	  Module '     memalloc' module 0x0000000000200000   logmask 0xffffffffffffffff
 	  Module '    proxy_con' module 0x0000000000400000   logmask 0xffffffffffffffff
 	  Module '	 quotas' module 0x0000000000800000   logmask 0xffffffffffffffff
 	  Module '	  recon' module 0x0000000001000000   logmask 0xffffffffffffffff
 	  Module '	   rtio' module 0x0000000002000000   logmask 0xffffffffffffffff
 	  Module '	  rwbuf' module 0x0000000004000000   logmask 0xffffffffffffffff
 	  Module '	rwproxy' module 0x0000000008000000   logmask 0xffffffffffffffff
 	  Module '	 rwlock' module 0x0000000010000000   logmask 0xffffffffffffffff
 	  Module '	     rw' module 0x0000000020000000   logmask 0xffffffffffffffff
 	  Module 'slidingbucket' module 0x0000000040000000   logmask 0xffffffffffffffff
 	  Module '    sockinput' module 0x0000000080000000   logmask 0xffffffffffffffff
 	  Module '    proxy_srv' module 0x0000000100000000   logmask 0xffffffffffffffff
 	  Module '   proxy_subr' module 0x0000000200000000   logmask 0xffffffffffffffff
 	  Module '	 vfsops' module 0x0000000400000000   logmask 0xffffffffffffffff
 	  Module '	  vnops' module 0x0000000800000000   logmask 0xffffffffffffffff
 	  Module '	   perf' module 0x0000001000000000   logmask 0xffffffffffffffff
 	  Module '     md_cvdir' module 0x0000002000000000   logmask 0xffffffffffffffff
 	  Module '    md_cvsock' module 0x0000004000000000   logmask 0xffffffffffffffff
 	  Module '    md_cvsubr' module 0x0000008000000000   logmask 0xffffffffffffffff
 	  Module '	md_dmon' module 0x0000010000000000   logmask 0xffffffffffffffff
 	  Module '    md_fsmcom' module 0x0000020000000000   logmask 0xffffffffffffffff
 	  Module '  md_memalloc' module 0x0000040000000000   logmask 0xffffffffffffffff
 	  Module '    md_rwlock' module 0x0000080000000000   logmask 0xffffffffffffffff
 	  Module '	  md_rw' module 0x0000100000000000   logmask 0xffffffffffffffff
 	  Module '   md_rwproxy' module 0x0000200000000000   logmask 0xffffffffffffffff
 	  Module '  md_socksubr' module 0x0000400000000000   logmask 0xffffffffffffffff
 	  Module '    md_vfsops' module 0x0000800000000000   logmask 0xffffffffffffffff
 	  Module '     md_vnops' module 0x0001000000000000   logmask 0xffffffffffffffff
 	  Module '    sh_cvsubr' module 0x0002000000000000   logmask 0xffffffffffffffff
 	  Module '    sh_fsmcom' module 0x0004000000000000   logmask 0xffffffffffffffff
 	  Module ' sh_sockinput' module 0x0008000000000000   logmask 0xffffffffffffffff
 	  Module '     sh_vnops' module 0x0010000000000000   logmask 0xffffffffffffffff

       Seçilen modüller için izlemeyi etkinleştirmek için:

 	      cvdbset md_vnops rw fsmvnops fsmtoken fsmdmig

       Bu, yalnızca bu beş modül için izlemeyi etkinleştirir ve çıktıyı yazdırir:

 	  Setting md_vnops.
 	  Setting rw.
 	  Setting fsmvnops.
 	  Setting fsmtoken.
 	  Setting fsmdmig.
 	  cvdb -m modules=0x0001000020148000 logmask=0xffffffffffffffff

       Bir argümanın önüne iki nokta üst üste (:) getirilirse, adı bu argümanı alt dize (substring) olarak içeren tüm modüller dahil edilir.

       md_vnops izleme modülünü ve proxy ile ilgili tüm modülleri etkinleştirmek için:

 	      cvdbset md_vnops :proxy

       Bu, aşağıdaki çıktıyı görüntüler:

 	  Setting md_vnops.
 	  Setting proxy_clnt.
 	  Setting fsmproxy.
 	  Setting proxy_con.
 	  Setting rwproxy.
 	  Setting proxy_srv.
 	  Setting proxy_subr.
 	  Setting md_rwproxy.
 	  cvdb -m modules=0x0001200308410001 logmask=0xffffffffffffffff

       rwbuf ve vnops modüllerini, cvENTRY ve cvEXIT izleme noktaları etkinleştirilmiş olarak mevcut izleme kümesine eklemek için:

 	      cvdbset -t cvENTRY -t cvEXIT + rwbuf vnops

       Bu, aşağıdaki çıktıyı görüntüler:

 	  Adding rwbuf.
 	  Adding vnops.
 	  cvdb -m modules=0x0000000804000000 logmask=0x0000000000000003
       rwbuf ve vnops modüllerini mevcut izleme kümesinden kaldırmak için:

 	      cvdbset - rwbuf vnops

       Bu, aşağıdaki çıktıyı görüntüler:

 	  Clearing rwbuf.
 	  Clearing vnops.
 	  cvdb -m modules=0x0000000804000000 logmask=0x0000000000000000

       Özel all modülü, tüm modülleri izlemeden eklemek veya kaldırmak için hem + hem de - seçenekleriyle kullanılabilir.

       İzleme etkinleştirildikten sonra, izlemeyi almak için cvdbset -g kullanılabilir. İstenildiğinde, izlemeyi devre dışı bırakmak için cvdbset -d kullanılabilir.

       İzlemenin daha da hassas kontrolü için çeşitli cvdb(8) komutları/seçenekleri kullanılabilir. Daha fazla ayrıntı için cvdb(8) sayfasına bakın.

I/O PERFORMANS ANALİZİ
       'perf' izleme modülü, I/O performansını analiz etmek için çok kullanışlıdır, örneğin:

 	      cvdbset perf

       Ardından cvdbset -g şu şekilde bilgi gösterecektir:

 	       PERF: Device Write 41 MB/s IOs 2 exts 1 offs 0x0 len 0x400000 mics 95589 ino 0x5
 	       PERF: VFS Write EofDmaAlgn 41 MB/s offs 0x0 len 0x400000 mics 95618 ino 0x5

       'PERF: Device' izlemesi, aygıt I/O'su için ölçülen verimi (throughput) gösterir. Ayrıca, I/O'nun kaç parçaya bölündüğünü ve uzantı (extent) sayısını (ardışık dosya sistemi bloklarının dizisi) gösterir.

       'PERF: VFS' izlemesi, okuma veya yazma sistem çağrısı için ölçülen verimi ve aşağıdakiler dahil olmak üzere I/O'nun önemli yönlerini gösterir:

 	      Dma  - DMA
 	      Buf  - Tamponlu (Buffered)
 	      Eof  - Dosya genişletildi (File extended)
 	      Algn - Düzgün biçimlendirilmiş DMA I/O
 	      Shr  - Dosya başka bir istemci tarafından paylaşılıyor
 	      Rt   - Dosya gerçek zamanlı (real time)
 	      Zr   - Dosyadaki boşluk (hole) sıfırlandı

       Her iki izleme de dosya ofsetini, I/O boyutunu, gecikme süresini (mics) ve inode numarasını raporlar.

       Örnek kullanım durumları:

       1) I/O özelliklerinin beklendiği gibi olduğunu doğrulayın.
 	  VFS izlemesi, görüntülenen özelliklerin beklentilerle uyumlu olmasını sağlamak için kullanılabilir, örneğin; düzgün biçimlendirilmiş, tamponlu veya DMA, paylaşılan/paylaşılmayan veya I/O boyutu.
 	  Küçük bir I/O işlemi DMA ile gerçekleştiriliyorsa performans zayıf olacaktır. DMA I/O düzgün biçimlendirilmemişse, ekstra bir veri kopyalaması gerektirir ve hatta küçük parçalara bölünebilir.
 	  Dosyalardaki boşlukların sıfırlanmasının performans üzerinde etkisi vardır.

       2) Meta veri işlemlerinin performansı etkileyip etkilemediğini belirleyin.
 	  VFS verimi tutarsızsa veya Aygıt (Device) veriminden önemli ölçüde düşükse, bunun nedeni meta veri işlemleri olabilir. Bu durumda, 'perf' izlemesine ek olarak 'fsmtoken', 'fsmvnops' ve 'fsmdmig' izlemelerini görüntülemek yararlı olacaktır.

       3) Disk performans sorunlarını tespit edin.
 	  Aygıt (Device) verimi tutarsızsa veya beklenenden azsa, bu durum bir depolama havuzundaki yavaş bir diski veya RAID ayarlamasının gerekli olduğunu gösterebilir.

       4) Dosya parçalanmasını (fragmentation) tespit edin.
 	  Uzantı sayısı olan 'exts' yüksekse, bu durum bir parçalanma sorununa işaret edebilir. Bu, aygıt I/O'larının daha küçük parçalara bölünmesine neden olur ve verimi önemli ölçüde etkileyebilir.

       5) Okuma/değiştirme/yazma (read/modify/write) durumunu tespit edin.
 	  Tamponlu VFS yazmaları Aygıt (Device) okumalarına neden oluyorsa, I/O istek boyutunu 'cachebufsize' değerinin bir katıyla (varsayılan 256KB veya 1024K, bkz. mount_acfs(8)) eşleştirmek faydalı olabilir.
 	  Bunu önlemenin bir başka yolu da yazmadan önce dosyayı kırpmaktır (truncate).

Ayrıca Bakınız

cvdb(8)

Xsan Dosya Sistemi Kasım 2019 CVDBSET(8)