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

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

2
awk memory รั่ว?
ฐานบนนี้ผมใช้คำสั่ง < /dev/urandom hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | sox -traw -r44100 -b16 -e unsigned-integer - -tcoreaudio ฉันสังเกตเห็นว่าหน่วยความจำที่ awk ใช้เพิ่มขึ้นอย่างต่อเนื่องในขณะที่คำสั่งนี้กำลังทำงานตัวอย่างเช่นการใช้หน่วยความจำเกิน 500MB ภายในเวลาที่เล่นข้อมูลเสียงดิบ 75MB คำสั่งอื่น ๆ ทั้งหมดในไปป์ไลน์รักษาจำนวนหน่วยความจำให้คงที่ awk ใช้หน่วยความจำนี้เพื่ออะไรและมีทางเลือกอื่นที่การประมวลผลสตรีมแบบตั้งใจจะใช้หน่วยความจำเพียงจำนวนเท่าไร? …
11 awk  osx  memory 

2
ใครบ้างที่ใช้และได้รับประโยชน์จากเพจขนาดใหญ่ที่โปร่งใสหรือไม่
ฉันกำลังดิ้นรนกับปัญหาประสิทธิภาพการทำงานของหน้าเว็บขนาดใหญ่ที่มีความล่าช้าและพบว่าระบบฐานข้อมูลจำนวนมากแนะนำให้ปิดเครื่อง ฉันกำลังพูดถึง Oracle, Postgresql, MySQL, Cassandra, NuoDB, Redis, Hadoop และอีกมากมาย ตัวอย่าง: Peter Zaitsev (2014-07-23) ทำไม TokuDB เกลียด HugePages Percona Michele Casey (2013-09-17) ปัญหาประสิทธิภาพการทำงานที่มีขนาดใหญ่หน้าใส คำพยากรณ์ Adam Abrevaya และ Oleg Levin (2014-05-15) ลินุกซ์ขนาดใหญ่หน้าใส, JEMalloc และ NuoDB NuoDB DevCentre ดังนั้นฉันจึงสงสัยว่าเวิร์กโหลดชนิดใดที่ได้ประโยชน์จากคุณลักษณะนี้

1
ฉันจะตรวจสอบปริมาณการใช้หน่วยความจำต่อกระบวนการ / ต่อเธรดได้อย่างไร (แบ่งออกเป็นฮีปสแต็คข้อมูลรหัส)
ก่อนที่จะกระโดดและเขียนรหัสของตัวเองฉันต้องการตรวจสอบว่ามีซอฟต์แวร์ GNU / Linux ที่สามารถส่งออกบางสิ่งที่คล้ายกับQNXshowmemหรือไม่ สำหรับแต่ละเธรดของแต่ละกระบวนการที่กำลังทำงานอยู่ฉันต้องการดูปริมาณการใช้หน่วยความจำที่แบ่งออกเป็นหมวดหมู่ต่อไปนี้: Process listing (Total, Code, Data, Heap, Stack, Other) 319488 1024000 24587 167936 24576 0 4103 devc-con-hid (thread 2) 0 0 0 0 4096 0 4103 devc-con-hid (thread 2) 0 0 0 0 20480 0 4103 devc-con-hid (thread 1) 0 102400 8192 0 0 0 …
11 linux  memory  stack 

2
สำรองพื้นที่หน่วยความจำ RAM คงที่เป็นอุปกรณ์บล็อก (ด้วยที่อยู่ทางกายภาพเริ่มต้นที่กำหนด)
มีคำถามมากมายเกี่ยวกับ RAM Disks และฉันทราบ ramfs และ tmpfs ที่อนุญาตให้ใช้ ram เป็นอุปกรณ์บล็อก อย่างไรก็ตามสิ่งที่ฉันสนใจคือใช้ช่วงที่อยู่หน่วยความจำคงที่เป็นอุปกรณ์บล็อก สิ่งนี้เกิดจากความจำเป็นในการใช้ RAM ที่ไม่ลบเลือนซึ่งมีอยู่ในระบบของฉัน ฉันมี RAM 6GB และมี RAM ที่ไม่ลบเลือนถึง 8GB ผลลัพธ์ของ / proc / iomem ให้ฉันดังต่อไปนี้ 100000000-17fffffff: RAM ระบบ 180000000-37fffffff: สงวนไว้ ที่นี่พื้นที่จาก 6GB ถึง 14GB สอดคล้องกับภูมิภาค RAM แบบไม่ลบเลือนซึ่งทำเครื่องหมายด้วยแผนที่หน่วยความจำ BIOS E820 ตามที่สงวนไว้ ความตั้งใจหลักของฉันคือการใช้ NVRAM นี้เป็นอุปกรณ์บล็อกใน linux สิ่งนี้มีประโยชน์สำหรับการทดสอบระบบ NVRAM มีคำสั่ง linux …
11 linux  memory  ramdisk 

4
สคริปต์ทุบตีที่ฆ่ากระบวนการโดยอัตโนมัติเมื่อการใช้งาน CPU / หน่วยความจำสูงเกินไป
ฉันได้สร้างสคริปต์ที่ฆ่ากระบวนการหากใช้งาน CPU และ / หรือหน่วยความจำถึง 80% มันสร้างรายการของกระบวนการที่ถูกฆ่าเมื่อเกิดเหตุการณ์นี้ขึ้น ฉันจะปรับปรุงอะไรได้บ้าง while [ 1 ]; do echo echo checking for run-away process ... CPU_USAGE=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g") CPU_USAGE_THRESHOLD=800 PROCESS=$(ps aux r) TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | …

3
สูตรการพิจารณาจำนวนซ็อกเก็ตหน่วยความจำที่ใช้ภายใต้ Linux คืออะไร
ฉันกำลังวางแผนกำลังการผลิตและฉันสงสัยว่ามีสูตรที่ฉันสามารถใช้ในการทำนาย (จากมุมมองหน่วยความจำ) จำนวนการเชื่อมต่อ TCP ที่ฉันสามารถจัดการกับเซิร์ฟเวอร์ของฉัน ในขณะนี้ฉันแค่กังวลเกี่ยวกับความต้องการของหน่วยความจำเท่านั้น ตัวแปรบางตัวที่ฉันคิดว่าจะปรากฏในสูตรคือ: sysctl's net.ipv4.tcp_wmem(นาทีหรือค่าเริ่มต้น) sysctl's net.ipv4.tcp_rmem(นาทีหรือค่าเริ่มต้น) ขนาดของ sock, sock_common, proto และโครงสร้างข้อมูลต่อซ็อกเก็ตอื่น ๆ ฉันไม่แน่ใจว่ามีการจัดสรร tcp_wmem และ tcp_rmem มากเท่าใดและเมื่อจัดสรรหน่วยความจำแล้ว เมื่อถึงเวลาสร้างซ็อกเก็ต? ตามความต้องการ?
11 linux  memory  tcp 

1
เหตุใด Linux จึงแสดงทั้งหน่วยความจำมากขึ้นและน้อยลงกว่าที่ฉันได้ติดตั้งไว้
ฉันรู้เกี่ยวกับการแลกเปลี่ยน - คำถามนี้ไม่ได้เกี่ยวกับเรื่องนั้น ใน dmesg เคอร์เนล Linux (x86-64) บอกฉันเกี่ยวกับจำนวนหน่วยความจำที่ฉันมี: [ 0.000000] Memory: 3890880k/4915200k available (6073k kernel code, 861160k absent, 163160k reserved, 5015k data, 1596k init) cat /proc/meminfo บอกฉันว่าฉันมี MemTotal: 3910472 kB และจากการคำนวณของฉันฉันคิดว่าฉันควรมี RAM 4 * 1024 * 1024 = 4194304k ซึ่งเป็นวิธีที่เล็กกว่ารูปที่สองในบรรทัด dmesg ด้านบน! ตัวเลขเหล่านี้ต่างกันอย่างไร โดยวิธีการที่uname -aส่งออก: Linux pavilion 3.2.2-1.fc16.x86_64 #1 …

1
อะไรคือความแตกต่างของหน่วยความจำที่ใช้ร่วมกันระหว่างระบบยูนิกซ์รุ่นแรกและรุ่นใหม่?
กระบวนการสามารถแชร์หน่วยความจำใน Unix รุ่นแรกได้อย่างไร สิ่งนี้เปรียบเทียบกับการใช้งานที่ทันสมัยของหน่วยความจำที่ใช้ร่วมกันได้อย่างไร

1
หน่วยความจำแบบ "แคช" ปราศจากความจริงหรือไม่
เมื่อทำงานcat /proc/meminfoคุณจะได้รับ 3 ค่าเหล่านี้ที่ด้านบน: MemTotal: 6291456 kB MemFree: 4038976 kB Cached: 1477948 kB เท่าที่ฉันรู้ค่า "แคช" คือดิสก์แคชที่ทำโดยระบบ Linux ที่จะถูกปล่อยทันทีหากแอปพลิเคชันใด ๆ ที่ต้องการ RAM เพิ่มขึ้นดังนั้น Linux จะไม่หมดหน่วยความจำจนกว่า MemFree และ Cache จะเป็นศูนย์ น่าเสียดายที่ "MemAvailable" ไม่มีการรายงานโดย / proc / meminfo อาจเป็นเพราะมันทำงานในเซิร์ฟเวอร์เสมือน (เวอร์ชั่นเคอร์เนลคือ 4.4) ดังนั้นสำหรับการใช้งานจริง RAM สำหรับแอปพลิเคชันนั้นเป็น MemFree มุมมองนั้นถูกต้องหรือไม่
11 linux  memory  cache  meminfo 

2
วิธีการวัดบน Linux หน่วยความจำสูงสุดของแอปพลิเคชันหลังจากสิ้นสุด
ฉันจะวัดหน่วยความจำสูงสุดของแอปพลิเคชันที่ทำงานบน Linux ได้อย่างไร ฉันรันแอพนี้ในแบทช์ดังนั้นฉันจึงไม่สามารถใช้ RSS ได้เพราะมันรายงานหน่วยความจำปัจจุบัน ฉันต้องการหน่วยความจำสูงสุดที่แอปพลิเคชั่นเคยรายงานไว้ในตอนท้าย VmPeak ไม่ใช่วิธีการแก้ปัญหาอย่างใดอย่างหนึ่งเนื่องจากมันรายงานหน่วยความจำที่จัดสรรและยังไม่ได้คำนวณจาก Ram จริง แต่ยังมาจากฮาร์ดดิสก์
11 linux  memory 

2
การจัดเรียงข้อมูล RAM / OOM ล้มเหลว
คำถามนี้มีความยาวพอสมควรดังนั้นฉันจะถามคำถามที่อยู่ด้านบนและจากนั้นผ่านวิธีการของฉันในการตอบคำถาม: ไม่ (ใช้ Busybox) rm ไม่ทำงานเนื่องจากมี RAM ต่อเนื่องไม่เพียงพอหรือไม่ ถ้าเป็นเช่นนั้นจะมีวิธีที่มีน้ำหนักเบาในการจัดเรียงข้อมูล DMA โดยไม่ต้องรีสตาร์ทระบบหรือไม่? ถ้าไม่เกิดอะไรขึ้น ฉันจะป้องกันไม่ให้เกิดขึ้นในอนาคตได้อย่างไร หลังจากที่ระบบทดสอบของเราทำงานค่อนข้างหนาแน่นในช่วงสองสามวันที่ผ่านมา - ฉันโทรเข้าระบบและตรวจสอบผลการทดสอบ เมื่อฉันลบข้อมูลบางส่วนระบบจะส่งคืนบรรทัดคำสั่ง (ราวกับว่าคำสั่งทำงานอย่างถูกต้อง) เมื่อฉันมาตรวจสอบไดเรกทอรีเพื่อดูผลลัพธ์อีกชุดฉันเห็นไฟล์นั้นยังคงมีอยู่ (โดยใช้ ls) หลังจากนี้ฉันสังเกตเห็นคำสั่งเชลล์ของฉันมากขึ้นเรื่อย ๆ ไม่ได้ทำงานตามที่คาดไว้ ฉันจะเริ่มต้นด้วยการส่งออกจากdmesgหลังจาก rm ล้มเหลวในการดำเนินการอย่างถูกต้อง: การจัดสรรความยาว 61440 จากกระบวนการ 6821 (rm) ล้มเหลว DMA ต่อซีพียู: CPU 0: hi: 0, btch: 1 usd: 0 Active_anon: 0 active_file: 1 inactive_anon: 0 inactive_file: …
11 linux  memory  embedded 


2
วิธีแก้ปัญหาความจำนี้อย่างสง่างาม?
ฉันมีแล็ปท็อปมาตรฐาน Linux (ทดสอบเดเบียน) ที่มีพาร์ทิชันสลับ ฉันทำการทดลองกับมันมากมาย บางส่วนของพวกเขากำลังหิวมากหน่วยความจำและวิธีการทำงานของ Linux โดยค่าเริ่มต้นเป็นปัญหาสำหรับฉัน ... ขอยกตัวอย่างโง่ ๆ : นั่งหน้าแล็ปท็อป เปิดเทอร์มินัล พิมพ์pythonจากนั้นa = [0]*100000000 ตอนนี้มีโอกาสสูงที่คุณจะมี RAM ไม่เพียงพอที่จะจัดการกับรายการใหญ่ Linux จะเติม RAM แล้วสลับและอีกสองสามนาทีต่อมา OOM killer จะถูกทริกเกอร์และฆ่าบริการแบบสุ่ม (เกือบ) และหวังว่าถ้าคุณกด Ctrl + C ในเวลาที่เหมาะสมpythonและถ้าเทอร์มินัล ยังคงมีสมาธิคอมพิวเตอร์จะตอบสนองอีกครั้ง ฉันต้องการบังคับใช้ขีด จำกัด หน่วยความจำบางส่วนเพื่อหลีกเลี่ยงการสลับที่ไม่พึงประสงค์และปฏิเสธสิทธิ์ในการจัดสรรหน่วยความจำมากกว่าที่ฉันมี (ใน RAM) หากความต้องการหน่วยความจำต่ำกว่าขีด จำกัด หรือรูตที่ถามแล้วให้ฆ่ากระบวนการหิวหน่วยความจำส่วนใหญ่ของผู้ใช้ใด ๆ ยกเว้นรูท ulimit -Sv [mem] ฉันได้ยินที่ด้านหลัง! โฮ้โฮ! "ใช้งานcgroupsผ่านcgexec!" …
10 memory  limit  cgroups  ulimit 

2
ทำไมฉันถึงไม่สามารถ“ swapoff” เมื่อมีหน่วยความจำมากมาย
ฉันเพิ่งสังเกตเห็นว่าแม้ว่ามีหน่วยความจำมากมายในระบบของฉัน: # free -m total used free shared buffers cached Mem: 15965 9680 6284 35 1754 2560 -/+ buffers/cache: 5365 10599 Swap: 2047 258 1789 ฉันไม่สามารถswapoff -aใช้ swapfile 2G ของฉันได้ -rw-r----- 1 root root 2.0G Feb 9 21:34 /2GB.swap ฉันได้เปลี่ยนพารามิเตอร์เคอร์เนลต่อไปนี้ผ่านทางsysctlแต่นั่นควรเป็นสาเหตุ: vm.swappiness = 5 vm.vfs_cache_pressure = 200 เหตุผลใด ๆ สำหรับ: # …
10 linux  memory  swap 

1
การใช้หน่วยความจำ 4GB คืออะไร (ไม่ใช่แคชไม่ใช่กระบวนการไม่ใช่แผ่นไม่ใช่ shm)
เรามีเซิร์ฟเวอร์ EC2 บางตัวที่มีหน่วยความจำรั่วในช่วงวันหรือหลายสัปดาห์ ในที่สุดจะมีหน่วยความจำจำนวนมากที่ใช้ (ตามเครื่องมือเช่นfreeและhtop) และถ้าเราไม่รีสตาร์ทเซิร์ฟเวอร์กระบวนการของเราก็เริ่มได้รับ OOM-kill เซิร์ฟเวอร์หนึ่งตัวมี RAM 15GB นี่คือผลลัพธ์ของfree -m: total used free shared buffers cached Mem: 15039 3921 11118 0 0 7 -/+ buffers/cache: 3913 11126 Swap: 0 0 0 เซิร์ฟเวอร์นี้ไม่ได้ทำงาน ฉันได้ฆ่ากระบวนการส่วนใหญ่ของผู้ใช้ ไม่มีกระบวนการใน htop กำลังแสดง> 100k VIRT ฉันเพิ่งวิ่งecho 3 > /proc/sys/vm/drop_cachesไปไม่มีผลกระทบ (นั่นเป็นเหตุผลbuffersและcachedมีขนาดเล็กมาก) นอกจากนี้: แหย่ไปมา/proc/slabinfoและslabtopไม่แสดงอะไรที่มีแนวโน้ม ไม่มีอะไรใน / run …
10 memory  meminfo 

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