หาก RAM ราคาถูกทำไมเราไม่โหลดทุกอย่างไปที่ RAM แล้วรันจากตรงนั้น


132

แรมราคาถูกและเร็วกว่า SSD มาก มันระเหยง่าย เหตุใดคอมพิวเตอร์จึงไม่มี RAM จำนวนมากและเมื่อเปิดเครื่องโหลดทุกสิ่งลงใน RAM จากฮาร์ดไดรฟ์ / SSD และเรียกใช้ทุกอย่างจากที่นั่นสมมติว่าไม่มีความจำเป็นที่จะต้องคงอยู่นอกหน่วยความจำจริง ๆ คอมพิวเตอร์จะไม่เร็วขึ้นหรือไม่

แน่นอนระบบปฏิบัติการปัจจุบันอาจไม่รองรับสิ่งนี้เลย แต่มีเหตุผลใดบ้างที่ RAM ไม่ได้ใช้ในลักษณะนี้?


109
คุณถือว่า RAM มีราคาถูก แรม 1TB มีราคาเท่าใด
Alan Shutko

39
สิ่งที่คุณอธิบายเรียกว่า RAMDisk และผู้คนทำสิ่งที่คุณอธิบายไปแล้ว ฉันโหลดโปรแกรมส่วนใหญ่ในหน่วยความจำโดยใช้ RAMDisk คุณไม่จำเป็นต้องใช้ฮาร์ดแวร์พิเศษที่คุณสามารถใช้หน่วยความจำระบบและซอฟต์แวร์เพื่อทำสิ่งนี้
Ramhound

16
เราดำเนินการภายใต้กรอบครอบคลุมเท่าที่ระบบปฏิบัติการที่กำหนดสนับสนุน Windows ใช้ RAM "ที่ไม่ได้ใช้" สำหรับ "แคชดิสก์" และฉันคิดว่า Linux หลายรุ่นก็ทำเช่นกัน แต่มีดิสก์มากเกินไปที่จะใส่ลงใน RAM ได้
Daniel R Hicks

19
"ถูก" เป็นคำที่เกี่ยวข้อง หน่วยความจำแต่ละบิตมีราคาถูกกว่าเมื่อสองสามปีก่อน แต่ราคาแพงกว่าพื้นที่เก็บข้อมูลในฮาร์ดไดรฟ์ และความคืบหน้าในเดือนมีนาคมจะทำให้มั่นใจได้ว่าโปรแกรมจะเติม RAM ที่มีอยู่ให้เต็มเสมอไม่ว่าจะมีจำนวนเท่าใดก็ตาม หากคอมพิวเตอร์ของทุกคนมี RAM พร้อมใช้งานมากขึ้นนักพัฒนาจะใส่ข้อมูลเพิ่มเติมลงในโปรแกรมของพวกเขา
jhocking

15
Google โหลดอินเทอร์เน็ตไปที่ RAM
Ari

คำตอบ:


177

มีเหตุผลบางอย่างที่ RAM ไม่ได้ถูกใช้:

  1. เดสก์ท็อปทั่วไป (DDR3) RAM ราคาถูก แต่ก็ไม่ถูกเท่าไหร่ โดยเฉพาะถ้าคุณต้องการซื้อ DIMM ที่ค่อนข้างใหญ่
  2. RAM สูญเสียเนื้อหาเมื่อปิดเครื่อง ดังนั้นคุณจะต้องโหลดเนื้อหาในเวลาบูต สมมติว่าคุณใช้ดิสก์ RAM ขนาด SSD ที่ 100GB ซึ่งหมายถึงการหน่วงเวลาประมาณสองนาทีในขณะที่ 100GB จะถูกคัดลอกจากดิสก์
  3. RAM ใช้พลังงานมากขึ้น (พูด 2-3 วัตต์ต่อ DIMM ประมาณเดียวกับ SSD ที่ไม่ได้ใช้งาน)
  4. ในการใช้ RAM จำนวนมากมาเธอร์บอร์ดของคุณจะต้องใช้ซ็อกเก็ต DIMM จำนวนมากและต้องติดตามด้วย โดยปกติจะ จำกัด ไว้ที่หกหรือน้อยกว่า (พื้นที่ว่างบนบอร์ดมากขึ้นหมายถึงค่าใช้จ่ายที่มากขึ้นทำให้ราคาสูงขึ้น)
  5. สุดท้ายคุณจะต้องใช้ RAM เพื่อรันโปรแกรมของคุณดังนั้นคุณจะต้องใช้ขนาด RAM ปกติเพื่อทำงาน (เช่น 18GiB และเพียงพอที่จะเก็บข้อมูลที่คุณคาดว่าจะใช้)

ต้องบอกว่า: ใช่มีดิสก์ RAM อยู่ แม้จะเป็นบอร์ด PCI ที่มีซ็อกเก็ต DIMMและเป็นอุปกรณ์สำหรับ IOps ที่สูงมาก (ส่วนใหญ่ใช้ในฐานข้อมูลองค์กรก่อนที่ SSD จะกลายเป็นตัวเลือก) สิ่งเหล่านี้ไม่ถูกเลย

ต่อไปนี้เป็นสองตัวอย่างของการ์ดดิสก์ RAM ต่ำสุดที่ทำให้เป็นจริง:

โปรดทราบว่ามีวิธีการทำเช่นนี้มากกว่าวิธีเพียงสร้างดิสก์ RAMในหน่วยความจำงานทั่วไป

คุณสามารถ:

  1. ใช้ฟิสิคัลไดรฟ์โดยเฉพาะสำหรับมันด้วยหน่วยความจำ (ไดนามิก) ไม่ว่าจะเป็นอุปกรณ์หรือด้วยอินเตอร์เฟส SAS, SATA หรือ PCI [e]
  2. คุณสามารถทำเช่นเดียวกันกับที่เก็บแบตเตอรี่สำรอง (ไม่จำเป็นต้องคัดลอกข้อมูลเริ่มต้นลงไปเพราะมันจะเก็บเนื้อหาไว้ตราบใดที่พลังงานสำรองยังคงใช้ได้)
  3. คุณสามารถใช้ RAM แบบคงที่มากกว่า DRAMS (ง่ายกว่าและราคาแพงกว่า)
  4. คุณสามารถใช้แฟลชหรือที่เก็บข้อมูลถาวรอื่นเพื่อเก็บข้อมูลทั้งหมด (คำเตือน: โดยปกติแล้วแฟลชจะมีจำนวนรอบการเขียนที่ จำกัด ) หากคุณใช้แฟลชเป็นที่เก็บข้อมูลเท่านั้นคุณจะย้ายไปยัง SSD ถ้าคุณเก็บทุกอย่างไว้ใน RAM แบบไดนามิกและบันทึกลงในแฟลชแบ็คอัพเมื่อพลังงานหมดคุณก็กลับไปที่อุปกรณ์

ฉันแน่ใจว่ามีวิธีอธิบายเพิ่มเติมได้จาก Amiga RAD: รีเซ็ตดิสก์ RAM ที่รอดชีวิตมาเป็น IOPS, ปรับระดับการสวมใส่และ Gd รู้ว่าต้องทำอะไร อย่างไรก็ตามฉันจะตัดรายการนี้ให้สั้นและเพิ่มอีกหนึ่งรายการ:

ราคา DDR3 (DRAM ปัจจุบัน) และราคา SSD:

  • DDR3: € 10 ต่อ GiB หรือ 10,000 ยูโรต่อ TiB
  • SSD: มีนัยสำคัญน้อยกว่า (ประมาณ 1 / 4th ถึง 1 / 10th)

12
+1 สำหรับการกดปุ่มจุดสำคัญสองจุด: HD ของยังคงราคาถูกกว่า RAM และ RAM ก็ระเหยได้ RAM เป็นโต๊ะทำงานของคุณและ HD ของคุณเป็นคลังสินค้า Nuf sed
แช้ดแฮร์ริสัน

1
@Hennes - ไม่แนะนำให้โหลดไดรฟ์ทั้งหมดลงในหน่วยความจำด้วยซอฟต์แวร์ RAMDisk solution คุณสามารถโหลด Photoshop จากไดรฟ์เชิงกลลงใน RAMDisk โดยใช้จุดเชื่อมต่อและประสิทธิภาพจะดีกว่าหรือดีกว่าการติดตั้ง SSD
Ramhound

29
+1 สำหรับ "RAM ราคาถูก แต่ไม่ใช่ราคาถูก" การค้นหาอย่างรวดเร็วแสดงให้เห็นว่าไดรฟ์ SSD กำลังขายอยู่ระหว่าง 75 เซ็นต์ไปจนถึงราคาที่สูงขึ้นอยู่กับความจุและผู้ผลิต โมดูล DDR3 RAM ขึ้นอยู่กับความจุขายอยู่ระหว่าง $ 7-10 ต่อ GB ดังนั้นอัตราส่วนของ RAM ต่อ SSD จึงมีราคาสูงถึง 15: 1
KeithS

2
RAM loses its contents when powered off.เป็นที่แน่นอนเท่านั้น RAM ระเหยไม่ แต่แรมไม่ระเหยช่วยให้ทุกอย่างแม้ในขณะที่ปิดเป็นเช่นชิปแฟลช ในแง่นั้น SSD นั้นไม่แตกต่างจาก RAM แต่เป็นชนิดย่อย
ซาอูล

1
ฉันไม่เห็นด้วย. เซลล์แฟลชบน SSD อาจไม่ต้องการพลังงาน แต่ตัวควบคุมและอุปกรณ์อิเล็กทรอนิกส์อื่น ๆ บน SSD ดึงพลังงาน มีพลังงานไม่มากนัก แต่จะเหมือนกับพลังงานที่ใช้โดย DIMM สมัยใหม่ (1-3 วัตต์)
Hennes

71

ระบบปฏิบัติการทำสิ่งนี้แล้วโดยใช้แคชของหน้าเว็บ :

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

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

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

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

นอกจากนี้/tmpมักจะเป็น ramdisk บน Linux distros เพราะมันก็โอเคถ้าข้อมูลนั้นหายไป ยังคงมีการถกเถียงกันอยู่ว่าเป็นความคิดที่ดีเพราะถ้าหากมีการเขียนข้อมูลมากเกินไป/tmpคุณจะมีหน่วยความจำไม่เพียงพอ


5
คำตอบที่ดี ระบบปฏิบัติการยังมีคุณสมบัติเช่น Superfetch ซึ่งจะโหลดข้อมูลที่ต้องการจากดิสก์เข้าสู่ RAM ในเวลาบูต
Matthew Lock

คำตอบที่ดี. คนอันดับต้น ๆ ทั้งหมดโจมตี (พยายามทำให้เป็นโมฆะ) คำถามแทนการตอบคำถามจริงๆ
vsync

44

อลัน Shutko ชี้ให้เห็นในความเห็นของเขาเกี่ยวกับคำถาม RAM ไม่ถูกจริง

นี่คือจุดข้อมูลบางส่วน เมื่อฉันค้นหาใน Google สำหรับ RAM 4 GB, 64 GB SSD และ 1 TB HDD (ฮาร์ดไดรฟ์เชิงกล) นี่คือค่าใช้จ่ายที่ฉันเห็น (นี่คือสำหรับ 25 ส.ค. 2013):

โว้ว! HDD มีราคาถูกกว่าแรม 100 เท่า! SSD มีราคาถูกกว่า RAM 8 เท่า

(บวกกับที่ได้อธิบายไว้ในคำตอบอื่น ๆ RAM มีความผันผวนโดยเนื้อแท้และดังนั้นคุณต้องใช้รูปแบบอื่นของที่เก็บข้อมูลถาวร)


2
RAM มีขนาดของคำสั่งเร็วกว่า SSD หลายตัว (ไม่มีปัญหาการสึกหรอของการเขียน) ซึ่งเป็นขนาดของคำสั่งที่เร็วกว่าการหมุนเป็นสนิมและ GLASS และคุณสามารถทำได้ด้วยดิสก์ขนาด 1TB ในราคา $ 80 แต่ลองค้นหาที่เก็บข้อมูลบนแผ่นเสียง 15k รอบต่อนาทีด้วยการเชื่อมต่อ SCSI หรือไฟเบอร์แชนเนล คุณกำลังดู 4 x 250Gb @ ~ $ 250 บวกกับค่าใช้จ่ายของคอนโทรลเลอร์ BBU (ประมาณ $ 500) ทำให้ราคาใกล้เคียงกับ SSD
symcbean

1
@symcbean - นั่นเป็น nitpicking ค่อนข้าง; โปรดจำไว้ว่าการใช้ RAM ในขนาดใหญ่ (ตามที่คุณต้องการเพื่อเปลี่ยนดิสก์หรือ SSD) มีค่าใช้จ่ายมากกว่า $ 25 / GB
Russell Borogove

3
@symcbean การซื้อ SSD ที่มีลักษณะองค์กรคล้ายกันจะมีราคาสูงกว่า $ 1,000
mikebabcock

มันน่าสนใจมากที่จะเห็นคำตอบนี้ได้รับการตรวจสอบทุกสองสามเดือนและแก้ไขราคาและดูว่าราคาปรับตัวลดลงอย่างต่อเนื่อง
Ofer Zelig

@OferZelig "ดูว่าราคาลดลงอย่างต่อเนื่อง"คุณหมายถึงยกเว้นเมื่อพวกเขาไม่ ?
CVn

9

ฉันดำเนินการอ่าน / เขียนแบบทันทีเพื่อสร้างเนื้อหาในดิสก์ RAM บนเครื่องของฉัน ฉันยังเก็บโฟลเดอร์บันทึกประจำวัน MongoDB ของฉันที่นั่นเช่นเดียวกับคอมไพเลอร์และตัวแปลภาษาไพ ธ อนและไลบรารี่มาตรฐานของฉัน ดิสก์นี้ถูกบันทึกเมื่อปิดและเรียกคืนเมื่อเริ่มต้น ดิสก์ RAM ที่สองที่ฉันใช้คือ 64 เมกะไบต์และโฟลเดอร์แคชของเบราว์เซอร์อินเทอร์เน็ตทั้งหมดชี้ไปที่นั่น อันนั้นจะหายไปเมื่อปิดตัวลงและฟลัชตัวเองเมื่อมันเต็ม

ใช้เครื่องมือที่เหมาะสมสำหรับงานที่ฉันคิดว่าจะเป็นคำตอบที่ฉันให้คุณ ฉันกำลังสร้างข้อมูล 30-1000x เร็วขึ้นโดยใช้ RAM disk มากกว่า Western Digital 7200rpm ของฉัน

นี่คือโปรแกรมที่ฉันใช้: http://www.romexsoftware.com/en-us/primo-ramdisk/

... และเมื่อ 32 กรัมกิ๊กของรามน้อยกว่า $ 200 ฉันไม่เห็นว่าทำไมสิ่งนี้จึงไม่ธรรมดา

ดิสก์ 8 gig RAMHDD III III รายวัน


4
คุณรู้ไหมว่าระบบปฏิบัติการแคชสิ่งต่าง ๆ สำหรับคุณแล้วใช่ไหม
Potatoswatter

"เมื่อ 32gigs of Ram น้อยกว่า $ 200" 32 GB สำหรับ HDD 1 TB เริ่มต้นที่ประมาณ $ 3 ให้หรือรับ ผู้บริโภค 1 TB ไดรฟ์มีราคาต่ำกว่า $ 100 ในวันนี้และแม้กระทั่งไดรฟ์ระดับองค์กรก็สามารถซื้อได้ในราคาต่อกิกะไบต์ที่คล้ายคลึงกัน (Amazon ต้องการ $ 408 ในปัจจุบันสำหรับ Seagate 4 TB ST4000NM0043 ในปัจจุบัน รอบ)
CVn

1
@Potatoswatter ใช่มันทำ แต่จะไม่แคช 10,000 ไฟล์ที่สร้างขึ้นใหม่ ดังนั้นฉันอย่างชัดเจน "แคช" พวกเขาใน RAM ดิสก์ของฉัน
blakev

@ MichaelKjörlingเราไม่ได้พยายามเก็บ 1 TB ไว้ใน RAM นั่นไร้สาระ เป็นจริงและเลือกโฟลเดอร์สำคัญสองสามอย่างที่คุณต้องการมีใน RAM และคุณสามารถเร่งความเร็วการดำเนินการบางอย่างในเวิร์กโฟลว์ของคุณได้อย่างชัดเจน (คำสั่งของขนาด) ดูภาพของฉันด้านบน
blakev

1
"ทุกอย่าง" เป็นญาติ บนเครื่องของฉันมันโหลด "ทุกอย่าง" จากอิมเมจฮาร์ดไดรฟ์ขนาด 8 กิ๊ก ไบต์สำหรับไบต์ทั้ง 8 กิ๊กถูกโคลนทุกครั้ง เพื่อประโยชน์ของคำถามหากคุณกำลังมองหาวิธีการแก้ปัญหาที่จะทำจริง ๆคุณจะอยู่ใน "เป็นไปได้" หรือระเบิดออกจากสัดส่วนเพื่อให้พอดีกับคำตอบประเภท "ที่เป็นไปไม่ได้"
blakev

5

ใช่นี่เป็นหลักฐานของฐานข้อมูลในหน่วยความจำมากมายที่กำลังจะวางตลาด ตัวอย่างหนึ่งคือ SAP HANA แนวคิดคือ RAM มีราคาถูกและจากจุดประสิทธิภาพของการอ่าน / เขียนบน RAM นั้นเร็วกว่าการทำงานของดิสก์ถึง 1,000 เท่า ดังนั้นข้อมูลส่วนใหญ่จะถูกเก็บไว้ใน RAM และจากนั้นคุณกำหนดกลยุทธ์อายุข้อมูลโดยใช้ข้อมูลเก่าที่ถูกรีไซเคิลกลับไปที่ห้องเย็น (เช่นดิสก์)


4

คำอธิบายสั้น ๆ :

ครั้งแรกที่มีการใช้งานแอปพลิเคชันจะถูกถ่ายโอนจากฮาร์ดดิสก์หรือเครือข่ายไปยัง RAM ดังนั้นไม่ต้องกังวลคุณทำไปแล้ว

แต่โดยปกติจะมีไฟล์แอปพลิเคชัน / กระบวนการไม่เพียงไฟล์เดียวและมีการดำเนินการ I / O บางส่วนที่กำหนดเป้าหมายไปยังฮาร์ดดิสก์หรือเครือข่าย (ไฟล์อื่นของแอปพลิเคชันหรือการดำเนินการ I / O อื่น ๆ ด้วยระบบ ฯลฯ ) ใบสมัคร สิ่งเหล่านี้อาจถูกนำไปยัง RAM-disk แต่คุณควรพิจารณาว่า RAM-disk นั้นถูกปิดการใช้งานและควรจะถูกเติมอีกครั้งเมื่อเริ่มต้นใช้งาน

และ RAM ก็ไม่ถูกตามที่นำเสนอในคำถาม คุณควรนับไม่เพียง แต่ค่าใช้จ่ายของแรมเท่านั้น แต่ยังรวมถึงค่าใช้จ่ายของ RAM ที่ใช้งานได้ซึ่งรวมถึงซ็อกเก็ตบนเมนบอร์ดของคุณด้วย (ซึ่งมีจำนวน จำกัด / หายากและมีค่ามากกว่า) และค่าใช้จ่ายข้อมูลสูญหาย

ตัวอย่างเช่นคอมพิวเตอร์ที่มี HDD ขนาด 1TB สามารถซื้อได้ในราคาถูกและเป็นเรื่องเกี่ยวกับการคำนวณที่บ้านคอมพิวเตอร์ที่มี RAM ขนาด 1TB อยู่ในช่วงของซูเปอร์คอมพิวเตอร์ (แต่ Intel กำลังทำงานกับสิ่งที่อยู่ในช่วงกลาง: http://vr-zone.com/articles/more-on-xeon-e5-terabyte-of-ram-even-at-midrange-/14366.html )


4

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

เมื่อคุณปรับแต่งประสิทธิภาพด้วย Oracle คุณกำลังมองหาการแก้ไขปัญหาคอขวด แม้ว่าพวกเราส่วนใหญ่ไม่ได้พูด แต่ก็มีพื้นฐานมาจากทฤษฎีข้อ จำกัด : https://en.wikipedia.org/wiki/Theory_of_constraints

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

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

อย่างไรก็ตามเมื่อคุณเรียกใช้แบบสอบถาม Oracle จะทำการสลักในโซ่บัฟเฟอร์ที่คุณค้นหาในเวลานั้น LATCH นี้ (หมายเหตุ: นี่ไม่ใช่ล็อค Google "latch" หากคุณไม่ทราบความแตกต่าง) บล็อกการดำเนินการอื่น ๆ ทั้งหมดในสายโซ่นั้นตลอดระยะเวลาที่คุณอ่าน ดังนั้นจึงบล็อกการอ่านและเขียน (ซึ่งต่างจากการล็อกที่อ้างสิทธิ์โดย Oracle ไม่ได้บล็อกการอ่าน)

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

เมื่อคุณเพิ่มขนาดของหน่วยความจำคุณจะเพิ่มขนาดของแต่ละรายการที่เชื่อมโยง เพิ่มเวลาในการอ่านรายการ แบบสอบถามที่ไม่ดีหรือแบบสอบถามที่ซับซ้อนสามารถทำหลายหมื่นหรือแม้กระทั่งหลายล้านอ่านรายการเชื่อมโยง การอ่านแต่ละครั้งรวดเร็ว แต่จำนวนของการอ่านจะนำไปสู่การยึดสลักและสิ่งเหล่านี้จะบล็อกเซสชันอื่น ๆ Oracle เรียกสิ่งนี้ว่า 'logical IO' (หรือ buffer รับหรือสิ่งอื่น ๆ ศัพท์แสงนี้เฉพาะกับ Oracle และอาจหมายถึงสิ่งอื่นในส่วนอื่น ๆ ของ IT)

ดังนั้นหากรายการยาวและคุณมี SQL ไม่ดีจริง ๆ คำสั่ง SQL จะถือ latches ได้นานขึ้น การเพิ่มหน่วยความจำในบางครั้งอาจลดประสิทธิภาพลง ส่วนใหญ่แล้วสิ่งนี้จะไม่เกิดขึ้น ผู้คนจะใช้เงินเป็นจำนวนมากและไม่เห็นประโยชน์ ตามที่กล่าวไว้มีหลายครั้งที่คุณต้องการหน่วยความจำเพิ่มเติมในบัฟเฟอร์แคช แต่คุณต้องระบุคอขวดอย่างถูกต้องเพื่อให้ทราบว่าสิ่งนี้เหมาะสมหรือไม่ ฉันไม่สามารถอภิปรายวิธีวิเคราะห์สิ่งนี้ในโพสต์นี้ ดูฟอรัม DBA บางคนพูดถึงที่นั่น มันค่อนข้างซับซ้อน

ใครบ้างมีตัวอย่างที่เฉพาะเจาะจงกับซอฟต์แวร์ชิ้นอื่น ๆ ที่สามารถเกิดขึ้นได้? มีหนังสือธุรกิจที่ยอดเยี่ยมที่เรียกว่า 'เป้าหมาย' ซึ่งกล่าวถึงการบรรเทาข้อ จำกัด ในโรงงาน กระบวนการนี้คล้ายกับสิ่งที่ Oracle DBAs ทำเมื่อประเมินปัญหาด้านประสิทธิภาพ มันมักจะอ่านมาตรฐานในโปรแกรม MBA มันมีค่ามากที่จะอ่านสำหรับอาชีพไอที

https://en.wikipedia.org/wiki/Eliyahu_M._Goldratt


ไม่ต้องสงสัยเลยว่าคำถามนี้มีความเกี่ยวข้อง แต่น่าสนใจเป็นอย่างยิ่ง
jb

มันเป็นเหตุผลที่จะไม่เพิ่มแรม มันเจาะจงและแคบ แต่ฉันคิดว่ามันใช้ได้
Bob

น่าสนใจมาก. มันนำมุมมองอื่นไปสู่การอภิปรายโดยรวม
Lorenz Lo Sauer

3

RAM อาจมีราคาถูก แต่ไม่ถูกเท่าที่เก็บข้อมูลแบบดั้งเดิม

ฉันมีฮาร์ดไดรฟ์ 3TB ($ 99): อ้างจาก HDD

และคุณจะต้อง 48 ของเหล่านี้สำหรับ 3TB ที่ ($ 719) ในแต่ละ: อ้าง RAM

นั่นจะรวม $ 34,512 เทียบกับ $ 99 ไม่ต้องพูดถึงราคาของฮาร์ดแวร์ที่ต้องใช้ในการรัน RAM ขนาด 3TB


คำตอบนั้นไม่เกี่ยวข้องกับคำถาม
Blueberry - Vignesh4303

1
ฉันคิดว่าท้ายที่สุดเขาพยายามที่จะพูดว่า "RAM ไม่ถูก"
jaczjill

นอกจากนี้คุณไม่สามารถเชื่อมต่อชุด 48 ช่องสัญญาณ 8 ช่องเหล่านั้นกับอุปกรณ์ใด ๆ ที่ฉันรู้จักได้ แม้ว่าจะมีระบบที่ยอมรับ 16 (หรือมากกว่า) 64 GB REG ECC dimms ลงในเซิร์ฟเวอร์เดียว อย่างไรก็ตามสิ่งเหล่านี้ไม่ถูกเลย
drescherjm

2

มันทำจริงในบางสถานการณ์ หากคุณมีระบบปฏิบัติการ / แอปขนาดเล็กพอคุณสามารถเรียกใช้ในแรมทั้งหมด แน่นอนว่ามันมีข้อเสียทั้งหมดที่คำตอบที่ยอมรับมี แต่มันเป็นไปได้และจะเกิดขึ้น

ดู Puppy Linux ซึ่งเป็น Linux ที่ได้รับความนิยม มันทำงานอย่างไรพูดถึงหน้าเกี่ยวกับการทำงานจาก RAM: http://puppylinux.org/wikka/howPuppyWorks


และแน่นอนในสภาพแวดล้อมแบบคลัสเตอร์คุณสามารถเก็บแอปสแต็คไว้ในระบบไฟล์แบบกระจาย / เครือข่ายให้บริการระบบปฏิบัติการพื้นฐานผ่าน PXE หรือคล้ายกันและเรียกใช้โหนดที่ไม่มีดิสก์หากคุณต้องการ
Aesin

2

ฉันคิดว่าคำตอบบางส่วนสามารถตอบได้ดังนี้:

สถานที่ตั้ง:

  • เฉพาะ RAM ประเภทนั้นเท่านั้นที่ถูกผลิตและจำหน่ายในปริมาณมาก
  • ผู้ผลิต RAM ต้องการขายผลิตภัณฑ์ของพวกเขา
  • ราคาต่ำต้องการขายปริมาณมากเพื่อทำกำไร
  • ฐานผู้ใช้ขนาดใหญ่ใช้เทคโนโลยีหน่วยความจำที่สร้างไว้แล้ว
  • เทคโนโลยีหน่วยความจำใหม่ใช้เวลาหลายปีกว่าจะได้รับการยอมรับอย่างกว้างขวาง
  • สล็อตหน่วยความจำมีข้อ จำกัด อย่างมากในอุปกรณ์ขนาดเล็กกว่าเดิมของฐานผู้ใช้ที่กล่าวมา
  • เทคโนโลยีมือถือกำลังเพิ่มขึ้น
  • อย่างน้อย 0.1% จาก 1Bil ผู้ใช้พีซีอาจเลือกใช้ RAM ขนาด 128GB ขึ้นไป (คาดเดา)
  • การอัปเดตเทคโนโลยีซึ่งเป็นที่ต้องการสูงจะทำกำไรได้สูงกว่าเทคโนโลยีรุ่นใหม่

ด้วยจำนวนหน่วยความจำ - สล็อต จำกัด โซลูชั่นที่สำคัญมาในรูปแบบของชิปหน่วยความจำที่สูงขึ้นพร้อมขนาดภายในที่เล็กลงและ / หรือการซ้อน 3D กระบวนการทั้งสองดำเนินไปตามที่คาดไว้ในช่วง 36 เดือนที่ผ่านมา

ดังนั้นคำถามคือ: " ขนาดหน่วยความจำสูงสุด DDR3 " หรือความหมาย: " DDR3 เหตุใดจึงไม่มีโมดูลหน่วยความจำมากกว่า 16GB "

และคำตอบคือ:

มาตรฐาน DDR3 รองรับความจุของชิปขนาด 512 เมกะบิตถึง 8 กิกะบิตได้อย่างมีประสิทธิภาพทำให้สามารถใช้ขนาดหน่วยความจำสูงสุดได้ถึง 16 กิกะไบต์ ( src )

DDR4 จะเปลี่ยนแปลงสิ่งนี้ตามที่กล่าวไว้ในแผนที่เทคโนโลยีนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ผลลัพธ์:

  • ตลาดหน่วยความจำกึ่งชะงักงัน
  • มหกรรม Apple Macbook Pro หยุดที่ 16GB อย่างเลวทรามต่ำช้า
  • ความต้องการมากขึ้นสำหรับบริการคลาวด์หรือระยะไกล (เพื่อบ้านเสมือนเครื่องและฐานข้อมูล InMemory เหล่านั้นนักพัฒนาและวิศวกรจำนวนมากจะทำงานในพื้นที่อย่างมีความสุข)
  • ... ???

คำเตือนบางอย่างเพื่อ Hennes'es โพสต์อย่างละเอียด:

  • เดสก์ท็อปทั่วไป (DDR3) RAM ราคาถูก แต่ไม่มากราคาถูก : ราคาถูกเพียงพอสำหรับบางคนที่จะซื้อเนื่องจากพื้นหลังที่ใช้ข้อมูลเป็นจำนวนมาก
  • RAM สูญเสียเนื้อหาเมื่อปิดเครื่อง : มนุษย์ได้จัดการกับปัญหาที่ยากกว่าหน่วยความจำที่ไม่แน่นอน สิทธิบัตรและโซลูชันเกี่ยวกับ "การจัดการกับหน่วยความจำที่ระเหยได้" ตั้งแต่ปี 2010 เป็นเครื่องยืนยันถึงสิ่งนั้น
  • RAM ใช้พลังงานมากขึ้น : เลือกปิดหน่วยความจำที่ไม่ได้ใช้ (ธนาคาร) ในอุปกรณ์มือถือ นอกจากนี้ 1W ถึง 2W pales เมื่อเปรียบเทียบกับ 800W GPUs
  • คุณจะต้องใช้ซ็อกเก็ต DIMM จำนวนมาก : เทคโนโลยีชิปยังคงก้าวหน้าตามปกติหมายความว่าตัวเลือกของชิปหน่วยความจำที่สูงขึ้นไม่ได้มีอยู่เพียงอย่างเดียว แต่ผู้ผลิตชิปจะขายให้คุณอย่างมีความสุขในปริมาณสูง
  • คุณจะต้องใช้ RAM ในการรันโปรแกรมใน : True แต่ข้อpkr298สันนิษฐานว่าระบบปฏิบัติการและโปรแกรมทั้งหมดจะถูกโหลดเข้าสู่หน่วยความจำไม่ใช่ว่ามันควรจะยกเลิกฮาร์ดไดรฟ์ / SSD

การปิดธนาคารหน่วยความจำที่ไม่ได้ใช้ใน DRAM นั้นเป็นปัญหา เทคโนโลยี DRAM ต้องการให้เซลล์มีการรีเฟรช ลองใช้วิธีนี้กับที่ฝากข้อมูลรั่ว ถ้าฉันเติมน้ำ (ไฟฟ้า) แทน 1 ถ้าฉันว่างมันก็คือ 0 น่าเศร้าที่ถังรั่วและยืนในน้ำตื้น ถังเต็มจะค่อยๆทำให้ตัวเองว่างเปล่าจนกว่าจะตรงกับระดับน้ำ ถังที่ว่างเปล่าจะช้าลงจนกว่าจะตรงกับระดับน้ำ หลังจากนั้นในขณะที่ไม่มีการบอกสถานะของถัง
Hennes

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

1

คุณมีสิทธิ์จริง ๆ ในอนาคตอันใกล้การจัดเก็บและหน่วยความจำทั้งหมดจะอยู่ในรูปแบบของหน่วยความจำนาโน NRAM นั้นเป็นสวิทช์ "เชิงกล" ที่มีอะตอมไม่กี่ตัวกว้างมันไม่จำเป็นต้องใช้กระแสเพื่อรักษาสถานะดังนั้นจึงเป็นพลังงานที่มีประสิทธิภาพและไม่จำเป็นต้องระบายความร้อนด้วยและเนื่องจากสวิตช์มีความหนาแน่นน้อยมาก นี่เป็นเหตุผลที่ดีสำหรับสองเหตุผลข้อแรกคือการเข้าถึงหน่วยความจำนั้นรวดเร็วมากและคุณจะสามารถมีเทราไบต์ของข้อมูลบนอุปกรณ์ขนาดเล็กเช่นโทรศัพท์มือถือ หากคุณต้องการอ่านเพิ่มเติมดูนี้: http://www.nantero.com/mission.htmlและhttp://en.wikipedia.org/wiki/Nano-RAMนี้


0

อย่างที่คนอื่น ๆ บอกว่า RAM มีความผันผวนและราคาประมาณ 10 เท่าของ SSD

แต่มีเป็นสินค้าออกมีที่มาสวยใกล้เคียงกับสิ่งที่คุณกำลังอธิบาย - โชคร้ายที่ฉันไม่สามารถจำชื่อ

มันคืออะไรเป็นไดรฟ์ที่ใช้ RAM (IIRC สูงสุด 64gb) ควบคู่กับการ์ด CF และแบตเตอรี่ เมื่อคุณเปิดระบบมันจะคัดลอกเนื้อหาของ CF card ไปยัง RAM (ฉันเชื่อว่าการให้บริการตามคำขอจาก CF card หากยังไม่ได้โหลด) เมื่อปิดระบบเนื้อหาของ RAM จะถูกคัดลอกไปยัง CF card - แบตเตอรี่มีขนาดใหญ่พอที่จะให้เรื่องนี้เสร็จก่อนที่จะหมด

มันไม่ถูก

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