Firefox แช่แข็งด้วยการใช้ CPU 100% เป็นเวลา 30 วินาทีเมื่อเปิด Chromium


22

เมื่อเร็ว ๆ นี้ฉันเริ่มสังเกตเห็นสิ่งที่สับสนและน่ารำคาญมากไม่พูดถึงพฤติกรรมที่น่ากังวลเมื่อเปิด Firefox และเปิด Chromium:

ประมาณ 30 วินาทีกระบวนการลูกของ Firefox จะใช้ทรัพยากร CPU ทั้งหมดที่มีอยู่ทำให้เว็บไซต์หยุดการแสดงผล (หน้าถูกแสดงแล้วค้างหน้าใหม่จะแสดงหน้าขาวที่มีวงกลมหมุนสีเทา) ในขณะที่หน้าต่างโดยรวมยังคงตอบสนอง (เมนูการเลื่อนหน้า สลับแท็บแม้กระทั่งหน้าภายในเช่น about: config หรือ about: preferences ทำงาน ... ) Chromium เองไม่แสดงอาการใด ๆ การยกเลิก Chromium อีกครั้งทันทีในขณะที่ Firefox กำลังหมุนไม่หยุดการทำงานเร็วขึ้น

สิ่งเดียวกันนี้เกิดขึ้นกับโปรไฟล์ Firefox ปกติของฉันโปรไฟล์ใหม่ของ Firefox ที่ไม่มีการแตะต้องโดยไม่ต้องมีส่วนเสริม ฯลฯ Firefox เริ่มต้นในเซฟโหมดเมื่อปิดใช้งาน Add-on และ Firefox เริ่มต้นในโหมดส่วนตัว คล้ายกับ Chromium ฉันสามารถเปิดใช้โปรไฟล์ปกติของฉันในโหมดไม่ระบุตัวตนหรือโปรไฟล์ชั่วคราวสร้างผลลัพธ์เดียวกันเสมอ

ไม่มีสิ่งผิดปกติเกิดขึ้นเมื่อ Chromium ทำงานและฉันเปิด Firefox

เมื่อเปิดใช้ Firefox จากเทอร์มินัลบางครั้งฉันได้รับข้อความเช่นนี้เมื่อฉันออกจากมันในขณะที่มันกำลังหมุน

ExceptionHandler::GenerateDump cloned child 32165
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[Parent 26520, Gecko_IOThread] WARNING: pipe error (52): Connection reset by peer: file /build/firefox-8oo9jx/firefox-62.0+build2/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 353
ExceptionHandler::GenerateDump cloned child 32274
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
ExceptionHandler::SendContinueSignalToChild sent continue signal to child

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

รายละเอียดระบบบางอย่าง (อัพเดต):

  • Ubuntu 16.04 (64 บิต)
  • Firefox 62.0 + build2-0ubuntu0.16.04.5 63.0 + build2-0ubuntu0.16.04.2
  • โครเมียม 69.0.3497.81-0ubuntu0.16.04.1 70.0.3538.77-0ubuntu0.16.04.1
  • fontconfig 2.11.94-0ubuntu1.1
  • ฮาร์ดแวร์กราฟิก: Intel SkyLake กราฟิกอินทิเกรต (i5-6200U) + Nvidia GeForce 940M
    ปัจจุบันฉันnvidia-410ติดตั้งไดรเวอร์แล้ว แต่เปลี่ยนไปใช้โปรไฟล์ Intel Prime ฉันจะแก้ไขปัญหาเพิ่มเติมและแก้ไขปัญหานี้ได้อย่างไร

ฉันสร้างโปรไฟล์ประสิทธิภาพด้วย Gecko Profiler Extension ซึ่งติดตั้งไว้ในโปรไฟล์ Firefox ใหม่ทั้งหมดในบัญชี Ubuntu ปกติของฉัน สามารถพบได้ที่นี่: https://perfht.ml/2zpTWsh - กรอบเวลาที่ไม่ตอบสนองกับการใช้งาน CPU 100% โดยประมาณควรสอดคล้องกับพื้นที่ที่เน้นบนไทม์ไลน์ Proc เนื้อหาจากช่วงเวลาประมาณ 18 - 56 วินาที

ฉันสร้างรายงานข้อผิดพลาด Mozilla สำหรับปัญหานี้: https://bugzilla.mozilla.org/show_bug.cgi?id=1504461

การอัปเดตที่สำคัญ:เห็นได้ชัดว่ารายงานข้อผิดพลาดของฉันเป็นซ้ำของhttps://bugzilla.mozilla.org/show_bug.cgi?id=1495900ซึ่งชี้ให้เห็นfontconfigว่าเป็นผู้ร้าย ดูเหมือนว่าการเริ่มต้น Chromium จะทำให้เกิดการเปลี่ยนแปลงในการกำหนดค่าแบบอักษรซึ่งก่อให้เกิดการโหลดซ้ำทั้งหมดใน Firefox สิ่งนี้เหมาะกับรายงานการทำโปรไฟล์ประสิทธิภาพและยังสอดคล้องกับวิธีการอัพเดตแพ็คเกจแบบอักษรเดิมที่เรียกใช้การตรึงแบบเดียวกัน

ความคิดใดที่ฉันสามารถทำให้ทั้งสาม (Firefox, Chromium, fontconfig) ทำงานได้อย่างดี?


ทั้งหมดที่ฉันหาได้ที่บรรทัด 353 ของipc_channel_posix.ccเป็นข้อความสั่งคืนจริง แน่นอนว่าการเชื่อมต่อที่เหลือโดยเพียร์นั้นเป็นอันตรายถึงชีวิตไม่เคยเป็นลางดี น่าเศร้าที่ฉันไม่สามารถทำซ้ำปัญหานี้ได้ ฉันหวังว่าฉันจะได้รับความช่วยเหลือเพิ่มเติม
Elder Geek

ฉันยังมีปัญหาเป็นระยะ ๆ ด้วย CPU สูงใน Ubuntu แต่ฉันไม่สามารถบอกได้ว่าอะไรเป็นสาเหตุหรือแก้ไขได้ มีปัญหาเปิดมากมายที่ฉันติดตามที่เกี่ยวข้องกับการใช้งาน cpu สูง - ดังนั้นฉันจะอัปเกรดและหวังว่า ขณะนี้ฉันไม่มีปัญหาใด ๆ (หรือถ้าฉันเป็นแท็บเฉพาะดังนั้นการรีสตาร์ทเบราว์เซอร์หรือปิดแท็บจะแก้ไขปัญหา) เป็นไปได้ไหมที่จะอัพเกรดจาก 16.04 เป็น 18.10 (ตามที่แน่นอนคือ 16.04 จาก 4/2016 และ 18.10 เท่ากับ 8/2018) ... ? และ fwiw ฉันได้เปลี่ยนไปใช้ kubuntu ซึ่งดูเหมือนจะทำให้ฉันปวดหัวน้อยลง (ถ้าเป็นไปได้บูตจาก USB และทดลอง w / ทั้งสอง.)
ไมเคิล

บางครั้งฉันใช้ Firefox แล้วเปิด Chrome (ฉันรู้ว่ามันต่างออกไปเล็กน้อย) และไม่ได้สังเกตว่ามีการใช้งาน CPU สูง บางทีอาจเพิ่ม 5 วินาทีจาก 18% CPU เป็น 30% CPU ทั่วทั้ง 8 CPU เสมือน
WinEunuuchs2Unix

คำตอบ:


17

TL; DR:มันเป็นปัญหาของfontconfigเวอร์ชั่น 2.13 ก่อนหน้านี้ สามารถแก้ไขได้โดยการอัพเกรดแพ็คเกจเป็น 2.13 ขึ้นไป (แม้ว่าฉันจะไม่พบผู้ให้บริการที่เหมาะสม) ตรวจสอบโฟลเดอร์ที่เกี่ยวข้องกับแบบอักษรทั้งหมดของคุณและกำหนดค่าไฟล์ในโฮมไดเร็กตอรี่ของคุณและทดสอบว่าการลบไฟล์ใด ๆ ช่วยแก้ไขปัญหาของคุณหรือไม่ สำหรับฉันการเปลี่ยนชื่อ~/.fontsทำเคล็ดลับ


หลังจากเรียนรู้เกี่ยวกับรายงานข้อผิดพลาดhttps://bugzilla.mozilla.org/show_bug.cgi?id=1495900และhttps://bugzilla.mozilla.org/show_bug.cgi?id=1411338จะค่อนข้างชัดเจนว่าปัญหาจะต้องเป็น fontconfigที่เกิดจากการ

ยังไงก็ตามเมื่อ Chromium เริ่มต้นมันจะก่อให้เกิดการเปลี่ยนแปลงในฐานข้อมูลแบบอักษร (???) ซึ่งทำให้ Firefox - ถ้าทำงานอยู่ในปัจจุบัน - เพื่อสแกนระบบไฟล์เพื่อหาแบบอักษรอีกครั้งทำให้เกิดการใช้งาน CPU และหยุดการทำงานชั่วคราว

เห็นได้ชัดว่าการอัปเดตfontconfigแพคเกจจากรุ่น 2.11 เป็น 2.13 (รุ่นที่จัดส่งเช่นใน Ubuntu 18.10) ควรแก้ไขปัญหา แต่ฉันพบว่าไม่มีวิธีง่ายๆในการรับเวอร์ชันนั้นใน 16.04 โดยไม่ทำลายแพ็คเกจอื่น ๆ มากมายที่ฉันติดตั้ง

ดังนั้นเนื่องจากปัญหาถูก จำกัด ไว้ที่บัญชีผู้ใช้ของฉันฉันจึงตรวจสอบการกำหนดค่าแบบอักษรและโฟลเดอร์ของผู้ใช้ ค่อนข้างมีระเบียบของไดเรกทอรีตัวอักษรที่เกี่ยวข้องกับการที่แตกต่างกันเป็นเรื่องที่จะซื่อสัตย์รวมทั้ง~/.fonts, ~/.local/share/fonts, ~/.local/share-font-manager, ~/.config/font-manager, ~/.cache/font-manager, ~/.cache/fontconfigและไฟล์และสิ่งที่ตัวอักษรแอพลิเคชันเฉพาะการตั้งค่าอีกไม่กี่

ฉันเริ่มต้นด้วยการลบ (เปลี่ยนชื่อ) ~/.fontsโฟลเดอร์เนื่องจากมันดูเหมือนจะไม่มีสิ่งใดที่มีประโยชน์อยู่ดีและง่าย ๆtouch ~/.fonts/Library/ก่อนหน้านั้นที่ก่อให้เกิดพฤติกรรมไม่เหมาะสมสำหรับ Firefox หลังจากโฟลเดอร์นั้นหายไปปัญหาก็คือเมื่อเปิด Chromium \ O /


ทำให้รู้สึกว่าฉันไม่มี~/.fontsไดเรกทอรี แบบอักษรทั้งหมดอยู่ในไดเรกทอรีทั้งระบบ
WinEunuuchs2Unix

เห็นได้ชัดว่ามีข้อบกพร่องที่คล้ายกันหรือแม้กระทั่งข้อผิดพลาดเดียวกันสามารถเรียกใช้ในวันที่ 18.04 ได้ด้วยการเปิดหน้าต่างรูตเครื่องปลายทาง strace บ่งชี้ไฟล์ที่ร้ายแรงบางส่วนเกี่ยวกับไฟล์ฟอนต์ ที่น่าสนใจไม่เพียง แต่มีปัญหากับ firefox เพียงอย่างเดียว แต่แอปพลิเคชั่นอื่น ๆ ของ xorg เช่นกันดังนั้นฉันจึงเข้าใจปัญหาภายใน xorg เช่นกัน น่าเสียดายที่การลบไดเรกทอรีที่เป็นปัญหาไม่ได้ช่วยอะไร
stefanct

1
อย่างไรก็ตามการอัปเกรดfontconfigเป็น2.13.0-5ubuntu3cosmic / 18.10 ได้แก้ปัญหา AFAICT แล้ว นี่เป็นข้อผิดพลาดที่แปลกประหลาดที่สุดในขณะ ... ขอบคุณสำหรับตัวชี้
stefanct

@stefanct คุณติดตั้งโดยไม่ทำลายสิ่งได้อย่างไรฉันพยายามบังคับให้ fontconfig และ libfontconfig1 2.13 และ apt ต้องการลบ DE ทั้งหมดของฉันรัน 18.04
GM-Script-Writer-62850

@ GM-Script-Writer-62850 ฉันไม่มีความทรงจำเกี่ยวกับการจัดการโดยlibfontconfig1เฉพาะ โดยทั่วไปฉันได้เพิ่มมิเรอร์ bionic ลงในaptรายการและติดตั้ง apt pinning เพื่อหลีกเลี่ยงการติดตั้งแพ็คเกจใด ๆ โดยไม่แจ้งให้ทราบล่วงหน้า จากนั้นผมก็ใช้aptของตัวเลือกเช่นดังนั้น:-t apt install fontconfig -tcosmicฉันกำลังใช้คู่ครองเป็น DE ... บางทีมันอาจไม่ทำงานได้อย่างง่ายดายกับ DE อื่น ๆ
stefanct

3

พื้นหลัง

มันได้รับการเสนอนี้ Firefox Bug 1492360: ใช้งาน CPU สูงเมื่อเปิด Firefox ก่อนที่โครเมี่ยม นั่นคือสิ่งที่ซ้ำกันของ Bug 1495900: การเริ่มต้น Chrome ทำให้กระบวนการเนื้อหา Firefox หยุดทำงานประมาณสองนาทีเนื่องจากการฟอนต์ FontConfig การสแกนซ้ำ (FcInitReinitialize)เป็นสาเหตุของความผิดพลาด

แต่ฉันก็ใช้ Firefox ด้วย:

Firefox version.png

และเมื่อฉันเปิด Chrome:

Chrome version.png

ฉันไม่เห็นประสิทธิภาพการทำงานของซีพียูใด ๆ

อาจขัดต่อศีลธรรมของคุณ แต่บางทีคุณอาจลองติดตั้งgoogle-chrome-stableแบบที่ฉันมี จากนั้นทำการทดสอบอีกครั้ง หากไม่มีการขัดขวางการใช้งาน CPU ถึง 100% สามารถรายงานข้อผิดพลาดระหว่าง Chromium และ Chrome ได้

ฉันใช้ Ubuntu 16.04.5 LTS แม้ว่าเคอร์เนลจะเป็น4.14.78สายโซ่ LTS แต่ฉันก็ไม่คิดว่ามันจะเกี่ยวอะไรกับมัน

เวลาเท่านั้นที่ฉันเห็นทั้งหมดของ CPU ที่ 100% update-initramfsเป็นช่วง


fontconfig verson

ในรายงานข้อผิดพลาดมันถูกเปิดเผย:

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.12.6-0ubuntu2 amd64        generic font configuration library - support binaries
ii  fontconfig-config 2.12.6-0ubuntu2 all          generic font configuration library - configuration

ในรุ่นที่ไม่ใช่บั๊กซีของฉัน (อาจเป็นเพราะไม่มีฟอนต์ในตัวเครื่อง):

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.11.94-0ubuntu1.1 amd64        generic font configuration library - support binaries
ii  fontconfig-config 2.11.94-0ubuntu1.1 all          generic font configuration library - configuration

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


ไม่ฉันไม่ต้องการติดตั้ง Chrome อย่างไรก็ตามฉันพบว่าผู้กระทำผิดอยู่ในfontconfigขณะนี้ อาจเป็นไปได้ว่าคุณมีตัวอักษรในเครื่อง (หรือไม่) ติดตั้งในบัญชีผู้ใช้ของคุณ ฉันพบวิธีแก้ปัญหาในการลบ (เปลี่ยนชื่อ) ~/.fontsโฟลเดอร์ซึ่งแก้ไขปัญหา เห็นได้ชัดว่าการอัปเกรดเป็นfontconfig> = เวอร์ชัน 2.13 ควรแก้ไขด้วย แต่ฉันไม่สามารถทำได้ในวันที่ 16.04
ผู้บัญชาการ Byte

ใช่แบบอักษรเดียวที่ฉันติดตั้งนั้นใช้สำหรับบาร์โค้ด (รหัส 3 จาก 9) ซึ่งมีttfและใช้ในโปรแกรมประมวลผลคำ / สเปรดชีต โชคไม่ดีที่คุณต้องแก้ปัญหาความกรุณาของคุณเอง แต่ถ้ามันเป็นคำปลอบใจที่เกิดขึ้นกับฉันในอดีต
WinEunuuchs2Unix

ฉันเพิ่มการลดระดับfontconfigเป็นตัวเลือกเพื่อให้ตรงกับเวอร์ชันของฉัน แต่นั่นเป็น "ความหวังจาง ๆ " เนื่องจากคุณอาจมาจากที่นั่น หากคุณมีลิงค์สำหรับติดตั้งฟอนต์ในเครื่องฉันจะลองยืนยัน / ปฏิเสธผลกระทบของfontconfigเวอร์ชันเก่ากว่านั้น
WinEunuuchs2Unix

เวอร์ชันของฉันfontconfigก็2.11.94-0ubuntu1.1เช่นกันนั่นไม่ใช่ข้อผิดพลาด มันต้องเป็นการผสมผสานระหว่างแบบอักษรที่ติดตั้งการกำหนดค่าแบบอักษรที่กำหนดเองและเวทมนตร์สีดำฉันเดา ตรวจสอบคำตอบของฉัน :)
ผู้บัญชาการไบต์

1

ตัดสินจากบันทึกดูเหมือนว่า Firefox กำลังใช้ IPC แบบซิงโครนัส (การสื่อสารระหว่างกระบวนการ) ด้วยเหตุผลบางอย่าง มีการตั้งค่าสถานะใน Firefox เพื่อเปิด IPC แบบซิงโครนัสอย่างชัดเจน (เช่น: network.cookie.ipc.sync) หนึ่งในนั้นอาจถูกเปิดใช้งาน คุณสามารถเข้าถึงเหล่านี้จากabout: configหน้า

ความล่าช้านั้นจะเป็นผลมาจาก Firefox ที่รอการตอบสนอง เนื่องจากไม่มีโหลดเมื่อ Chromium เสร็จสิ้นการเริ่มต้นหรือไม่ทำงานอย่างต่อเนื่องจึงมีการตอบสนองทันที

ที่เกี่ยวข้อง: https://bugzilla.mozilla.org/show_bug.cgi?id=1331680


ฉันสลับค่าของการกำหนดค่านี้network.cookie.ipc.syncจากเท็จเป็นจริงและย้อนกลับเริ่ม Firefox ใหม่หลังจากการเปลี่ยนแปลงแต่ละครั้ง แต่ยังคงเป็นพฤติกรรมเดิม :( ฉันยังไม่เข้าใจว่าทำไม Firefox และ Chromium ถึงจะสื่อสารกันตั้งแต่แรกพวกเขาควรคำนึงถึงตนเอง แต่ละธุรกิจ
ผู้บัญชาการ Byte

1
ฉันลบสิ่งนี้แล้วเนื่องจากคุณพบว่าเหตุผลที่แท้จริงไม่เกี่ยวข้อง แต่ฉันคิดว่าฉันควรปล่อยไว้ที่นี่เพราะสาเหตุที่เป็นไปได้หรือไม่
Aswin B

0

ไม่ทราบว่าคำแนะนำต่อไปนี้ใช้ได้หรือไม่ คุณสามารถลอง ลองลบโครเมียมและ firefox โดยสมบูรณ์ (เก็บไฟล์. deb แน่นอน) โดยใช้ Synaptic Package Manager หลังจากตรวจสอบแล้วว่ามีการพึ่งพาที่หักหรือไม่ แก้ไขโดยใช้ synaptic (ถ้ามี) ตอนนี้ตรวจสอบการใช้งาน CPU (ฉันใช้ Powertop) สุดท้ายทำการติดตั้งเบราว์เซอร์ใหม่

หมายเหตุ: โดยทั่วไปสิ่งเหล่านี้เป็นสิ่งที่ฉันทำในกรณีที่มีความผิดปกติบางอย่าง ฉันจำได้ว่าประสบปัญหาคล้ายกันเล็กน้อยเมื่อปีที่แล้ว มันได้รับการแก้ไขด้วยวิธีนี้


ไม่กำจัดและติดตั้งแพ็คเกจ firefox * และ chromium * ทั้งหมดใหม่ไม่เปลี่ยนแปลงอะไรเลย
ผู้บัญชาการไบต์

วิดเจ็ตสถิติว่างและความถี่สถิติของ powertop แสดงการใช้งาน 100% เมื่อคุณเปิดใช้โครเมียมหรือไม่
Hirak

ใช่จะแสดงประมาณ 112% สำหรับ "C0 active" ในทุกคอร์ในสถิติที่ไม่ได้ใช้งานและสถิติความถี่จะรายงานความถี่สูงสุด (2.7GHz) และ 0% ที่ไม่ได้ใช้งานในแต่ละคอร์ แท็บภาพรวมจะแสดงกระบวนการ Firefox ทั้งหมดที่อยู่ด้านบนของรายการโดยประมาณเวลาในการคำนวณ 600-900ms / s แต่ละรายการ แต่ไม่มีเหตุการณ์ / s
ผู้บัญชาการไบต์

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