ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

โปรดทราบว่าระบบที่ต่างกันจะทำงานต่างกันด้วยค่าเฉลี่ยโหลดที่เท่ากัน ตัวอย่างเช่น ระบบที่มีการ์ดกราฟิกที่รองรับการเร่งด้วยฮาร์ดแวร์จะไม่มีปัญหาในการเรนเดอร์ภาพ 3 มิติ ในขณะที่ระบบเดียวกันกับการ์ด VGA ราคาถูกจะช้าลงอย่างมากในขณะเรนเดอร์ P133 เก่าของฉันจะค่อนข้างอึดอัดเมื่อฉันเริ่มเซิร์ฟเวอร์ X แต่ในระบบที่ทันสมัย ​​คุณแทบจะไม่สังเกตเห็นความแตกต่างในการโหลดระบบ


4.3.5. ฉันสามารถทำอะไรได้บ้างในฐานะผู้ใช้


สภาพแวดล้อมขนาดใหญ่อาจทำให้คุณช้าลง หากคุณมีตัวแปรสภาพแวดล้อมจำนวนมากที่ตั้งไว้ (แทนที่จะเป็นตัวแปรเชลล์) เส้นทางการค้นหาที่ยาวซึ่งไม่ได้รับการปรับให้เหมาะสม (ข้อผิดพลาดในการตั้งค่าตัวแปรสภาพแวดล้อมของพาธ) และการตั้งค่าอื่นๆ ที่มักจะทำ "ทันที" ระบบจะต้อง มีเวลามากขึ้นในการค้นหาและอ่านข้อมูล


ใน X ตัวจัดการหน้าต่างและสภาพแวดล้อมเดสก์ท็อปสามารถกิน CPU ได้จริง เดสก์ท็อปที่เก๋ไก๋จริงๆ มาพร้อมกับราคา แม้ว่าคุณจะดาวน์โหลดได้ฟรีก็ตาม เนื่องจากเดสก์ท็อปส่วนใหญ่มีแอดออน ad infinitum เจียมเนื้อเจียมตัว


เป็นคุณธรรมถ้าคุณไม่ซื้อคอมพิวเตอร์เครื่องใหม่ทุกปี


4.3.5.1 ลำดับความสำคัญ


ลำดับความสำคัญหรือความสำคัญของงานถูกกำหนดโดยมันคือ ดี ตัวเลข. โปรแกรมที่มีจำนวนที่ดีนั้นเป็นมิตรกับโปรแกรมอื่น ๆ ผู้ใช้รายอื่นและระบบ มันไม่ใช่งานที่สำคัญ ยิ่งจำนวนที่ดีน้อย งานก็ยิ่งมีความสำคัญมากขึ้นเท่านั้น และต้องใช้ทรัพยากรมากขึ้นโดยไม่ต้องแบ่งปัน


การทำให้งานดีขึ้นโดยการเพิ่มจำนวนที่ดีนั้นมีประโยชน์สำหรับกระบวนการที่ใช้เวลา CPU มากเท่านั้น (คอมไพเลอร์ แอปพลิเคชันคณิตศาสตร์ และอื่นๆ) กระบวนการที่ใช้เวลา I/O เป็นจำนวนมากจะได้รับรางวัลโดยอัตโนมัติจากระบบและจะมีลำดับความสำคัญสูงกว่า (ตัวเลขที่ต่ำกว่า) ตัวอย่างเช่น การป้อนข้อมูลด้วยแป้นพิมพ์จะมีลำดับความสำคัญสูงสุดในระบบเสมอ


การกำหนดลำดับความสำคัญของโปรแกรมทำได้ด้วย ดี คำสั่ง


ระบบส่วนใหญ่ยังจัดให้มีBSD เรนิซ คำสั่ง ซึ่งอนุญาตให้คุณเปลี่ยน ความดี ของคำสั่งที่ทำงานอยู่ อีกครั้ง อ่าน man page สำหรับข้อมูลเฉพาะระบบของคุณ


โปรแกรมแบบโต้ตอบ

มันไม่ใช่ความคิดที่ดีที่จะ ดี or เรนิซ โปรแกรมแบบโต้ตอบหรืองานที่กำลังทำงานอยู่เบื้องหน้า

การใช้คำสั่งเหล่านี้มักจะเป็นงานสำหรับผู้ดูแลระบบ อ่านหน้าคู่มือสำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันพิเศษที่มีให้สำหรับผู้ดูแลระบบ


4.3.5.2. ทรัพยากรซีพียู


ในทุกระบบ Linux หลายโปรแกรมต้องการใช้ CPU พร้อมกัน แม้ว่าคุณจะเป็นผู้ใช้เพียงคนเดียวในระบบก็ตาม ทุกโปรแกรมต้องการจำนวนรอบของ CPU เพื่อให้ทำงานได้ อาจมีบางครั้งที่รอบไม่เพียงพอเนื่องจาก CPU ยุ่งเกินไป NS uptime คำสั่งไม่ถูกต้องอย่างมาก (จะแสดงเฉพาะค่าเฉลี่ย คุณต้องรู้ว่าอะไรเป็นปกติ) แต่ยังห่างไกลจากความไร้ประโยชน์ มีการดำเนินการบางอย่างที่คุณสามารถทำได้หากคุณคิดว่า CPU ของคุณถูกตำหนิสำหรับการไม่ตอบสนองของระบบ:


• เรียกใช้โปรแกรมหนักเมื่อโหลดเหลือน้อย นี่อาจเป็นกรณีของระบบของคุณในตอนกลางคืน ดูส่วนถัดไปสำหรับกำหนดการ

• ป้องกันไม่ให้ระบบทำงานโดยไม่จำเป็น: หยุดภูตและโปรแกรมที่คุณไม่ได้ใช้ ใช้งาน

ค้นหาแทนการค้นหาหนัก ...

• เรียกใช้งานใหญ่ที่มีลำดับความสำคัญต่ำ


หากไม่มีวิธีแก้ไขปัญหาเหล่านี้ในสถานการณ์เฉพาะของคุณ คุณอาจต้องอัปเกรด CPU ของคุณ บนเครื่อง UNIX นี่เป็นงานสำหรับผู้ดูแลระบบ


4.3.5.3. ทรัพยากรหน่วยความจำ


เมื่อกระบวนการที่ทำงานอยู่ในปัจจุบันคาดหวังหน่วยความจำมากกว่าที่ระบบมีอยู่จริง ระบบ Linux จะไม่ขัดข้อง มันจะเริ่มเพจหรือ การแลกเปลี่ยนหมายความว่ากระบวนการใช้หน่วยความจำบนดิสก์หรือในพื้นที่สว็อป ย้ายเนื้อหาของหน่วยความจำกายภาพ (ชิ้นส่วนของโปรแกรมที่รันอยู่หรือโปรแกรมทั้งหมดในกรณีของการสลับ) ไปยังดิสก์ จึงเรียกคืนหน่วยความจำกายภาพเพื่อจัดการกับกระบวนการอื่นๆ สิ่งนี้ทำให้ระบบช้าลงอย่างมากเนื่องจากการเข้าถึงดิสก์ช้ากว่าการเข้าถึงหน่วยความจำมาก NS ด้านบน คำสั่งสามารถใช้เพื่อแสดงหน่วยความจำและสลับการใช้งานได้ ระบบที่ใช้ glibc เสนอ ความทรงจำ และ memusagestat คำสั่งแสดงภาพการใช้หน่วยความจำ


หากคุณพบว่ามีการใช้หน่วยความจำและพื้นที่สว็อปเป็นจำนวนมาก คุณสามารถลอง:


• ฆ่า หยุด หรือเพิกเฉยโปรแกรมเหล่านั้นที่ใช้หน่วยความจำขนาดใหญ่

• เพิ่มหน่วยความจำเพิ่มเติม (และในบางกรณีเพิ่มเติมพื้นที่สว็อป) ให้กับระบบ

• การปรับประสิทธิภาพของระบบซึ่งอยู่นอกเหนือขอบเขตของเอกสารนี้ ดูรายการเรื่องรออ่านในภาคผนวก A สำหรับข้อมูลเพิ่มเติม


4.3.5.4. ทรัพยากร I/O


แม้ว่าข้อจำกัดของ I/O เป็นสาเหตุหลักของความเครียดสำหรับผู้ดูแลระบบ แต่ระบบ Linux มียูทิลิตี้ที่ค่อนข้างไม่ดีในการวัดประสิทธิภาพของ I/O NS ps, vmstat และ ด้านบน เครื่องมือบ่งชี้ว่ามีกี่โปรแกรมที่กำลังรอ I/O netstat แสดงสถิติอินเทอร์เฟซเครือข่าย แต่แทบไม่มีเครื่องมือใดที่สามารถวัดการตอบสนอง I/O ต่อโหลดของระบบ และ iostat คำสั่งให้ภาพรวมคร่าวๆ ของการใช้งาน I/O ทั่วไป ส่วนหน้าแบบกราฟิกต่างๆ มีอยู่เพื่อให้ผลลัพธ์ของคำสั่งเหล่านี้อยู่ในรูปแบบที่มนุษย์เข้าใจได้


อุปกรณ์แต่ละเครื่องมีปัญหาของตัวเอง แต่แบนด์วิดท์ที่พร้อมใช้งานสำหรับอินเทอร์เฟซเครือข่ายและแบนด์วิดท์ที่พร้อมใช้งานสำหรับดิสก์เป็นสาเหตุหลักสองประการของปัญหาคอขวดในประสิทธิภาพของ I/O


ปัญหาเครือข่าย I/O:


• เครือข่ายโอเวอร์โหลด:


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

• ปัญหาความสมบูรณ์ของเครือข่าย:


เกิดขึ้นเมื่อข้อมูลถูกถ่ายโอนอย่างไม่ถูกต้อง การแก้ปัญหาประเภทนี้สามารถทำได้โดยการแยกองค์ประกอบที่ผิดพลาดและแทนที่


ปัญหาดิสก์ I/O:


• อัตราการถ่ายโอนต่อกระบวนการต่ำเกินไป:


ความเร็วในการอ่านหรือเขียนสำหรับกระบวนการเดียวไม่เพียงพอ

• อัตราการถ่ายโอนรวมต่ำเกินไป:


แบนด์วิดท์รวมสูงสุดที่ระบบสามารถให้กับโปรแกรมทั้งหมดที่รันไม่เพียงพอ


ปัญหาประเภทนี้ยากต่อการตรวจจับ และมักจะใช้ฮาร์ดแวร์เพิ่มเติมเพื่อแบ่งสตรีมข้อมูลใหม่บนบัส คอนโทรลเลอร์ และดิสก์ หากฮาร์ดแวร์โอเวอร์โหลดเป็นสาเหตุของปัญหา ทางออกหนึ่งในการแก้ปัญหานี้คือการกำหนดค่าอาร์เรย์ RAID ที่ปรับให้เหมาะสมสำหรับการดำเนินการอินพุตและเอาต์พุต ด้วยวิธีนี้ คุณจะต้องเก็บฮาร์ดแวร์ตัวเดิมไว้ การอัพเกรดเป็นบัส คอนโทรล และดิสก์ที่เร็วกว่ามักจะเป็นอีกทางเลือกหนึ่ง


หากโอเวอร์โหลดไม่ใช่สาเหตุ แสดงว่าฮาร์ดแวร์ของคุณค่อยๆ ล้มเหลว หรือเชื่อมต่อกับระบบไม่ดี ตรวจสอบหน้าสัมผัส ขั้วต่อ และปลั๊กเพื่อเริ่มต้น



4.3.5.5 ผู้ใช้


ผู้ใช้สามารถแบ่งออกเป็นหลายคลาส ขึ้นอยู่กับพฤติกรรมการใช้ทรัพยากร:


• ผู้ใช้ที่เรียกใช้งานขนาดเล็กจำนวนมาก (มาก) เช่น คุณ ซึ่งเป็นผู้ใช้ Linux เริ่มต้น เป็นต้น

• ผู้ใช้ที่ทำงานค่อนข้างน้อยแต่มีขนาดใหญ่: ผู้ใช้ที่ใช้การจำลอง การคำนวณ โปรแกรมจำลอง หรือโปรแกรมอื่นๆ ที่กินหน่วยความจำมาก และโดยปกติผู้ใช้เหล่านี้จะมีไฟล์ข้อมูลขนาดใหญ่มาด้วย

• ผู้ใช้ที่ทำงานน้อยแต่ใช้เวลา CPU มาก (นักพัฒนาและอื่นๆ)


คุณจะเห็นได้ว่าความต้องการของระบบอาจแตกต่างกันไปตามผู้ใช้แต่ละประเภท และอาจเป็นเรื่องยากที่จะตอบสนองทุกคน หากคุณอยู่ในระบบที่มีผู้ใช้หลายคน การค้นหานิสัยของผู้ใช้รายอื่นและระบบจะเป็นประโยชน์ (และสนุก) เพื่อที่จะได้รับประโยชน์สูงสุดจากระบบเพื่อวัตถุประสงค์เฉพาะของคุณ


4.3.5.6 เครื่องมือกราฟิก


สำหรับสภาพแวดล้อมแบบกราฟิก มีเครื่องมือตรวจสอบมากมายให้เลือกใช้ ด้านล่างนี้คือภาพหน้าจอของ Gnome System Monitor ซึ่งมีคุณลักษณะสำหรับการแสดงและค้นหาข้อมูลกระบวนการ และการตรวจสอบทรัพยากรระบบ:


รูปที่ 4-3 การตรวจสอบระบบ Gnome



นอกจากนี้ยังมีไอคอนที่มีประโยชน์สองสามไอคอนที่คุณสามารถติดตั้งในทาสก์บาร์ได้ เช่น ดิสก์ หน่วยความจำ และตัวตรวจสอบการโหลด เอ็กซ์โหลด เป็นแอปพลิเคชั่น X ขนาดเล็กอีกตัวสำหรับตรวจสอบโหลดของระบบ ค้นหารายการโปรดของคุณ!


4.3.5.7. รบกวนกระบวนการของคุณ


ในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ คุณสามารถมีอิทธิพลต่อกระบวนการของคุณเองเท่านั้น เราได้เห็นแล้วว่าคุณสามารถแสดงกระบวนการและกรองกระบวนการที่เป็นของผู้ใช้รายใดรายหนึ่งออกไปได้อย่างไร และมีข้อ จำกัด ใดบ้างที่อาจเกิดขึ้นได้ เมื่อคุณเห็นว่ากระบวนการใดกระบวนการหนึ่งของคุณกินทรัพยากรของระบบมากเกินไป มีสองสิ่งที่คุณทำได้:


1. ทำให้กระบวนการใช้ทรัพยากรน้อยลงโดยไม่ขัดจังหวะ

2. หยุดกระบวนการโดยสิ้นเชิง


ในกรณีที่คุณต้องการให้กระบวนการทำงานต่อไป แต่คุณต้องการให้กระบวนการอื่น ๆ ในระบบมีโอกาสด้วย คุณสามารถ เรนิซ กระบวนการ. นอกเหนือจากการใช้ ดี or เรนิซ คำสั่ง ด้านบน เป็นวิธีที่ง่ายในการระบุกระบวนการที่ยุ่งยากและลดลำดับความสำคัญ


ระบุกระบวนการในคอลัมน์ "NI" ซึ่งส่วนใหญ่จะมีลำดับความสำคัญติดลบ พิมพ์ r และป้อน ID กระบวนการของกระบวนการที่คุณต้องการเพิกถอน จากนั้นป้อนค่าที่ดี เช่น "20" นั่นหมายความว่าต่อจากนี้ไป กระบวนการนี้จะใช้เวลามากที่สุด 1/5 ของรอบ CPU


ตัวอย่างของกระบวนการที่คุณต้องการให้ทำงานต่อไป ได้แก่ อีมูเลเตอร์ เครื่องเสมือน คอมไพเลอร์ และอื่นๆ


หากคุณต้องการหยุดกระบวนการเนื่องจากหยุดทำงานหรือเกิดความสับสนโดยสิ้นเชิงกับการใช้ I/O การสร้างไฟล์ หรือการใช้ทรัพยากรระบบอื่นๆ ให้ใช้ ฆ่า สั่งการ. หากคุณมีโอกาส พยายามฆ่ากระบวนการเบา ๆ ก่อน ส่ง ซิกเทอร์ม สัญญาณ. นี่คือคำสั่งเพื่อยุติสิ่งที่มันทำ ตามขั้นตอนที่อธิบายไว้ในรหัสของโปรแกรม:


โจ้:~> ป.ล. -เอฟ | grep Mozilla

joe 25822 1 0 มี.ค.11 ?

00:34:04 /usr/lib/mozilla-1.4.1/mozilla-

โจ้:~> ป.ล. -เอฟ | grep Mozilla

joe 25822 1 0 มี.ค.11 ?


โจ้:~> ฆ่า -15 25822

โจ้:~> ฆ่า -15 25822

ในตัวอย่างข้างต้น ผู้ใช้ โจ หยุดเบราว์เซอร์ Mozilla ของเขาเพราะมันหยุดทำงาน


กระบวนการบางอย่างยากขึ้นเล็กน้อยในการกำจัด หากคุณมีเวลา คุณอาจต้องการส่งสัญญาณ SIGINT เพื่อขัดขวางพวกเขา หากวิธีนี้ใช้ไม่ได้ผล ให้ใช้สัญญาณที่แรงที่สุด SIGKILL ในตัวอย่างด้านล่าง โจ หยุด Mozilla ที่ถูกแช่แข็ง:


โจ้:~> ป.ล. -เอฟ | grep Mozilla

joe 25915 1 0 มี.ค.11 ?

00:15:06 /usr/lib/mozilla-1.4.1/mozilla-

โจ้:~> ป.ล. -เอฟ | grep Mozilla

joe 25915 1 0 มี.ค.11 ?


โจ้:~> ฆ่า -9 25915


โจ้:~> ป.ล. -เอฟ | grep 25915

โจ 2634 32273 0 18:09 pts/4 00:00:00 grep 25915

โจ้:~> ฆ่า -9 25915


โจ้:~> ป.ล. -เอฟ | grep 25915

โจ 2634 32273 0 18:09 pts/4 00:00:00 grep 25915

ในกรณีเช่นนี้ คุณอาจต้องการตรวจสอบว่ากระบวนการนั้นตายแล้วจริง ๆ โดยใช้ตัว grep กรองอีกครั้งใน PID หากสิ่งนี้ส่งคืน . เท่านั้น grep คุณสามารถมั่นใจได้ว่าคุณประสบความสำเร็จในการหยุดกระบวนการนี้


ในบรรดากระบวนการที่ยากต่อการทำลายคือเชลล์ของคุณ และนั่นก็เป็นสิ่งที่ดี: ถ้าพวกมันฆ่าได้ง่าย คุณจะสูญเสียเปลือกทุกครั้งที่คุณพิมพ์ Ctrl-C บนบรรทัดคำสั่งโดยบังเอิญ เนื่องจากสิ่งนี้เทียบเท่ากับการส่ง SIGINT


UNIX ที่ไม่มีท่อแทบจะคิดไม่ถึง

การใช้ไพพ์ (|) สำหรับการใช้เอาต์พุตของคำสั่งหนึ่งเป็นอินพุตของคำสั่งอื่นได้อธิบายไว้ในบทถัดไป บทที่ 5

ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: