ผลกระทบของการรีสตาร์ท Apache ที่ยอดเยี่ยมและประสบการณ์ผู้ใช้


10

ปลอดภัยไหมที่จะทำการgracefulรีสตาร์ท Apache บนเซิร์ฟเวอร์ที่ใช้งานจริง การรีสตาร์ทที่ดีจะส่งผลอะไรและผลกระทบ (ถ้ามี) คืออะไร จะมีผลกระทบที่เป็นอันตรายหรือไม่ (เช่นการหยุดทำงานแม้ว่าจะเป็นเวลาสั้น ๆ )?

ฉันได้พิจารณาทรัพยากรต่อไปนี้แล้ว แต่ก็ยังไม่ชัดเจนว่าผลกระทบต่อผู้ใช้จะเป็นอย่างไร:

คำตอบ:


9

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

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

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

หากเซิร์ฟเวอร์อยู่ในสถานะผิดปกติอาจไม่สามารถเริ่มการทำงานใหม่ได้อย่างสง่างาม (อาจเป็นสาเหตุที่ทำให้คุณพิจารณาการรีสตาร์ทอย่างนุ่มนวล)


1

หาก Apache ให้บริการไฟล์คงที่และไม่ได้ทำหน้าที่เป็นสิ่งที่เหมือนเช่นกันมันก็ค่อนข้างราบรื่น ผู้ใช้ส่วนใหญ่จะไม่ได้สังเกตเห็นและผู้ที่จะพิจารณาความผิดปกติปกติ Apache จะไม่ให้บริการคำขอใหม่จนกว่าจะมีการให้บริการเก่าดังนั้นคุณจะรอจนกว่าจะเสร็จสิ้น หากมีใครบางคนกำลังดาวน์โหลดไฟล์ 500MB ที่ 68KB / s คุณอาจรอเป็นเวลานานในระหว่างที่ไม่มีบริการอื่นเกิดขึ้น

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


5
นอกจากนี้ยังเป็นสิ่งสำคัญอย่างยิ่งที่จะทำ/etc/init.d/httpd configtestก่อนดำเนินการใด ๆ กับ apache รีสตาร์ทบนเซิร์ฟเวอร์ที่ใช้งานจริง
Citylight

แน่นอน - มันค่อนข้างสำคัญที่จะเรียกใช้การกำหนดค่า IIRC ฉันคิดว่ากับ Apache รุ่นที่ใหม่กว่าอาจทำการตั้งค่าโดยนัยก่อนการรีสตาร์ทอย่างสง่างามและถ้ามันล้มเหลวในการตั้งค่าคอนฟิกมันจะไม่ดำเนินการรีสตาร์ทต่อไป
stellarchariot

5
"Apache จะไม่ให้บริการคำขอใหม่จนกว่าจะมีการให้บริการเก่าดังนั้นคุณจะรอจนกว่าพวกเขาจะเสร็จสิ้นหากมีคนกำลังดาวน์โหลดไฟล์ 500MB ที่ 68KB / s คุณอาจรอเวลานาน การให้บริการกำลังเกิดขึ้น " มันไม่ถูกต้อง การกำหนดค่าจะถูกโหลดใหม่ทันทีและกระบวนการลูกใหม่จะถูกสร้างขึ้นยอมรับการเชื่อมต่อและการร้องขอกระบวนการในขณะที่รุ่นก่อนหน้าจะเสร็จสิ้นการร้องขอสุดท้ายของพวกเขา
โคเวอเนอร์

0

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

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

ลิงก์: https://www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ ลิงก์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.