คำสั่งที่ใช้เวลานานส่วนใหญ่ถูกฆ่าใน Amazon EC2 ทันที (Ubuntu 10.04)


26

เมื่อใช้การจัดเรียงของยาวทำงานคำสั่งใน terminal ใด ๆ Killedโปรแกรมทันทีตายและเอาท์พุทขั้วข้อความ

ตัวชี้ใด ๆ อาจมีไฟล์บันทึกที่มีข้อมูลอธิบายว่าเหตุใดคำสั่งจึงถูกฆ่า?

ปรับปรุง

นี่คือตัวอย่างข้อมูลจากdmesgหวังว่าควรให้ความกระจ่างว่าอะไรเป็นสาเหตุของปัญหา ข้อควรทราบอีกประการหนึ่งที่อาจเป็นประโยชน์คือนี่คืออินสแตนซ์ของ Amazon EC2

May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184209] Call Trace:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184218]  [<c01e49ea>] dump_header+0x7a/0xb0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184221]  [<c01e4a7c>] oom_kill_process+0x5c/0x160
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184224]  [<c01e4fe9>] ? select_bad_process+0xa9/0xe0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184227]  [<c01e5071>] __out_of_memory+0x51/0xb0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184229]  [<c01e5128>] out_of_memory+0x58/0xd0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184232]  [<c01e7f16>] __alloc_pages_slowpath+0x416/0x4b0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184235]  [<c01e811f>] __alloc_pages_nodemask+0x16f/0x1c0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184238]  [<c01ea2ca>] __do_page_cache_readahead+0xea/0x210
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184241]  [<c01ea416>] ra_submit+0x26/0x30
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184244]  [<c01e3aef>] filemap_fault+0x3cf/0x400
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184247]  [<c02329ad>] ? core_sys_select+0x19d/0x240
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184252]  [<c01fb65c>] __do_fault+0x4c/0x5e0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184254]  [<c01e4161>] ? generic_file_aio_write+0xa1/0xc0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184257]  [<c01fd60b>] handle_mm_fault+0x19b/0x510
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184262]  [<c05f80d6>] do_page_fault+0x146/0x440
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184265]  [<c0232c62>] ? sys_select+0x42/0xc0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184268]  [<c05f7f90>] ? do_page_fault+0x0/0x440
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184270]  [<c05f53c7>] error_code+0x73/0x78
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.184274]  [<c05f007b>] ? setup_local_APIC+0xce/0x33e
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272161]  [<c05f0000>] ? setup_local_APIC+0x53/0x33e
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272163] Mem-Info:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272164] DMA per-cpu:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272166] CPU    0: hi:    0, btch:   1 usd:   0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272168] Normal per-cpu:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272169] CPU    0: hi:  186, btch:  31 usd:  50
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272171] HighMem per-cpu:
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272172] CPU    0: hi:  186, btch:  31 usd:  30
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272176] active_anon:204223 inactive_anon:204177 isolated_anon:0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272177]  active_file:47 inactive_file:141 isolated_file:0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272178]  unevictable:0 dirty:0 writeback:0 unstable:0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272179]  free:10375 slab_reclaimable:1650 slab_unreclaimable:1856
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272180]  mapped:2127 shmem:3918 pagetables:1812 bounce:0May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272186] DMA free:6744kB min:72kB low:88kB high:108kB active_anon:300kB inactive_anon:308kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15812kB mlocked:0kB dirty:0kB writeback:0kB mapped:4kB shmem:0kB slab_reclaimable:8kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272190] lowmem_reserve[]: 0 702 1670 1670May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272197] Normal free:34256kB min:3352kB low:4188kB high:5028kB active_anon:317736kB inactive_anon:317308kB active_file:144kB inactive_file:16kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:719320kB mlocked:0kB dirty:4kB writeback:0kB mapped:32kB shmem:0kB slab_reclaimable:6592kB slab_unreclaimable:7424kB kernel_stack:2592kB pagetables:7248kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:571 all_unreclaimable? yes
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272201] lowmem_reserve[]: 0 0 7747 7747May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272207] HighMem free:500kB min:512kB low:1668kB high:2824kB active_anon:498856kB inactive_anon:499092kB active_file:44kB inactive_file:548kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:991620kB mlocked:0kB dirty:0kB writeback:0kB mapped:8472kB shmem:15672kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:430 all_unreclaimable? yes
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272211] lowmem_reserve[]: 0 0 0 0May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272215] DMA: 10*4kB 22*8kB 38*16kB 33*32kB 16*64kB 10*128kB 4*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 6744kBMay 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272223] Normal: 476*4kB 1396*8kB 676*16kB 206*32kB 23*64kB 2*128kB 0*256kB 0*512kB 0*1024kB 1*2048kB 0*4096kB = 34256kBMay 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272231] HighMem: 1*4kB 2*8kB 28*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 500kB
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272238] 4108 total pagecache pages
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272240] 0 pages in swap cache
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272242] Swap cache stats: add 0, delete 0, find 0/0
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272243] Free swap  = 0kB
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.272244] Total swap = 0kB
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276842] 435199 pages RAM
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276845] 249858 pages HighMem
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276846] 8771 pages reserved
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276847] 23955 pages shared
May 14 20:29:15 ip-10-112-33-63 kernel: [11144050.276849] 405696 pages non-shared

มีประโยชน์มากเพียงมีปัญหาเดียวกัน
คุกกี้

คำตอบ:


36

คุณควรจะสามารถค้นหาว่าอะไรที่ทำให้กระบวนการของคุณถูกทำลายโดยดูที่ผลลัพธ์ของdmesgคำสั่ง หรืออย่าง logfiles /var/log/kern.log, หรือ/var/log/messages/var/log/syslog

มีหลายสิ่งที่สามารถทำให้กระบวนการถูกฆ่าอย่างรวบรัด:

  • หากเกิน ulimit ฮาร์ดสำหรับหน่วยความจำหรือการใช้งาน cpu ชนิดต่าง ๆ ที่คุณสามารถตรวจสอบการใช้ ulimit -H -a
  • หากระบบมีหน่วยความจำเสมือนเหลือน้อยกระบวนการสามารถถูกเคอร์เนล oom-killer ฆ่ากระบวนการเพื่อเพิ่มหน่วยความจำ (ในกรณีของคุณอาจไม่ใช่สิ่งนี้)
  • หากระบบมีการติดตั้ง SELinux และ / หรือ PaX / grsecurity กระบวนการอาจถูกฆ่าได้หากพยายามทำบางสิ่งที่ไม่ได้รับอนุญาตจากนโยบายความปลอดภัยหรือหากพยายามเรียกใช้รหัสที่แก้ไขเอง

บันทึกหรือ dmesg ควรบอกคุณว่าเหตุใดกระบวนการจึงถูกฆ่า


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

3
ใช่คุณจะได้รับบิตโดยนักฆ่า oom; ซึ่งหมายความว่าคุณมีหน่วยความจำไม่เพียงพอ ลองเพิ่มพื้นที่สว็อปบางส่วนในอินสแตนซ์ของคุณ (แม้จะมีสว็อปแลกเปลี่ยนเพียงไม่กี่ร้อย megs ก็สามารถช่วยได้มากในสถานการณ์ที่มีหน่วยความจำเหลือน้อย)
Heath

สำหรับคนอื่น ๆ ที่สงสัยว่าจะเพิ่ม swap ให้กับ EC2 ได้อย่างไรคำตอบนี้ช่วยฉัน (หลังจาก SSHing เป็นตัวอย่าง): stackoverflow.com/a/17173973/4900327
Abhishek Divekar

10

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

วิธีแก้ปัญหาที่ชัดเจนคือหน่วยความจำเพิ่มเติม แต่คุณอาจมีหน่วยความจำไม่เพียงพอเนื่องจากหน่วยความจำรั่วที่ไหนสักแห่งและการเพิ่มหน่วยความจำมากขึ้นน่าจะทำให้ OOM killer ถูกเรียกใช้ในกรณีที่เกิดกรณีนี้ขึ้นเท่านั้น ตรวจสอบตารางกระบวนการของคุณสำหรับกระบวนการที่ใช้หน่วยความจำส่วนใหญ่ด้วยเครื่องมือที่คุณโปรดปราน (บนสุด, ps, ฯลฯ ) และไปจากที่นั่น


OOM killer มีการกำหนดลักษณะที่แน่นอนสำหรับกระบวนการกิจกรรมต่ำที่ใช้เวลานาน มีมันฆ่า sshd บนเซิร์ฟเวอร์การผลิตทำให้การแก้จุดบกพร่องหากิน
mfarver

Sshd ปรับคะแนนของตัวเอง / proc / pid / oom_adj ดังนั้นจึงไม่สามารถฆ่าได้โดยนักฆ่า oom (ก่อนที่มันจะฆ่าทุกอย่าง)
yaplik

@yaplik สิ่งนี้ดูเหมือนจะไม่ใช้กับการกระจายเมื่อเร็ว ๆ นี้ ในขณะที่กระบวนการเด็กสืบทอดค่าของ oom_adj ผู้ใช้ที่เป็นอันตรายอาจทำให้เกิด DoS โดยการใช้หน่วยความจำทั้งหมดโดยไม่ต้องกระบวนการของเขา / เธอถูกฆ่าโดยนักฆ่า OOM
ikso

4

ตามที่ผู้อื่นอธิบายไว้แล้วคุณมีหน่วยความจำไม่เพียงพอหน่วยความจำหมดจึงถูกเรียกใช้และฆ่ากระบวนการบางอย่าง

คุณสามารถแก้ไขปัญหานี้ได้เช่นกัน:

a) อัพเกรดเครื่อง ec2 ของคุณให้มีประสิทธิภาพมากขึ้น 'อินสแตนซ์ขนาดเล็ก' มีหน่วยความจำ 2.5x (1.7GB) มากกว่า 'ไมโครอินสแตนซ์' (0.64GB) ค่าใช้จ่ายเพิ่มเติม

พาร์ทิชัน swap ข) การเพิ่ม - เพิ่มไดรฟ์ EBS เพิ่มเติมmkswap /dev/sdx, swapon /dev/sdxค่าใช้จ่ายการจัดเก็บ EBS และค่าธรรมเนียม IO

ค) การเพิ่มไฟล์แลกเปลี่ยน - dd if=/dev/zero of=/swap bs=1M count=500, mkswap /swap, swapon /swapค่าใช้จ่ายค่าธรรมเนียม IO และพื้นที่ว่างในราก EBS

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


3

ผมมีปัญหาเหมือนกัน. กระบวนการของฉันถูกฆ่า

ฉันพบว่า Ubuntu AMI ที่ฉันใช้ไม่ได้ตั้งค่าพื้นที่สว็อปไว้ เมื่อหน่วยความจำเต็มและไม่มีพื้นที่สว็อปเคอร์เนลจะเริ่มกระบวนการฆ่าเพื่อป้องกันตัวเองโดยไม่คาดคิด สลับพื้นที่เพื่อป้องกันไม่ให้ (ปัญหานี้เกี่ยวข้องอย่างยิ่งกับอินสแตนซ์ Micro เนื่องจากหน่วยความจำขนาดเล็ก 613 MB)

วิธีตรวจสอบว่าคุณมีประเภทการตั้งค่าพื้นที่สว็อปหรือไม่: swapon -s

ตั้งค่าพื้นที่สว็อป: http://www.linux.com/news/software/applications/8208-all-about-linux-swap-space

แหล่งข้อมูลอื่น ๆ : http://wiki.sysconfig.org.uk/display/howto/Build+your+own+Core+CentOS+5.x+AMI+for+Amazon+EC2


ทำงานให้ฉัน! dmesg ของฉันมีเพียง "select proccess_name ที่จะฆ่า" หนึ่งเดียวหลังจากที่อื่นและฉันไม่มี / var / log / ข้อความหรือบันทึกที่เป็นประโยชน์ใด ๆ แต่การใช้ "free -h" แสดงให้เห็นว่าแทบจะไม่มีหน่วยความจำเหลือเลย ขอบคุณมาก!
divieira

1

บันทึกบอกว่าคุณมีหน่วยความจำ swap / cache หมด

    14 พฤษภาคม 20:29:15 เคอร์เนล ip-10-112-33-63: [11144050.272240] 0 หน้าในการแลกเปลี่ยนแคช
    14 พฤษภาคม 20:29:15 ip-10-112-33-63 kernel: [11144050.272242] สลับสถานะแคช: เพิ่ม 0, ลบ 0, ค้นหา 0/0
    14 พฤษภาคม 20:29:15 ip-10-112-33-63 เคอร์เนล: [11144050.272243] แลกเปลี่ยนฟรี = 0kB
    14 พฤษภาคม 20:29:15 ip-10-112-33-63 เคอร์เนล: [11144050.272244] การแลกเปลี่ยนทั้งหมด = 0kB

คุณสามารถแบ่งงาน / กระบวนการที่คุณใช้เป็นแบทช์ได้หรือไม่? บางทีคุณสามารถลองใช้งานแยกกันหลังจากหยุดกระบวนการอื่นได้หรือไม่

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