เซิร์ฟเวอร์ dev ของ Django ทำให้โหลด CPU สูงอย่างถาวรด้วย Python 3


4

เซิร์ฟเวอร์การพัฒนาของ Django ทำงานภายใต้ Python 2.7.5 (บน Windows 7) ที่มีโหลดค่อนข้างคงที่ (ว่าง) ประมาณ 1-3% ในระบบทดสอบของฉัน - ไม่มีการโหลดหน้าเว็บหรือการคำนวณอื่น ๆ การเปลี่ยนมาใช้ Python 3.4.2 ทำให้โหลดคงที่เพิ่มขึ้นโดยเฉลี่ยประมาณ 10% มันใหญ่มากที่ไม่ได้ทำอะไรเลย ... มีคำอธิบายอะไรไหม? สามารถหลีกเลี่ยงได้ ฉันทดสอบสิ่งนี้ด้วยแอพ Django ที่หลากหลาย

คำตอบ:


4

หากต้องการตอบคำถามของฉันเอง: เซิร์ฟเวอร์ dev ของ Django จะตรวจสอบไฟล์ต้นฉบับ Python ทั้งหมดเพื่อหาการเปลี่ยนแปลง การตั้งค่าตัวเลือก - โหลดไม่ป้องกันกลไกการรีสตาร์ทอัตโนมัติซึ่งจะช่วยลดการไม่ใช้งานโหลดให้เป็นศูนย์ เห็นได้ชัดว่าการโหลดซ้ำอัตโนมัติบน Python 3 มีประสิทธิภาพน้อยกว่า การใช้ pyinotiy เป็นวิธีการแก้ปัญหาสำหรับ Linux เพื่อป้องกันค่าใช้จ่ายนี้: https://docs.djangoproject.com/en/1.7/ref/django-admin/#runserver-port-or-address-port


2
แค่อยากมีส่วนร่วมว่านี่เป็นสิ่งที่ทำให้เกิดปัญหา CPU สูงสำหรับฉัน เช่นเดียวกับไซมอนกล่าวว่าการเพิ่ม--noreloadกับrunserverคำสั่งแก้ไขได้ ดูเหมือนว่าการโหลดอัตโนมัติใน Django นั้นสิ้นเปลืองอย่างไม่น่าเชื่อ แม้ว่าจะไม่ได้สัมผัสหรือแก้ไข.pyไฟล์ใด ๆ ก็ตามพวกเขาจะถูกโหลดซ้ำ ๆ ตลอดเวลาทำให้ CPU และ I / O โหลดสูง
Flatterino
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.