วินิจฉัยปัญหาการโหลดเซิร์ฟเวอร์ Linux ด้วย Simple Script

Aug 31, 2025
การบำรุงรักษาและการเพิ่มประสิทธิภาพ
เนื้อหาที่ไม่ถูกแคช

หากคุณเป็นผู้ดูแลระบบมานานแล้วคุณได้ค้นพบสถานการณ์ที่เซิร์ฟเวอร์เพิ่มขึ้นอย่างรวดเร็วในการใช้ CPU หรือการใช้หน่วยความจำและ / หรือระดับการโหลด การวิ่ง "บนสุด" จะไม่ให้คำตอบเสมอไปเช่นกัน แล้วคุณจะพบกระบวนการลับๆเหล่านั้นที่กำลังเคี้ยวทรัพยากรระบบของคุณเพื่อให้สามารถฆ่าพวกเขาได้อย่างไร?

สคริปต์ต่อไปนี้อาจช่วยได้ มันถูกเขียนขึ้นสำหรับเว็บเซิร์ฟเวอร์ดังนั้นจึงมีบางส่วนที่มองหากระบวนการ httpd โดยเฉพาะและบางส่วนที่จัดการกับ MySQL ขึ้นอยู่กับการปรับใช้เซิร์ฟเวอร์ของคุณเพียงแค่แสดงความคิดเห็น / ลบส่วนเหล่านั้นและเพิ่มส่วนอื่น ๆ ควรใช้สำหรับจุดเริ่มต้น

ข้อกำหนดเบื้องต้นสำหรับสคริปต์เวอร์ชันนี้คือฟรีแวร์บางตัวที่เผยแพร่ภายใต้สัญญาอนุญาตสาธารณะทั่วไปของ GNU ที่เรียกว่า mytop (มีให้ที่ http://jeremy.zawodny.com/mysql/mytop/ ) ซึ่งเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการตรวจสอบประสิทธิภาพของ MySQL มันเริ่มเก่าแล้ว แต่ก็ยังใช้งานได้ดีสำหรับจุดประสงค์ของเราที่นี่
นอกจากนี้ฉันใช้ mutt เป็นผู้รับจดหมาย - คุณอาจต้องการเปลี่ยนสคริปต์เพื่อใช้ลินุกซ์ที่สร้างขึ้นในยูทิลิตี้ "mail" ฉันเรียกใช้ cron ทุกชั่วโมง ปรับตามที่เห็นสมควร โอ้ - และสคริปต์นี้ต้องทำงานในฐานะรูทเนื่องจากอ่านจากพื้นที่ที่มีการป้องกันบางส่วนของเซิร์ฟเวอร์

มาเริ่มกันเลยดีกว่า

ขั้นแรกตั้งค่าตัวแปรสคริปต์ของคุณ:

#! / บิน / ทุบ
#
# สคริปต์เพื่อตรวจสอบระดับเฉลี่ยการโหลดของระบบเพื่อพยายามกำหนด
# กระบวนการอะไรที่มันสูงเกินไป ...
#
# 07Jul2010 tjones
#
# กำหนดสภาพแวดล้อม
dt = `วันที่ +% d% b% Y-% X`
# แน่นอนเปลี่ยนไดเร็กทอรีต่อไปนี้เป็นที่เก็บไฟล์บันทึกของคุณ
tmpfile = "/ tmp / checkSystemLoad.tmp"
logfile = "/ tmp / checkSystemLoad.log"
msgLog = "/ var / บันทึก / ข้อความ"
บันทึก mysql = "/ var / log / mysqld.log"
# mailstop แรกคืออีเมลมาตรฐานสำหรับรายงาน อันที่สองสำหรับโทรศัพท์มือถือ (พร้อมรายงานแยกส่วน)
mailstop = "[email protected]"
mailstop1 = "[email protected]"
เครื่อง = "ชื่อโฮสต์"
# สามต่อไปนี้ใช้สำหรับการใช้งาน mytop - ใช้ผู้ใช้ฐานข้อมูลที่มีสิทธิ์ที่เหมาะสม
dbusr = "ชื่อผู้ใช้"
dbpw = "รหัสผ่าน"
db = "yourdatabasename"
# ต่อไปนี้เป็นระดับการโหลดที่จะตรวจสอบ - 10 สูงมากดังนั้นคุณอาจต้องการลดระดับลง
levelToCheck = 10

จากนั้นตรวจสอบระดับการโหลดของคุณเพื่อดูว่าสคริปต์ควรดำเนินการต่อหรือไม่:

# ตั้งค่าตัวแปรจากระบบ:
loadLevel = `cat / proc / loadavg | awk '{print $1}'`
loadLevel = $ (printf "% 0.f" $ loadLevel)

# หากระดับการโหลดมากกว่าที่คุณต้องการให้เริ่มกระบวนการสคริปต์ มิฉะนั้นออกจาก 0

ถ้า [ $loadLevel -gt $levelToCheck ]; แล้ว
echo ""> $ tmpfile
echo "**************************************" >> $ tmpfile
echo "วันที่: $ dt" >> $ tmpfile
echo "ตรวจสอบการโหลดและกระบวนการของระบบ" >> $ tmpfile
echo "**************************************" >> $ tmpfile

LINUX Average Load On Server, Uptime Command

Linux System Load History | Tech Arkit | Shell Script


การบำรุงรักษาและการเพิ่มประสิทธิภาพ - บทความยอดนิยม

คุณต้องอัพเดตไดรเวอร์ของคุณเมื่อใด

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Jul 12, 2025

พูดคุยกับคนเทคโนโลยีอ่านฟอรัมใด ๆ และเมื่อถึงจุดหนึ่งคุณจะได้�..


วิธีกรองเมลบน iOS 10

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Sep 27, 2025

เนื้อหาที่ไม่ถูกแคช ในที่สุด iOS 10 ก็เพิ่มความสามารถในการกรองอีเ�..


วิธีนำแถบเลื่อนแบบเปิดตลอดเวลากลับมาใน MacOS X

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Sep 21, 2025

หากคุณเพิ่งเริ่มใช้ Mac คุณอาจสังเกตเห็นว่าไม่มีแถบเลื่อนในหน้า�..


วิธีโหลดเว็บไซต์ใน Firefox Sidebar

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Apr 22, 2025

เนื้อหาที่ไม่ถูกแคช หากคุณใช้ Firefox เรามีเคล็ดลับที่จะช่วยให้คุณ�..


วิธีปรับแต่ง Ubuntu ด้วย Ubuntu Tweak

การบำรุงรักษาและการเพิ่มประสิทธิภาพ May 3, 2025

เครื่องมือกำหนดค่าเริ่มต้นของ Ubuntu ไม่มีตัวเลือกมากมายสำหรับการ�..


Bing Bar ใหม่ช่วยให้เข้าถึงการค้นหาและ Microsoft Live Services ได้อย่างง่ายดาย

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Dec 10, 2025

เนื้อหาที่ไม่ถูกแคช หากคุณเป็นแฟนตัวยงของ Microsoft Bing ในฐานะเครื่องมือค�..


กำจัดจำนวนข้อความสแปมที่ยังไม่ได้อ่านใน Gmail และไคลเอนต์ IMAP ของคุณ

การบำรุงรักษาและการเพิ่มประสิทธิภาพ May 28, 2025

เนื้อหาที่ไม่ถูกแคช หากคุณเป็นผู้ใช้ Gmail คุณอาจสังเกตเห็นจำนวนข้อค�..


บังคับให้กล่องโต้ตอบเปิด / บันทึกเพื่อใช้โหมดรายละเอียดใน Windows XP

การบำรุงรักษาและการเพิ่มประสิทธิภาพ Oct 6, 2025

กล่องโต้ตอบเปิด / บันทึกทั่วไปนั้นแพร่หลายในแอปพลิเคชัน Windows ซึ่งควา�..


หมวดหมู่