บทนำ
Oracle® OSWatcher เป็น Utility ที่รวบรวมข้อมูลจากคำสั่ง เช่น vmstat, iostat, top, ps, netstat, HP-UX® sar, และ Linux® meminfo OSWatcher จัดเก็บไฟล์ข้อมูล ค้นหา Issue แบบอัตโนมัติ และช่วยหา Root Cause ของปัญหาได้
การทำงานของ OSWatcher
ทุกชั่วโมง OSWatcher รวบรวม OS Statistics ใน Background โดยใช้คำสั่ง OS ต่อไปนี้:
- CPU
- Memory
- Disk I/O
OSWatcher เขียนไฟล์ไปที่ $TFA_HOME/repository/suptools/walhall/oswbb/oracle/archive/
เนื่องจากไม่มี Automatic Housekeeping คุณควรสร้าง Cron Job ลบไฟล์เก่าออกอัตโนมัติ เช่น ลบไฟล์เก่ากว่า 10 วัน:
find $TFA_HOME/repository/suptools/walhall/oswbb/oracle/archive -name "*.*" -mtime +10 -exec rm -f {} \;
อ่าน Log Output ของ oswiostat
ถ้า iostat ติดตั้งและ User OSWatcher มีสิทธิ์รัน Utility OSWatcher จะรวบรวมและ Archive Output ทุกชั่วโมง (Default) จากคำสั่ง iostat
iostat ใช้ Monitor System Input/Output Device Load รวบรวมข้อมูล:
- เวลา
- Physical Disks และ Average Data Transfer Rate
ตัวอย่าง Output
Log ไฟล์ oswiostat ประกอบด้วยข้อมูล:
device: ชื่ออุปกรณ์r/s: Reads ต่อวินาทีw/s: Writes ต่อวินาทีrsec/s: Kilobytes อ่านต่อวินาทีwsec/s: Kilobytes เขียนต่อวินาทีavgrq-sz: จำนวน Transaction เฉลี่ยที่รอ Serviceavgqu-sz: จำนวน Transaction เฉลี่ยที่กำลังได้ Service%util: เปอร์เซ็นต์เวลาที่ Disk Busy
ตัวอย่าง oswiostat Logs 2 ครั้ง ห่างกัน 7 ชั่วโมง:
ช่วงเวลาที่ระบบเงียบ (Slow Time):
Time: 00:01:09 avg-cpu: %user %nice %system %iowait %steal %idle 5.22 0.01 1.77 0.10 0.00 92.90
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 10.24 101.92 10.28 29.60 569.53 1057.09 40.79 0.21 5.30 0.53 2.11
sda1 0.00 0.00 0.00 0.00 0.17 0.00 138.66 0.00 12.37 3.45 0.00
sda2 10.24 101.92 10.28 29.57 569.36 1057.09 40.81 0.21 5.30 0.53 2.11
dm-0 0.00 0.00 1.72 77.98 75.95 623.85 8.78 1.20 14.99 0.08 0.67
dm-1 0.00 0.00 0.46 2.37 3.80 18.94 8.04 0.01 2.71 0.29 0.08
dm-2 0.00 0.00 7.44 50.74 278.30 410.79 11.84 0.72 12.30 0.23 1.33
dm-3 0.00 0.00 0.00 0.00 0.15 0.00 509.61 0.00 46.78 7.53 0.00
dm-4 0.00 0.00 0.49 0.00 117.41 0.02 238.95 0.00 1.94 1.05 0.05
dm-5 0.00 0.00 0.05 0.00 10.84 0.00 230.78 0.00 2.58 1.34 0.01
dm-6 0.00 0.00 0.00 0.00 0.10 0.00 479.96 0.00 54.94 8.70 0.00
ช่วงเวลาที่ระบบ Busy (Busy Time):
Time: 07:32:57 avg-cpu: %user %nice %system %iowait %steal %idle 8.16 0.00 70.29 21.55 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 163.40 7.73 2074.74 53.95 73642.61 493.47 34.83 107.13 50.07 0.47 100.07
sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda2 163.40 7.73 2074.74 53.95 73642.61 493.47 34.83 107.13 50.07 0.47 100.07
dm-0 0.00 0.00 201.03 0.86 8412.37 6.87 41.70 58.68 281.80 4.96 100.07
dm-1 0.00 0.00 180.76 26.46 1446.05 211.68 8.00 25.24 119.01 4.83 100.07
dm-2 0.00 0.00 1868.90 34.54 63913.40 276.29 33.72 332.23 172.22 0.53 100.09
dm-3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Images Source: https://www.dbas-oracle.com/2013/05/How-to-Analyze-or-Read-OS-Watcher-Output-in-three-easy-steps-With-Example.html
Snapshot เวลาเที่ยงคืนแสดง Performance ดี ส่วน 7:32 AM แสดง Performance แย่ สังเกตตัวบ่งชี้ Performance แย่ใน Snapshot ที่ 2:
- หลาย Disk Busy 100% ตามคอลัมน์
%util - คอลัมน์
r/sแสดง Reads ต่อวินาทีสูงมาก avg-cpu %idleแสดงระบบ Idle 0% เทียบกับ 92% ใน Snapshot ก่อนหน้า
อ่าน Log Output ของ mpstat
ถ้า mpstat ติดตั้งและ User มีสิทธิ์ OSWatcher จะรวบรวม Output ทุกชั่วโมงจาก mpstat DBA ใช้คำสั่งนี้ Monitor CPU Utilization
ตัวอย่าง Output
Log ไฟล์ mpstat ประกอบด้วย:
CPU: CPU ไหนall= Stats จาก CPU ทั้งหมด%user: % CPU ที่ User Programs ใช้%sys: % CPU ที่ System Programs ใช้%iowait: % CPU ที่ IO Waits ใช้%idle: % Idle System Resources
ตัวอย่าง mpstat Logs 2 ครั้ง ห่างกัน 1 ชั่วโมง:
ช่วงเวลาที่ระบบเงียบ:
zzz ***Tue Apr 23 06:13:44 EDT 2013 Sample interval: 5 seconds
Linux 2.6.32-400.21.1.el5uek (remote.database.com) 04/23/13
06:13:44 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
06:13:49 all 6.26 0.00 1.32 0.00 0.01 0.02 0.00 92.39 36448.70
06:13:54 all 8.17 0.00 1.92 0.01 0.00 0.05 0.00 89.86 38918.09
... (ตัดส่วนกลางเพื่อความกระชับ) ...
06:14:54 all 7.31 0.00 1.00 0.00 0.00 0.03 0.00 91.65 39378.74
ช่วงเวลาที่ระบบ Busy:
zzz ***Tue Apr 23 07:23:02 EDT 2013 Sample interval: 5 seconds
Linux 2.6.32-400.21.1.el5uek (remote.database.com) 04/23/13
07:24:20 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
07:24:25 all 2.74 0.00 97.16 0.00 0.00 0.10 0.00 0.00 39066.67
07:24:30 all 3.06 0.00 96.87 0.00 0.00 0.07 0.00 0.00 37637.52
... (ตัดส่วนกลาง) ...
07:25:56 all 7.80 0.00 85.97 6.13 0.00 0.10 0.00 0.00 41234.83
Snapshot 06:13 ดี 07:32 AM แย่ ตัวบ่งชี้ Performance แย่ใน Snapshot ที่ 2:
%sysแสดง Peak Utilization 97.17%iowaitแสดง Peak Utilization 78.20
อ่าน Top Output
คำสั่ง top ให้ Snapshot Processor Activity ทุกชั่วโมง แสดง Process เรียงตาม CPU Utilization มากไปน้อย Process ที่ใช้ CPU มากสุดอยู่บนสุด
กรณี CPU Utilization เพิ่มขึ้นกะทันหันแต่จำนวน Process ไม่เปลี่ยน top ช่วยระบุ Issue ได้
ตัวอย่าง Output และการวิเคราะห์
Scenario: CPU Spike แม้ Load ไม่เพิ่ม
zzz ***Tue Apr 23 03:13:44 EDT 2013 Sample interval: 5 seconds. All measurements in KB (1024 bytes)
top - 04:13:44 up 22 days, 21:12, 10 users, load average: 65.80, 169.78, 117.65
Tasks: 2297 total, 4 running, 2229 sleeping, 0 stopped, 64 zombie
Cpu0 : 12.7%us, 2.6%sy, 0.0%ni, 84.2%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
... (CPU 1-11) ...
Mem: 99060540k total, 91969324k used, 7091216k free, 84044k buffers
Swap: 25165816k total, 17797404k used, 7368412k free, 609612k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20343 oracle 20 0 13.4g 10g 5864 R 98.4 10.7 18:56.54 oraclevntrd2 (LOCAL=NO)
30180 root 20 0 11872 2312 656 R 98.4 0.0 0:00.68 /bin/netstat -n -p -l
6568 root 39 19 0 0 0 R 89.9 0.0 263:39.04 [kipmi0]
... (Process อื่นๆ) ...
การวิเคราะห์ Log:
- บรรทัด
zzz ***Tue Apr 23 03:13:44...ระบุเวลาที่ Log Capture Statistics - บรรทัด
top - 04:13:44 up 22 days...ระบุ System Up 22 วัน - บรรทัด
load average: 65.80, 169.78, 117.65แสดง Average Processes ใน Run Queue 1, 5, 15 นาที ค่าเยอะ = ระบบ Busy การเพิ่มขึ้นอย่างมีนัยสำคัญอาจบ่งบอกปัญหา - บรรทัด
Tasks: 2297 total, 4 running...แสดง Process ทั้งหมด 2297 Sleeping 2229 (Blocked by I/O หรือ System Call) Running 4 (ไม่เกินจำนวน CPU) Zombie 64 (ตายแต่ยังไม่ Clean up) จำนวน Process เปลี่ยนแปลงได้ แต่ถ้าเพิ่ม/ลดกะทันหันอาจบ่งบอกปัญหา - บรรทัด
Mem: ...แสดง RAM ใช้และว่างใน KB ติดตามการเปลี่ยนแปลงเพื่อหาปัญหา - บรรทัด
Swap: ...ถ้า RAM หมดระบบจะใช้ Swap ถ้า Swap ใช้เกิน ~40% ของ RAM ควรเพิ่ม RAM Swap สูงทำ Performance แย่ ถ้า 100% ระบบอาจ Reboot - บรรทัด CPU แสดงจำนวนและ Utilization ของ 12 CPUs
- ส่วน Process แสดงรายละเอียด Process ที่รัน: PID, USER, %CPU, %MEM, COMMAND
สรุป
ใช้ OSWatcher ติดตาม System Performance และระบุปัญหาที่เป็นไปได้ เช่น ตรวจสอบว่า Process ใช้ CPU มากนานๆ ถ้า SQL Command Load สูง อาจเป็น Candidate สำหรับ Tuning ถ้า Process ใช้ Memory มาก ตรวจสอบว่าปกติหรือไม่
ยังมี Stats อื่นๆ ใน OSWatcher หลังดู CPU, Memory, Disk I/O (เช่น System Load) ถ้าระบุ Load Increase ได้ด้วย OSWatcher Analysis ถือว่าได้ครึ่งหนึ่งของการแก้ปัญหาแล้ว
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม
Reference Source:
How to Analyze or Read OSWatcher Output in Three Easy Steps with Example
เพิ่มประสิทธิภาพสภาพแวดล้อมด้วยบริการผู้เชี่ยวชาญ
ผู้เชี่ยวชาญ Rackspace Application Services (RAS) ให้บริการ Professional และ Managed Services ครอบคลุม Portfolio หลากหลาย:
- Platform สำหรับ eCommerce และ Digital Experience
- Enterprise Resource Planning (ERP)
- Business Intelligence
- Salesforce Customer Relationship Management (CRM)
- Databases
- Email Hosting และ Productivity
เรามอบ:
- Unbiased Expertise: ลดความซับซ้อนและนำทางการ Modernization เน้นความสามารถที่สร้างคุณค่าทันที
- Fanatical Experience™: รวมแนวทาง Process First. Technology Second.® พร้อม Technical Support ให้ Soluation ครบวงจร
- Unrivaled Portfolio: ประยุกต์ประสบการณ์ Cloud มากมายช่วยเลือกและ Deploy เทคโนโลยีที่เหมาะสมบน Cloud ที่เหมาะสม
- Agile Delivery: ตรงจุดที่คุณอยู่ในการเดินทางและทำให้ความสำเร็จของเราสอดคล้องกับคุณ
แชทตอนนี้เพื่อเริ่มต้น