Score:0

ปัญหาแปลกๆ กับ Pthreads - เหตุใดจึงมีความล่าช้าในการส่งเธรดใหม่แต่ละรายการเมื่อปิดใช้งาน opcache.enable_cli

ธง jp

ดังนั้นสำหรับบริบท ฉันใช้ PHP-FPM 7.4 บน Ubuntu และคอมไพล์ด้วย ZTS จากนั้นเพิ่มส่วนขยาย Pthreads และ ZSTD

ฉันกำลังทำงานสองสามร้อยงานและฉันต้องการให้พวกเขาสร้างกระบวนการ php ใหม่ให้เร็วที่สุดเท่าที่จะเป็นไปได้ แต่หลังจากการทดสอบหลายครั้ง ฉันรู้ว่าแม้ว่าสคริปต์ของฉันทำงานใน 0.001 วินาที ทุกครั้งที่ฉันสร้างเธรด PHP ใหม่ด้วย Pthreads มันเพิ่ม 0.01 วินาที ให้กับสมการ ซึ่งทำให้เวลาของการวนซ้ำแต่ละครั้งคูณด้วย 10

ฉันพยายามหาคำอธิบายที่เป็นไปได้สำหรับสิ่งนี้มาสองสามสัปดาห์แล้ว และจนถึงตอนนี้หลังจากทำการทดสอบหลายครั้งและปรับแต่งการตั้งค่ามากมาย สิ่งเดียวที่สมเหตุสมผลก็คือนี่เป็นข้อจำกัดของ Pthreads by design

ขั้นตอนต่อไปคือการอัปเดตโค้ดเป็นโปรเจ็กต์ Parallel ที่ใหม่กว่า แต่ในระหว่างนี้ฉันพบบางสิ่งที่น่าสงสัย เมื่อฉันเปิดใช้งาน opcache.enable_cli ใน PHP FPM config ปัญหาก็หายไปเกือบหมดและเธรดส่วนใหญ่ไม่ล่าช้า!

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

ใครก็ได้ ?

Michael Hampton avatar
cz flag
Threaded PHP เป็นเขตที่วางทุ่นระเบิดของข้อบกพร่องและปัญหาอื่น ๆ ตราบเท่าที่มันมีอยู่ ดูเหมือนว่ามีการเปลี่ยนแปลงเล็กน้อย หลีกเลี่ยงได้ดีที่สุดหากเป็นไปได้

โพสต์คำตอบ

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