Core dump อีกแล้ว!! คำพูดนี้เกิดขึ้นหลังจากที่เพื่อนคนหนึ่งได้โทรมาถามปัญหาเรื่องการใช้ rpm เสร็จ ตอนแรกก็งงๆ core dump คือไรหว่า มันขึ้น error ตรงไหน แล้วรู้ได้ไง ผมเลยลองค้นๆดูปรากฏว่าปัญหานี้เราเคยเจอแล้วนี้ เจอที่ blog ของเราเองด้วย แต่ตอนนั้นไม่ได้หาสาเหตุว่าเกิดจากอะไรกันแน่เพราะว่าไม่มีสิทธิแก้ไขอะไรมาก เพราะเราเช่าโฮสทฺ์เค้าไม่ใช่ของเราเอง
หลังจากลองดูรายละเอียดแล้วก็พบว่า การเกิด core dump ได้นั้นสาเหตุหลักๆคือ การทำงานผิดพลาดของโปรแกรม (program crash) หรือ อีกสาเหตุเกิดจากการที่ program พยายาม access memory ในส่วนที่ไม่ได้รับอนุญาต จึงทำให้ OS สั่งปิดโปรแกรม (Kill process) นั้นซะ จากเหตุการณ์ทั้งสอง OS ก็ได้สร้าง Core dump file ขึ้นมาเพื่อช่วยให้เหล่า programmer ทั้งหลายพบจุดผิดพลาดของโปรแกรม หรือ ช่วยในการ debug โปรแกรมนั้นเอง
ลักษณะของ core file นั้นสามารถสังเกตุได้ว่าำไฟล์จะชื่อขึ้นต้นด้วยคำว่า core และตามด้วยจุดกับตัวเลข (ซึ่งก็คือ PID) เช่น core.20 เป็นต้น
เรามาดูกันว่าเราจะจัดการเจ้า core file ได้อย่างไรบ้างกันดีกว่า
ถ้าต้องการปิดไม่ให้มีการสร้าง core file ขึ้นมาให้ใช้คำสั่ง
#ulimit -S -c 0 > /dev/null 2>&1
ถ้าต้องการเปิดให้มีการเขียน core file ได้ให้ใช้คำสั่ง
#ulimit -S -c 25000 > /dev/null 2>&1 //กำหนดให้ core file มีขนาดเท่ากับ 25,000 byte
#ulimit -S -c unlimited > /dev/null 2>&1 //กำหนดให้ core file มีขนาดไม่จำกัด
-c คือขนาดสูงสุดของ core file
หรือถ้าต้องการให้ใช้งานตลอดไปให้แก้ไขไฟล์ /etc/profile แล้วเพิ่มคำสั่งข้างต้นลงไป
continue
เราสามารถทำการ free memory ได้แบบ on demand โดยใช้คำสั่งง่ายๆ ซึ่งวิธีการนี้จะเป็นการ clear memory ในส่วนของ pagecache และ slabcache ในระบบ linux
วิธีการก็คือ ใส่ค่า 1 สำหรับ free pagecache, 2 สำหรับ free dentries และ inodes หรือ 3 สำหรับ free pagecache, dentries และ inodes เข้าไปยังไฟล์ /proc/sys/vm/drop_caches นั้นเอง
ตัวอย่างการ free momory หรือ clear momery
คำสั่งสำหรับ free pagecache:
# echo 1 > /proc/sys/vm/drop_caches
คำสั่งสำหรับ free dentries และ inodes:
# echo 2 > /proc/sys/vm/drop_caches
คำสั่งสำหรับ free pagecache, dentries และ inodes:
# echo 3 > /proc/sys/vm/drop_caches
คำแนะนำ: ถ้าทำการ free memory ในขณะที่ server กำลังใช้งาน memory และ I/O อย่างหนักอาจจะทำให้เกิด deadlock ได้
Tags: clear memory, free momory, pagecache, slabcacheปัญหาการเคลื่อนที่ของ Mouse บน virtual machine ใน Linux มีความผิดเพี้ยนไปจากความเป็นจริงนี้เราสามารถแก้ไขปัญหานี้ได้ด้วยกัน 2 วิธี คือ
เคยไหมเวลาเราติดตั้ง red hat enterprise แล้วเกิดอาการ boot ค้างหรือ hang หลังจากที่ระบบทำการ boot ครั้งแรก หรือที่เรียกว่า “first boot” ในบ้างครั้งอาจเกิดจาก bug ของ Advanced Power Management (APM) เจ้าตัว APM จะต้องใีการติดต่อการ BIOS ของระบบ ถ้าระบบไม่ support ก็จะทำให้เกิดอาการ hang ขึ้นมาได้ วิธีการสังเกตว่าเกิดจากสาเหตุนี้หรือไม่ให้ลองดูว่าระบบเกิดอาการ hang ก่อนก่อนที่จะทำการโหลด services ทั้งหมดของระบบหรือไม่ ถ้าใช้ให้สันนิฐานว่าอาจเกิดจากสาเหตุนี้ก็ได้
การแก้ปัญหาจากสาเหตุนี้คือ ให้เซ็ตค่า apm=off
Tags: Advanced Power Management, APM, first boot, hangPosted by Comments Off
เมื่อเราได้ทำการแก้ไขหรือ configure diskdump แล้ว restart diskdump service ได้มี error เกิดขึ้นที่ /var/log/messages โดยมีข้อความดังข้างล่าง
diskdump: diskdumpctl: failed to add /dev/hdb! diskdump: activating failed kernel: disk_dump: shut down
ในปัญหาข้างต้นเกิดจาก Linux ที่ใช้อยู่ไม่ support full hard disk dump partition ดังนั้นวิธีแก้ไขสามารถทำได้โดยสร้าง partition ใน Hard disk และ ใช้ partition นั้นสำหรับการ dump memory information.
Tags: diskdump, diskdump service, Hard disk, partition, restartPosted by Comments Off
เมื่อเกิด error ของ LVM โดยขึ้นข้อความว่า “LVM error VG meta data inconsistent” เราสามารถทำการแก้ไขโดยทำตามขั้นตอนดังข้างล่างนี้ได้
Boot เข้าสู่โหมด Rescue
Restore VG Meta data โดยใช้คำสั่ง:
#lvm vgcfgrestore VG
Rescan physical devices โดยใช้คำสั่ง:
#lvm pvscan
Rescan vol groups โดยใช้คำสั่ง:
#lvm vgscan
ขั้นสุดท้ายคือการ active volume group โดยใช้คำสั่ง:
#lvm vgchange -ay VG
ปัญหาที่ทำให้ RedHat 5 และ RedHat 5.1 เกิดอาการแฮงค์ในขั้นตอนสุดท้ายของการ Reboot หรือ Shutdown นั้นเกิดจาก bug ในโปรแกรม cpufreq ซึ่งมันจะเกิด deadlock เมื่อตอนที่จะ unload module ของโปรแกรมนี้ จึงทำให้เกิดการ Reboot หรือ Shutdown ที่ช้ามากๆจนทำให้ user นึกว่าเครื่องได้แฮงค์ไปแล้ว ปัญหาเหล่านี้ได้ถูกแก้ไขแล้วใน RedHat 5.2 และสำหรับวิธีแก้ไขปัญหานี้ใน RedHat 5 และ RedHat 5.1 สามารถทำได้ 2 วิธีด้วยกันคือ
1. ให้ทำการ Update Kernel เป็นเวอร์ชั่นของ RedHat 5.2
2. ทำการ Disable โปรแกรม cpuspeed ซะ ตามคำสั่งด้านล่างนี้
# chkconfig cpuspeed off
# service cpuspeed stop
สำหรับข้อเสียของวิธีที่ 2. นี้จะทำให้ระบบไม่สามารถใช้พลังงานได้เต็มประสิทธิภาพ หรือมันจะกินไฟมากกว่าระบบที่เปิดใช้งาน cpuspeed นั้นเอง :)
Tags: Reboot, RedHat 5, RedHat 5.1, Shutdown, แฮงค์เมื่อได้ทำการติดตั้งลินุกซ์เพื่อทำ Virtualization และได้ลงลินุกซ์แบบ Fully-virtualized เป็น guest os ในระบบ Virtualization นั้นๆ และเมื่อใช้งานตัว linux guest os เกิดการ hang ขึ้นบ่อยครั้ง หรือมีการใช้ cpu ที่สูงมาก
วิธีแก้ไขเบื้องต้นสามารถทำได้ดังนี้
ตรวจสอบว่า linux guest os นี้ได้รัน kernel version อะไรอยู่โดยใช้คำสั่ง
#uname -r
ถ้าผลลัพธ์ที่แสดงออกมาเป็นประมาณ 2.6.18-8.el5xen แสดงว่าเราได้ทำการติดตั้ง kernel ผิด version ดังนั้นให้ Install kernel แบบปกติเข้าไปแทน หรือไม่ก็ลง linux ใหม่ แล้วไม่ต้องเลือก virtualization
Tags: linux, Virtualization, xen