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

ในการคำนวณหน่วยความจำหมายถึงข้อมูลสถานะของระบบคอมพิวเตอร์เนื่องจากมันถูกเก็บไว้ในโครงสร้างทางกายภาพบางอย่าง


7
วิธีการแสดง meminfo เป็นเมกะไบต์ด้านบน?
บางครั้งไม่สะดวกที่จะเห็น meminfo เป็นกิโลไบต์เมื่อคุณมี RAM หลายกิกะไบต์ ใน Linux ดูเหมือนว่า: และนี่คือลักษณะที่ปรากฏใน Mac OS X: มีวิธีการแสดง meminfo ในลีนุกซ์ชั้นนำในเทราไบต์, กิกะไบต์และเมกะไบต์หรือไม่?
184 linux  memory  top  meminfo 


7
จำกัด การใช้หน่วยความจำสำหรับกระบวนการ Linux เดียว
ฉันกำลังpdftoppmแปลงไฟล์ PDF ที่ผู้ใช้ให้เป็นภาพ 300DPI วิธีนี้ใช้งานได้ดียกเว้นในกรณีที่ผู้ใช้มีขนาดหน้ากระดาษที่ใหญ่มาก pdftoppmจะจัดสรรหน่วยความจำให้เพียงพอที่จะเก็บภาพขนาด 300DPI ในหน่วยความจำซึ่งสำหรับหน้าสี่เหลี่ยม 100 นิ้วคือ 100 * 300 * 100 * 300 * 4 ไบต์ต่อพิกเซล = 3.5GB ผู้ใช้ที่เป็นอันตรายสามารถให้ PDF ที่มีขนาดใหญ่และทำให้เกิดปัญหาได้ทุกประเภท ดังนั้นสิ่งที่ฉันต้องทำคือการ จำกัด การใช้หน่วยความจำอย่างหนักสำหรับกระบวนการลูกที่ฉันจะเรียกใช้ - เพียงแค่มีกระบวนการตายหากพยายามจัดสรรหน่วยความจำมากกว่า 500MB เป็นไปได้ไหม ฉันไม่คิดว่า ulimit สามารถใช้สำหรับสิ่งนี้ แต่มีกระบวนการที่เทียบเท่าหรือไม่
152 linux  memory  ulimit 

4
ฉันจะอ่านจาก / proc / $ pid / mem ภายใต้ Linux ได้อย่างไร
ลินุกซ์proc(5)หน้าคนบอกฉันว่า/proc/$pid/mem“สามารถใช้ในการเข้าถึงหน้าเว็บของหน่วยความจำของกระบวนการที่” แต่ความพยายามที่ตรงไปตรงมาที่จะใช้มันทำให้ฉันเท่านั้น $ cat /proc/$$/mem /proc/self/mem cat: /proc/3065/mem: No such process cat: /proc/self/mem: Input/output error เหตุใดจึงไม่catสามารถพิมพ์หน่วยความจำของตัวเอง ( /proc/self/mem) และข้อผิดพลาด“ ไม่มีกระบวนการดังกล่าว” ที่แปลกคืออะไรเมื่อฉันพยายามพิมพ์หน่วยความจำของเชลล์ ( /proc/$$/memเห็นได้ชัดว่ามีกระบวนการ) ฉันจะอ่านได้/proc/$pid/memอย่างไร
142 linux  kernel  process  memory  proc 

8
เรียงลำดับกระบวนการตามการใช้หน่วยความจำ
ฉันสามารถดูรายการกระบวนการทั้งหมดและหน่วยความจำผ่าน ps aux และผ่าน VSZ และ RSS มีวิธีเรียงลำดับผลลัพธ์ของคำสั่งนี้ตามลำดับจากมากไปน้อยในค่า RSS หรือไม่
128 linux  memory 

6
ฉันจะกำหนดจำนวนช่อง RAM ที่ใช้งานได้อย่างไร
ฉันลืมว่ามีการติดตั้งโมดูล RAM จำนวนเท่าใดในแล็ปท็อปของฉัน ฉันไม่ต้องการคลายเกลียว แต่ต้องการค้นหาบนคอนโซลโดยใช้ bash ฉันจะรวบรวมข้อมูลนี้ได้อย่างไร

6
หน่วยความจำสูงและหน่วยความจำเหลือน้อยบน Linux คืออะไร
ฉันสนใจความแตกต่างระหว่าง Highmem และ Lowmem: ทำไมถึงมีความแตกต่างเช่นนี้? เราได้อะไรจากการทำเช่นนั้น? แต่ละคุณสมบัติมีอะไรบ้าง
92 linux  kernel  memory 

1
OOM killer ตัดสินใจอย่างไรว่ากระบวนการใดจะต้องฆ่าก่อน
นี้คำตอบที่อธิบายการดำเนินการโดย kernel เมื่อสถานการณ์ OOM sysctl vm.overcommit_memoryจะพบขึ้นอยู่กับมูลค่าของ เมื่อovercommit_memoryตั้งค่าเป็น 0 หรือ 1 overcommitจะเปิดใช้งานและโปรแกรมได้รับอนุญาตให้จัดสรรหน่วยความจำได้มากกว่าที่มีจริง ๆ ตอนนี้เกิดอะไรขึ้นเมื่อเรามีหน่วยความจำไม่เพียงพอในสถานการณ์นี้ อย่างไรฆาตกร OOMตัดสินใจว่าขั้นตอนการฆ่าครั้งแรก?

13
ฉันต้องการพื้นที่สว็อปถ้าฉันมี RAM มากกว่าจำนวนเพียงพอหรือไม่
จากสิ่งที่ฉันเข้าใจวัตถุประสงค์ของการสลับพาร์ติชันใน Linux คือการเพิ่มข้อมูล "ไม่ได้เข้าถึงบ่อย" จาก RAM และย้ายไปยังพาร์ติชันเฉพาะบนฮาร์ดไดรฟ์ของคุณ (ที่ทำให้การอ่านหรือเขียนช้าลง ถึง) เป็นหลักทำให้แอปพลิเคชันที่ใช้งานอยู่ของ "หน่วยความจำความเร็วสูง" เป็นหลัก นี่เป็นสิ่งที่ดีสำหรับเมื่อคุณอยู่ในเครื่องที่มี RAM จำนวนเล็กน้อยและไม่ต้องการที่จะพบปัญหาหากคุณหมด อย่างไรก็ตามหากระบบของคุณมีRAM 16 GBหรือ32 GBและสมมติว่าคุณไม่ได้ใช้ฐานข้อมูล MySQL สำหรับ StackExchange หรือแก้ไขภาพยนตร์ความยาว 1080p เต็มรูปแบบใน Linux ควรใช้พาร์ติชัน swap หรือไม่
91 memory  swap 

7
จะค้นหากระบวนการใดที่ใช้หน่วยความจำทั้งหมด
ฉันกำลังมองหาบางอย่างเช่นด้านบนคือการใช้งาน CPU มีอาร์กิวเมนต์บรรทัดคำสั่งสำหรับด้านบนที่ทำเช่นนี้? ขณะนี้หน่วยความจำของฉันเต็มแล้วที่ว่า 'man top' ก็ล้มเหลวโดยไม่มีหน่วยความจำ :)
84 process  memory  top 

8
ทำไม Vim เปิดไฟล์ข้อความขนาด 100 MB เมื่อฉันมี RAM ขนาด 16 GB
ฉันมีไฟล์สำรองฐานข้อมูล MySQL 100MB และฉันมีปัญหาในการเปิดใน Vim บนกล่อง Linux ที่มี RAM ขนาด 16G เป็นกลุ่มเพียงแฮงค์ (อย่างน้อยก็ใช้ไม่ได้) นี่คือสิ่งที่ฉันไม่เข้าใจ ฉันมี RAM 16 GB ทำไมฉันไม่สามารถโหลดไฟล์ 100 MB ในโปรแกรมแก้ไขได้ มันเป็นเพราะกลุ่ม? ฉันคิดว่าการจัดการหน่วยความจำทั้งหมดได้รับการจัดการโดยระบบปฏิบัติการ
67 vim  memory 

2
Linux จะเริ่มฆ่ากระบวนการของฉันโดยไม่ถามฉันหรือไม่ว่าหน่วยความจำสั้น
ฉันใช้เชลล์สคริปต์พร้อมคำสั่งเพื่อรันโปรแกรมที่ใช้หน่วยความจำมาก (2-5 GB) กลับไปด้านหลัง เมื่อฉันกลับไปตรวจสอบความคืบหน้าของสคริปต์ของฉันฉันรู้สึกประหลาดใจที่พบว่ากระบวนการบางอย่างของฉันเป็นKilledไปตามที่สถานีของฉันรายงานให้ฉัน มีหลายโปรแกรมที่ทำเสร็จแล้วอย่างต่อเนื่องก่อนที่โปรแกรมที่จะKilledเริ่มในภายหลังแต่โปรแกรมทั้งหมดหลังจากนั้นล้มเหลวในการแบ่งส่วนความผิดพลาด (ซึ่งอาจหรืออาจไม่ได้เกิดจากข้อผิดพลาดในรหัสของฉันอ่านต่อไป) ฉันดูประวัติการใช้งานของคลัสเตอร์เฉพาะที่ฉันใช้และเห็นว่ามีคนเริ่มใช้กระบวนการที่ใช้หน่วยความจำจำนวนมากในเวลาเดียวกันและในการทำเช่นนั้นทำให้หน่วยความจำจริงหมดลง (และอาจเป็นพื้นที่ swap) ในคลัสเตอร์ ดีที่สุดเท่าที่ฉันจะเข้าใจได้กระบวนการที่ใช้หน่วยความจำมากเหล่านี้เริ่มทำงานในเวลาเดียวกับที่ฉันเริ่มมีปัญหากับโปรแกรมของฉัน เป็นไปได้ไหมที่ลีนุกซ์ฆ่าโปรแกรมของฉันเมื่อหน่วยความจำไม่เพียงพอ? และเป็นไปได้ไหมที่การแบ่งส่วนที่ผิดพลาดที่ฉันได้รับในภายหลังนั้นเกิดจากการขาดหน่วยความจำที่พร้อมใช้งานเพื่อเรียกใช้โปรแกรมของฉัน (แทนที่จะเป็นจุดบกพร่องในรหัสของฉัน)?

9
พิจารณาการใช้งานหน่วยความจำอย่างถูกต้องใน Linux
ฉันสับสนเล็กน้อยในบางส่วนของผลลัพธ์ที่ผมเห็นจากPSและฟรี บนเซิร์ฟเวอร์ของฉันนี่คือผลลัพธ์ของ free -m [root@server ~]# free -m total used free shared buffers cached Mem: 2048 2033 14 0 73 1398 -/+ buffers/cache: 561 1486 Swap: 2047 11 2036 ความเข้าใจของฉันเกี่ยวกับวิธีที่ Linux จัดการหน่วยความจำคือมันจะเก็บการใช้งานดิสก์ใน RAM เพื่อให้การเข้าถึงแต่ละครั้งนั้นเร็วขึ้น ฉันเชื่อว่าสิ่งนี้ถูกระบุโดยคอลัมน์ "แคช" นอกจากนี้บัฟเฟอร์ต่าง ๆ จะถูกเก็บไว้ใน RAM ตามที่ระบุในคอลัมน์ "บัฟเฟอร์" ดังนั้นถ้าฉันเข้าใจถูกต้องการใช้ "จริง" ควรจะเป็นค่า "ใช้แล้ว" ของ "- / + …
63 linux  memory 

2
ต้องการคำอธิบายเกี่ยวกับขนาดชุดที่อยู่อาศัย / ขนาดเสมือน
ฉันพบว่าpidstatจะเป็นเครื่องมือที่ดีในการตรวจสอบกระบวนการ ฉันต้องการคำนวณการใช้หน่วยความจำเฉลี่ยของกระบวนการเฉพาะ นี่คือตัวอย่างผลลัพธ์: 02:34:36 PM PID minflt/s majflt/s VSZ RSS %MEM Command 02:34:37 PM 7276 2.00 0.00 349212 210176 7.14 scalpel (นี่เป็นส่วนหนึ่งของผลลัพธ์จากpidstat -r -p 7276) ฉันควรใช้ข้อมูล Resident Set Size (RSS) หรือ Virtual Size (VSZ) เพื่อคำนวณปริมาณการใช้หน่วยความจำเฉลี่ยหรือไม่ ฉันได้อ่านบางสิ่งเกี่ยวกับ Wikipedia และในกระดานสนทนา แต่ฉันไม่แน่ใจว่าจะเข้าใจความแตกต่างอย่างสมบูรณ์ นอกจากนี้ดูเหมือนว่าไม่มีใครเชื่อถือได้ ดังนั้นฉันจะตรวจสอบกระบวนการเพื่อให้ได้ใช้หน่วยความจำได้อย่างไร ความช่วยเหลือใด ๆ ในเรื่องนี้จะเป็นประโยชน์
61 linux  process  memory 

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