Working with DTrace

การบ้านครั้งที่ 2 สำหรับวิชา UNIX คือให้ฝึกใช้คำสั่ง DTrace เป็นโปรแกรมที่เอาไว้วัด Performance ต่างๆของเครื่อง

ว่าไปก็คล้ายๆโปรแกรม Intel VTune Performance Analyze และโปรแกรม Intel Thread Profiler

ตามการบ้านให้หาข้อมูลเหล่านี้

  • provider/probe
  • hooks
  • scripting
  • predicates
  • DIF
  • aggregation
  • DTrace client
  • DTrace ioctl

Enabling DTrace

สำหรับขั้นตอนการ Enable DTrace ใน FreeBSD ก็มีดังนี้

  • Compile kernel ใหม่เพื่อใส่ option เพื่อ support DTrace กันก่อน
    • สมมติว่าเครื่องเป็น CPU แบบ i386 ให้เข้าไปที่ /usr/src/sys/i386/conf/
      ถ้าเข้าไปแล้วพบว่าไม่ีมีี directory ดังกล่าว หรือว่าไม่มี source ของ kernel ให้ทำตามนี้
      http://www.freebsd.org/doc/en/books/handbook/kernelconfig-building.html
    • แก้ไฟล์ GENERIC (หรือ copy ออกมาเป็นอีกไฟล์ก็ได้) โดยทำตามนี้
      http://www.freebsd.org/doc/en/books/handbook/dtrace-enable.html
    • ถ้า copy ไฟล์ GENERIC ออกมาแก้ หรือแก้ไฟล์ config อื่นๆ
      ตอน compile kernel ต้องสั่ง
      make WITH_CTF=1 kernel KERNCONF=#FILENAME
    • Compile เสร็จแล้วก็ restart
    • ปัญหาที่พบ
      • HDD ไม่พอ ควรเหลือพื้นที่เกิน 3GB ขึ้นไป ไม่แน่ใจว่าใน /usr หรือใน /boot
      • ตอน copy source ไฟล์จาก /cdrom เนื่องจากแผ่นที่ใช้เป็น รุ่น 8.0 RC2 (รึเปล่า) ทำให้มันไม่ได้เก็บ src ไว้ที่ /cdrom แต่ต้อง browse เข้าไปอีกใน folder ชื่อ 8.0-RC2 ก่อน จึงได้คำสั่งเป็น
        cat /cdrom/8.0-RC2/src/ssys.[a-d]* | tar -xzvf -
        cat /cdrom/8.0-RC2/src/sbase.[a-d]* | tar -xzvf -
    • ข้อควรระวัง
      • Backup kernel เก่าไว้ก่อน โดย rename /boot/kernel.old เป็นชื่ออื่นเช่น /boot/kernel.good เป็นต้น
        ถ้าเกิดมีปัญหาจะได้กลับมา Boot ด้วย kernel เก่าได้
  • ถ้า Kernel ใหม่ที่ สร้างมาไม่มีปัญหาใดๆ ก็ทำตามนี้ต่อเลย http://www.freebsd.org/doc/en/books/handbook/dtrace-using.html

DTrace D Language Resources

ในการบ้านต้องมีการแสดง feature ต่างๆของ DTrace ด้วย นั่นหมายถึงการเขียนโปรแกรมด้วยภาษา D Language ซึ่งสามารถศึกษาได้จากแหล่งเหล่านี้

สำหรับตัวอย่างการสร้าง Partition ใหม่ใน FreeBSD และตัวอย่างของแต่ละหัวข้อในการบ้านจะยกไว้ Blog หน้าละกัน

6 thoughts on “Working with DTrace”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>