DTrace боломжийг ашиглахаас өмнө DTrace төхөөрөмж байх хэрэгтэй. Төхөөрөмжийг дуудахын тулд дараах тушаалыг ажиллуулна:
#
kldload dtraceall
DTrace дэмжлэг одоо боломжтой болсон байх ёстой. Бүх шалгалтыг харахын тулд администратор дараах тушаалыг одоо ажиллуулж болно:
#
dtrace -l | more
Дэлгэцийн буфферийг түргэн дүүргэх болохоор бүх гаралтыг
more
хэрэгсэл рүү дамжуулдаг. Энд хүрэхэд
DTrace-ийг ажиллаж байна гэж үзнэ. Одоо уг хэрэгслийг шалгаж үзэх
цаг боллоо.
Уг хэрэгсэл нь системийн мэдээллийг цуглуулахын тулд DTrace-тэй цуг ажиллуулж болох ашиглахад бэлэн скриптүүдийн цуглуулга юм. Нээлттэй файлууд, санах ой,CPU-ийн хэрэглээ болон өөр олон зүйлсийг шалгах скриптүүд байдаг. Скриптүүдийг дараах тушаалаар задалж болно:
#
gunzip -c DTraceToolkit* | tar xvf -
cd
ашиглан тэр сан руу өөрчилж жижиг үсгээр бичигдсэн
нэртэй бүх файлууд дээр ажиллуулах зөвшөөрлүүдийг 755
руу өөрчлөх хэрэгтэй.
Эдгээр бүх скриптүүдийн агуулгад өөрчлөлт хийх хэрэгтэй
болно. /usr/bin/ksh
гэснийг
/usr/local/bin/ksh
болгох ёстой
бөгөөд /usr/bin/sh
-ийг
/bin/sh
болгон ашиглахаар, төгсгөлд нь
/usr/bin/perl
-г
/usr/local/bin/perl
болгон
ашиглахаар болгож өөрчлөх хэрэгтэй.
FreeBSD дээрх DTrace дэмжлэг нь бүрэн бус бөгөөд туршилтын гэдгийг уншигчид сануулах нь ухаалаг болох юм. Эдгээр скриптүүдийн олонхи нь ажиллахгүй бөгөөд тэдгээр нь хэтэрхий Solaris™-д тусгайлан зориулсан эсвэл одоо дэмжигдээгүй байгаа шалгалтуудыг ашигладаг.
Үүнийг бичиж байх үед DTrace хэрэгслийн зөвхөн хоёр скрипт
FreeBSD дээр бүрэн дэмжигдсэн: эдгээр нь hotkernel
болон procsystime
скриптүүд юм.
Эдгээр хоёрыг бид энэ бүлгийн дараагийн хэсгүүдэд авч үзэх
болно.
hotkernel
нь аль функц цөмийн ихэнх хугацааг
ашиглаж байгааг илрүүлэхээр хийгдсэн. Хэвийнээр ажиллуулахад
энэ нь дараахтай төстэй гаралтыг харуулах болно:
#
cd /usr/share/dtrace/toolkit
#
./hotkernel
Sampling... Hit Ctrl-C to end.Системийн администратор процессийг зогсоохын тулд Ctrl+C товчлуурын хослолыг ашиглах ёстой. Зогсоосны дараа скрипт нь цөмийн функцуудын жагсаалт болон хугацааны мэдээллийг харуулах бөгөөд гаралтыг хугацааны ихэссэн дарааллаар эрэмбэлж харуулна:
Энэ скрипт нь цөмийн модулиудтай бас ажилладаг. Энэ боломжийг
ашиглахын тулд скриптийг -m
өгөгдөлтэй ажиллуулах хэрэгтэй:
#
./hotkernel -m
Sampling... Hit Ctrl-C to end.
^C
MODULE COUNT PCNT
0xc107882e 1 0.0%
0xc10e6aa4 1 0.0%
0xc1076983 1 0.0%
0xc109708a 1 0.0%
0xc1075a5d 1 0.0%
0xc1077325 1 0.0%
0xc108a245 1 0.0%
0xc107730d 1 0.0%
0xc1097063 2 0.0%
0xc108a253 73 0.0%
kernel 874 0.4%
0xc10981a5 213781 99.6%procsystime
скрипт нь өгөгдсөн
PID эсвэл процессийн хувьд системийн дуудлагын
цагийн хэрэглээг авч хэвлэн харуулдаг. Дараах жишээн дээр
/bin/csh
-ийн шинэ хуулбар ажиллуулсан.
procsystime
-ийг ажиллуулсан бөгөөд
өөр нэг csh
дээр цөөн хэдэн тушаалыг бичтэл
энэ нь хүлээх горимд орсон. Энэ тестийн үр дүн энд байна:
#
./procsystime -n csh
Tracing... Hit Ctrl-C to end...
^C
Elapsed Times for processes csh,
SYSCALL TIME (ns)
getpid 6131
sigreturn 8121
close 19127
fcntl 19959
dup 26955
setpgid 28070
stat 31899
setitimer 40938
wait4 62717
sigaction 67372
sigprocmask 119091
gettimeofday 183710
write 263242
execve 492547
ioctl 770073
vfork 3258923
sigsuspend 6985124
read 3988049784Энд үзүүлснээр read()
системийн дуудлага ихэнх цагийг,
getpid()
системийн дуудлага хамгийн
бага хугацааг ашигласныг наносекундаар харуулж байна.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар
<questions@FreeBSD.org>
хаягтай холбоо барихаасаа өмнө
баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал
<doc@FreeBSD.org>
хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал
<admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.