คำถามติดแท็ก kernel

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

4
เคอร์เนลสแต็กติดตามไปยังบรรทัดซอร์สโค้ด
ด้วยการติดตามเคอร์เนลสแต็กดังต่อไปนี้คุณจะกำหนดบรรทัดของรหัสเฉพาะที่เกิดปัญหาได้อย่างไร kernel: [<ffffffff80009a14>] __link_path_walk+0x173/0xfb9 kernel: [<ffffffff8002cbec>] mntput_no_expire+0x19/0x89 kernel: [<ffffffff8000eb94>] link_path_walk+0xa6/0xb2 kernel: [<ffffffff80063c4f>] __mutex_lock_slowpath+0x60/0x9b kernel: [<ffffffff800238de>] __path_lookup_intent_open+0x56/0x97 kernel: [<ffffffff80063c99>] .text.lock.mutex+0xf/0x14 kernel: [<ffffffff8001b222>] open_namei+0xea/0x712 kernel: [<ffffffff8006723e>] do_page_fault+0x4fe/0x874 kernel: [<ffffffff80027660>] do_filp_open+0x1c/0x38 kernel: [<ffffffff8001a061>] do_sys_open+0x44/0xbe kernel: [<ffffffff8005d28d>] tracesys+0xd5/0xe0 ในขณะที่ฉันไม่มีปัญหาในการค้นหาการเรียกใช้ฟังก์ชั่น - แต่การแปล__link_path_walkบวกการชดเชยให้กับหมายเลขบรรทัดจริงเป็นส่วนที่ยาก สมมติว่านี่เป็นเคอร์เนลที่มีการกระจายแบบมาตรฐานซึ่งฉันรู้รุ่นและหมายเลขบิลด์ที่แน่นอนกระบวนการในการดึงข้อมูลเมตาที่จำเป็นและการค้นหาที่สอดคล้องกันคืออะไร

8
จำเป็นต้องรีบูท Linux หลังจากอัพเดตเคอร์เนลหรือไม่?
ฉันมีเว็บเซิร์ฟเวอร์ผู้ผลิต Fedora และ Debian สองสามตัวที่โฮสต์ไซต์ของเรารวมถึงบัญชีเชลล์ผู้ใช้ (ใช้สำหรับการทำงาน vcs git, หน้าจอ + เซสชัน irssi ฯลฯ ) ในบางครั้งการอัปเดตเคอร์เนลใหม่จะลงมาในyum/ apt-getและฉันสงสัยว่าการแก้ไขส่วนใหญ่จะรุนแรงพอที่จะรับประกันการรีบูตหรือถ้าฉันสามารถใช้การแก้ไขการรีบูตได้ เซิร์ฟเวอร์การพัฒนาหลักของเราในปัจจุบันมีเวลาการทำงาน 213 วันและฉันไม่แน่ใจว่ามันไม่ปลอดภัยในการใช้งานเคอร์เนลรุ่นเก่ากว่านี้หรือไม่
19 linux  kernel  update 

3
การแปลง EC2 AMI เป็นอิมเมจ vmdk
ฉันได้มาค่อนข้างใกล้เคียงกับการได้รับ Amazon Linux เพื่อบูตภายใน VirtualBox ขอบคุณคำตอบนี้และเหล่านี้ เว็บไซต์ ภาพรวมอย่างย่อของขั้นตอนที่ฉันได้ทำไป: เรียกใช้อินสแตนซ์ EC2 ด้วย Amazon Linux 2011.09 64-bit AMI ddเนื้อหาของปริมาณ EBS ไปsshยังไฟล์ภาพในเครื่อง เมาท์ไฟล์รูปภาพเป็นอุปกรณ์ย้อนกลับแล้วไปยังจุดเมานต์ท้องถิ่น สร้างไฟล์อิมเมจดิสก์เปล่าใหม่แบ่งพาร์ติชันด้วยออฟเซ็ตสำหรับ bootloader และสร้างระบบไฟล์ ext4 เมานต์พาร์ติชั่นของอิมเมจใหม่และคัดลอกทุกอย่างจากอิมเมจ EC2 ติดตั้งด้วง (ใช้grub-legacy-ec2แพ็คเกจของ Ubuntu ไม่ใช่ด้วง 2 ) การแปลงไฟล์ภาพเพื่อ vmdk qemu-imgใช้ สร้าง VirtualBox VM ใหม่ด้วย vmdk ตอนนี้ VM boots, grub load และเคอร์เนลถูกพบ แต่มันล้มเหลวเมื่อพยายามติดตั้งอุปกรณ์รูท: dracut Warning: No …

3
นาฬิกาฮาร์ดแวร์ที่ใหญ่ที่สุดในการอัปเดตเคอร์เนล Linux คือ "โหมด 11 นาที" สามารถทำอะไรได้บ้าง
เมื่อโปรแกรมที่เกี่ยวข้องกับเวลา (เช่นntpd) กำลังทำงานบนระบบ Linux เคอร์เนลจะเปลี่ยนเป็นสิ่งที่เรียกว่า "โหมดสิบเอ็ดนาที" (ดูhwclockหน้าคน) โดยที่มันจะปรับปรุงนาฬิกาฮาร์ดแวร์จากนาฬิการะบบทุกสิบเอ็ดนาทีโดยอัตโนมัติ . ใน SLES11 ฉันได้กำหนดเชิงประจักษ์แล้วว่าถ้าฉันตั้งค่านาฬิกาฮาร์ดแวร์ให้เป็นอะไรบางอย่างที่อยู่หลังนาฬิการะบบ 10 ชั่วโมงโหมด 11 นาทีดูเหมือนจะไม่สามารถทำให้นาฬิกาฮาร์ดแวร์ตรงกับนาฬิการะบบได้ แต่ถ้าฉันตั้งค่านาฬิกาฮาร์ดแวร์ 5 นาทีหลังนาฬิการะบบโหมด 11 นาทีจะเข้ากันได้อย่างสมบูรณ์แบบ เห็นได้ชัดว่ามีการปรับปรุงสูงสุดที่โหมด 11 นาทีสามารถจัดการและฉันสงสัยว่ามันคืออะไร ปรับปรุง: นี่มันแปลก ... อื่น ๆ ที่แสดงให้เห็นว่าการทดลองเมื่อฉันมีนาฬิกา HW รอบ 20 นาทีหลังนาฬิการะบบโหมด 11 นาทีจะตั้งค่านาฬิกา HW ที่จะว่า 30 นาทีหลังนาฬิกาของระบบ (!): # date Tue Dec 6 10:16:52 EST 2011 # …
18 linux  kernel  time 

1
จะหาสาเหตุได้อย่างไรว่าทำไมอินเตอร์เฟซเครือข่ายจึงทิ้งแพ็กเก็ต?
มีวิธีใดบ้างใน Linux ที่จะได้รับสถิติเกี่ยวกับสาเหตุต่างๆที่แพ็กเก็ตถูกทิ้ง? ในอินเทอร์เฟซเครือข่ายทั้งหมด (openSUSE 12.3) บนเซิร์ฟเวอร์หลายเครื่องifconfigและnetstat -iกำลังรายงานแพ็กเก็ตที่ส่งไปที่แผนกต้อนรับ เมื่อฉันทำtcpdumpจำนวนแพ็คเก็ตที่ถูกทิ้งจะหยุดเพิ่มขึ้นซึ่งหมายความว่าคิวการเชื่อมต่อไม่เต็มและทำให้ข้อมูลลดลง ดังนั้นจะต้องมีเหตุผลอื่น ๆ ว่าทำไมสิ่งนี้จึงเกิดขึ้น (เช่นรับ multicast pkts ในขณะที่ส่วนต่อประสานไม่ได้เป็นส่วนหนึ่งของกลุ่ม multicast นี้) ฉันจะหาข้อมูลดังกล่าวได้จากที่ไหน? (/ proc? / sys? มีบันทึกบ้าง) ตัวอย่างสถิติ (ผสานของ / sys / class / net / <dev> / สถิติและเอาต์พุต ethtool): alloc_rx_buff_failed: 0 collisions: 0 dropped_smbus: 0 multicast: 1644 rx_align_errors: 0 rx_broadcast: 23626 rx_bytes: …

4
เซิร์ฟเวอร์ที่โหลดสูงอาจทำให้เกิดการค้างและข้อผิดพลาด“ ถูกบล็อกนานกว่า 120 วินาที”
กำลังใช้งานเซิร์ฟเวอร์ VM และ 'baremetal' สองสามเครื่อง Java ทำงานบนที่สูง - มากกว่า 400% + ในบางครั้ง เซิร์ฟเวอร์สุ่มค้างกับข้อผิดพลาดในคอนโซล "java - ถูกบล็อคนานกว่า 120 วินาที" - kjournald เป็นต้น ฉันไม่สามารถรับเอาต์พุต dmesg ได้ด้วยเหตุผลบางประการข้อผิดพลาดนี้จะเขียนไปยังคอนโซลซึ่งฉันไม่สามารถเข้าถึงได้เนื่องจากนี่โฮสต์จากระยะไกล ดังนั้นฉันไม่สามารถคัดลอกการติดตามแบบเต็ม ฉันเปลี่ยนสภาพแวดล้อมที่เปิดอยู่แม้กระทั่งเซิร์ฟเวอร์จริงและก็ยังเกิดขึ้นอยู่ ผมเปลี่ยน hung_task_timeout_secs 0 กรณีนี้เป็นเท็จบวกตามhttp://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html นอกจากนี้ยังไม่ได้ติดตั้ง irqbalance บางทีมันอาจจะช่วยได้? นี่คือ Ubuntu 10.04 64 บิต - ปัญหาเดียวกันกับเซิร์ฟเวอร์ 2.6.38-15 ล่าสุดและ 2.6.36 cpu หรือปัญหาหน่วยความจำ / ไม่มีการสลับซ้ายทำให้เกิดปัญหานี้หรือไม่? นี่คือข้อความคอนโซล: [58Z?Z1.5?Z840] INFUI …
17 linux  kernel 

1
วิธีการปิดการใช้งานระบบย่อย perf ในเคอร์เนล Linux?
ฉันใช้การวัดประสิทธิภาพ เกณฑ์มาตรฐานนักวิ่งของฉันตรวจสอบบัฟเฟอร์ dmesg ระหว่างการทดลองค้นหาสิ่งที่อาจส่งผลกระทบต่อประสิทธิภาพ วันนี้มันโยนสิ่งนี้ขึ้น: [2015-08-17 10:20:14 คำเตือน] ดูเหมือนว่า dmesg จะเปลี่ยนไป! ต่างดังนี้ --- 2015-08-17 09:55:00 +++ 2015-08-17 10:20:14 @@ -825,3 +825,4 @@ [3.802206] [drm] การเปิดใช้งานสถานะ RC6: เปิด RC6, ปิด RC6p, ปิด RC6pp [7.900533] r8169 0000: 06: 00.0 eth0: เชื่อมโยง [7.900541] IPv6: ADDRCONF (NETDEV_CHANGE): eth0: ลิงก์พร้อมใช้งาน + [236832.221937] การขัดจังหวะแบบสมบูรณ์ใช้เวลานานเกินไป (2504> 2500) …

4
ใน CentOS 6.x ฉันจะอัพเกรดเป็น Kernel 3.4 ได้อย่างไร
ฉันมีเซิร์ฟเวอร์ที่รัน CentOS 6.2 พร้อมเคอร์เนลเวอร์ชัน 2.6.32 แต่ฉันต้องเพิ่มประสิทธิภาพของแอปพลิเคชันของฉัน Kernel เวอร์ชั่น 3.4 มี x32abi ซึ่งสามารถปรับปรุงประสิทธิภาพได้ดังนั้นฉันต้องการอัพเกรดเป็น 3.4? เป็นไปได้ไหม? ฉันพยายามดาวน์โหลดการรวบรวมและติดตั้งเคอร์เนล แต่ก็ยังเห็น Kernel เวอร์ชั่นเดียวกัน .. เกิดอะไรขึ้น ฉันทำตามขั้นตอนที่กล่าวถึงในลิงค์ด้านล่าง http://www.tecmint.com/kernel-3-5-released-install-compile-in-redhat-centos-and-fedora/

6
ผลิต ksplice พร้อมหรือยัง
ฉันสนใจที่จะรับฟังประสบการณ์ของชุมชน serverfault กับKspliceในการผลิต ประกาศอย่างรวดเร็วจากวิกิพีเดีย: Ksplice เป็นส่วนขยายโอเพ่นซอร์สฟรีของเคอร์เนล Linux ซึ่งช่วยให้ผู้ดูแลระบบใช้แพตช์รักษาความปลอดภัยกับเคอร์เนลที่กำลังรันอยู่โดยไม่ต้องรีบูตระบบปฏิบัติการ และ Ksplice สามารถโดยไม่ต้องรีสตาร์ทเคอร์เนลใช้แพตช์โค้ดใด ๆ ที่ต้องการแก้ไขโค้ดเคอร์เนลเท่านั้น แตกต่างจากระบบอัพเดทฮอตอื่น ๆ Ksplice ใช้เป็นอินพุตเพียงส่วนต่างแบบรวมและซอร์สโค้ดเคอร์เนลดั้งเดิมและอัพเดตเคอร์เนลที่รันอยู่อย่างถูกต้องโดยไม่ต้องการความช่วยเหลือจากมนุษย์เพิ่มเติม นอกจากนี้การใช้ประโยชน์จาก Ksplice ไม่จำเป็นต้องมีการเตรียมการใด ๆ ก่อนที่ระบบจะถูกบูตในตอนแรก (เคอร์เนลที่ทำงานอยู่ไม่จำเป็นต้องได้รับการรวบรวมเป็นพิเศษเช่น) ในการสร้างการอัปเดต Ksplice ต้องกำหนดรหัสภายในเคอร์เนลที่มีการเปลี่ยนแปลงโดยแพทช์รหัสที่มา ดังนั้นคำถามสองสามข้อ: ความเสถียรเป็นอย่างไร? มีปัญหาแปลก ๆ อะไรบ้างที่คุณพบกับ 'rebootless live patching' ของเคอร์เนล? เคอร์เนลตกใจหรือเรื่องราวสยองขวัญ? ฉันใช้มันในระบบทดสอบไม่กี่ครั้งและจนถึงตอนนี้มันทำงานได้ตามที่โฆษณาไว้ แต่ฉันสนใจในสิ่งที่ซิสดมินส์อื่น ๆ เคยใช้กับ Ksplice ก่อนที่จะ 'เข้า' และปรับใช้เซิร์ฟเวอร์การผลิตของเรา ดังนั้นใครก็ตามที่ใช้ Kspice ในการผลิต อัปเดต:อืมไม่เห็นกิจกรรมจริงในคำถามนี้หลังจากผ่านไปสองสามชั่วโมง (นอกเหนือจาก upvotes …

1
systemd ใช้ 4GB RAM หลังจากเวลาผ่านไป 18 วัน
ฉันมีเว็บเซิร์ฟเวอร์ที่ใช้งาน CentOS 7 ซึ่งกระบวนการ systemd ใช้ RAM เกือบ 4 GB หลังจากสองสามสัปดาห์ที่ผ่านมา การใช้ RAM เพิ่มขึ้นอย่างต่อเนื่องที่ประมาณ 200MB ต่อวัน กระบวนการนี้และกระบวนการที่เกี่ยวข้องเช่น systemd-logind และ dbus-daemon ยังใช้ CPU จำนวนมากในเวลาเดียวกัน เซิร์ฟเวอร์ CentOS 6 อื่น ๆ ของฉันที่ใช้ "init" แทน systemd ไม่มีการใช้ทรัพยากรดังกล่าว ในตัวอย่างด้านบนด้านล่างในระหว่างการให้บริการเว็บปกติโดยไม่ต้องใช้กระบวนการอื่น ๆ systemd, systemd-logind, systemd-journal และ dbus-daemon ใช้ 10.7% รวมของ quad-core CPU และ systemd ใช้ 19% ของ …
14 linux  kernel  systemd 

4
วิธีแก้ไข“ BUG: soft lockup - CPU # 0 ค้างอยู่ที่ 17163091968s”?
UPDATE:ฉันปรับปรุงชื่อของข้อความเพราะผมเคยเห็นเมื่อเร็ว ๆ 17163091968sนี้มากขึ้นของปัญหาเหล่านี้มีจำนวนนี้เวลาที่แน่นอนของ สิ่งนี้จะช่วยให้ผู้คนตรวจสอบอาการเพื่อค้นหาหน้านี้ ดูคำตอบที่ฉันยอมรับได้ด้วยตนเองด้านล่าง ฉันได้ Ubuntu 644 LTS VM จำนวน 64 บิตในศูนย์ข้อมูล VMware vSphere ติดตั้งเครื่องมือ VMware แล้ว (ลูกค้า vSphere ระบุว่า "ตกลง") ฉันเคยเห็นบางส่วนของ VM ค้างสองสามครั้งด้วยข้อผิดพลาดต่อไปนี้ใน syslog เมื่อตรวจสอบสถานการณ์จาก vSphere คอนโซลนั้นเป็นสีดำและคำสั่ง "แขกรีบูต" ไม่ได้ทำอะไรเลยดังนั้นฉันจึงต้องเปิดวงจร VM Dec 1 11:44:15 s0 kernel: [18446744060.007150] BUG: soft lockup - CPU#0 stuck for 17163091988s! [jed:26674] Dec 1 11:44:15 …

1
Taskset ไม่ทำงานในช่วงของคอร์ในไอโซ
เพื่อนำหน้าฉันใช้ Debian Wheezy พร้อมเคอร์เนล 3.2 บนชิปเซ็ต AMD64 เครื่องของฉันมีสองแกน Xeon E5-2690 ฉันตั้งค่าพารามิเตอร์การบู๊ตเพื่อให้แกนประมวลผลทั้งหมดใน CPU ตัวเดียวทุ่มเทให้กับกระบวนการเดียว เมื่อต้องการทำสิ่งนี้ฉันได้ตั้ง isolcpus = 8,9,10,11,12,13,14,15 ในด้วง จนถึงตอนนี้ดีมาก ตอนนี้สมมติว่าฉันต้องการใช้ซีพียูแบบแยกสำหรับคำสั่งที่กำหนดให้เป็นแบบง่ายฉันจะใช้ลูปไม่ จำกัด แบบง่าย: $ tasket -c 8-15 bash -c 'โดยจริง; ทำเสียงสะท้อนสวัสดี> / dev / null; เสร็จแล้ว & จนถึงตอนนี้ยอดเยี่ยมแสดงให้เห็นว่าคอร์ 8 หมุนถึงการใช้ประโยชน์เกือบ 100% ตอนนี้สมมติว่าฉันเปิดใช้คำสั่งนั้นอีกครั้ง: $ tasket -c 8-15 bash -c 'โดยจริง; ทำเสียงสะท้อนสวัสดี> / …

3
แปลก: ทำไมลินุกซ์ตอบสนองต่อการ ping ด้วยการร้องขอ ARP หลังจากตอบ ping ครั้งสุดท้าย?
ฉัน (และเพื่อนร่วมงาน) เพิ่งสังเกตเห็นและทดสอบว่าเมื่อเครื่อง Linux ถูก ping หลังจาก ping ล่าสุดมันเริ่มต้นการร้องขอ ARP แบบ unicastไปยังเครื่องที่เริ่มต้นการ ICMP ping เมื่อส่งสัญญาณไปยังเครื่อง Windows เครื่อง Windows จะไม่ส่งคำขอ ARP ในตอนท้าย ใครบ้างทราบว่าจุดประสงค์ของคำขอ ARP แบบ Unicast นี้คืออะไรและเหตุใดจึงเกิดขึ้นบน Linux และไม่ใช่บน Windows การติดตามของ Wireshark (ด้วย 10.20.30.45 เป็นกล่อง Linux): No.Time Source Destination Prot Info 19 10.905277 10.20.30.14 10.20.30.45 ICMP Echo (ping) request 20 10.905339 …
12 linux  kernel  ping  arp  icmp 

5
คำเตือน“ โมดูลบางโมดูลอาจหายไปจากแกนภาพ”
หนึ่ง HDD ตกจาก RAID ของฉันและฉันเพิ่ม HDD ใหม่ ตอนนี้ผมอยากจะติดตั้งด้วงกับ HDD grub-install /dev/sdbใหม่ด้วย ฉันได้รับคำเตือนเหล่านี้: Installing for i386-pc platform. grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. Installation finished. No error …
12 ubuntu  kernel  grub  grub2 

2
คุณจะตรวจสอบรุ่นของโมดูลเคอร์เนล * .ko ใน Linux ได้อย่างไร
ฉันรู้ว่าคุณสามารถทำได้: sudo modprobe -v some_module เพื่อตรวจสอบเวอร์ชั่นของ/lib/modules/.../some_module.koแต่ฉันยังคงต้องการที่จะสามารถตรวจสอบรุ่นของเคอร์เนลโมดูลใด ๆ modprobeโดยพลการที่ไม่จำเป็นต้องไปโหลดโดย
12 linux  kernel 

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