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

เมื่อใช้ในบริบทของฐานข้อมูลหน่วยความจำหมายถึง RAM ที่แอดเดรสได้โดยตรงโดย CPU ซึ่งตรงข้ามกับการผ่านระบบย่อย I / O

5
ทำไมฉันจะไม่ใช้ตัวเลือก SQL Server“ ปรับให้เหมาะสมสำหรับปริมาณงานเฉพาะกิจ”?
ฉันได้อ่านบทความที่ยอดเยี่ยมเกี่ยวกับการแคชแผน SQL Server โดย Kimberly Tripp เช่นนี้: http://www.sqlskills.com/blogs/kimberly/plan-cache-and-optimizing-for-adhoc-workloads/ ทำไมถึงมีตัวเลือกในการ "เพิ่มประสิทธิภาพสำหรับปริมาณงานแบบเฉพาะกิจ"? สิ่งนี้ไม่ควรเกิดขึ้นหรือ ไม่ว่านักพัฒนาจะใช้ ad-hoc SQL หรือไม่ทำไมคุณไม่เปิดใช้งานตัวเลือกนี้ในทุกอินสแตนซ์ที่รองรับ (SQL 2008+) ซึ่งจะช่วยลดการขยายตัวของแคช?

3
ปริมาณการใช้“ หน่วยความจำเซิร์ฟเวอร์โดยรวม” ของ SQL Server หยุดนิ่งเป็นเดือนโดยมี 64GB + มากกว่านั้น
ฉันพบปัญหาแปลกที่ SQL Server 2016 Standard Edition 64- บิตดูเหมือนว่าได้ปิดตัวเองที่ครึ่งหนึ่งของหน่วยความจำทั้งหมดที่จัดสรรให้อย่างแม่นยำ (64GB 128GB) ผลลัพธ์ของ@@VERSIONคือ: Microsoft SQL Server 2016 (SP1-CU7-GDR) (KB4057119) - 13.0.4466.4 (X64) 22 ธันวาคม 2017 11:25:00 ลิขสิทธิ์ (c) Microsoft Corporation Standard Edition (64 บิต) บน Windows Server 2012 R2 Datacenter 6.3 ( รุ่น 9600:) (Hypervisor) ผลลัพธ์ของsys.dm_os_process_memoryคือ: เมื่อฉันแบบสอบถามsys.dm_os_performance_countersผมเห็นว่าTarget Server Memory (KB)ที่131072000และเป็นเพียงภายใต้ครึ่งหนึ่งของที่ที่Total Server Memory …

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

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

3
หน่วยความจำ SQL Server Express และ CPU จำกัด ต่ออินสแตนซ์หรือไม่
ถ้าฉันมี RAM 8GB ในเซิร์ฟเวอร์และฉันเรียกใช้อินสแตนซ์ 4 รายการของ SQL Server Express ขีด จำกัด หน่วยความจำทั้งหมดที่ใช้โดย SQL Server จะเป็น 1GB หรือ 4GB หรือไม่ ขอแนะนำให้เรียกใช้หลาย ๆ กรณีเช่นนี้เพื่อให้แต่ละฐานข้อมูลใช้ทรัพยากรได้ดีขึ้นหรือไม่ (สมมติว่าเซิร์ฟเวอร์มีทรัพยากรมากมาย)


4
ปรับ postgresql สำหรับ ram จำนวนมาก
ฉันมีเซิร์ฟเวอร์ที่เหมือนกันสองตัว (ในแง่ของฮาร์ดแวร์) พวกเขาเป็นทั้งการติดตั้งมาตรฐานของ windows server 2008 r2 โดยมีการติดตั้งซอฟต์แวร์น้อยที่สุด (โดยทั่วไปคือโค้ดของฉัน บนเซิร์ฟเวอร์ตัวเดียวฉันใช้ SQL Server 2005 บนเซิร์ฟเวอร์ตัวที่สอง postgresql 9.1 ความแตกต่างของประสิทธิภาพในการทำงาน b / n เซิร์ฟเวอร์ทั้งสองนี้ไม่น่าเชื่อเลยมันแย่มากใน postgresql ที่ฉันเสียใจที่เริ่มแรก "ลองใช้ postgresql แทนที่จะจ่ายใบอนุญาตเซิร์ฟเวอร์ sql" ให้เจ้านายของฉันพูด เรากำลังพูดถึงความแตกต่างของ 30 วินาทีเทียบกับ 15 นาทีสำหรับคำสั่งเดียวกันและไม่ใช่แค่คำสั่งเดียวนี่คือแบบสอบถามหรือคำสั่งใด ๆ ที่ฉันส่งไป พวกเขาทั้งสองมีข้อมูลที่เหมือนกัน (ระเบียนถูกแทรกในลำดับที่แตกต่างกัน) และฐานข้อมูลทั้งสองมีโครงสร้าง / ดัชนีเหมือนกัน ฯลฯ แต่ฉันหวังว่ามันเป็นเพียงเรื่องของการปรับแต่งประสิทธิภาพ สิ่งคือเซิร์ฟเวอร์ sql ค่อนข้างใช้ ram 32 กิ๊กทั้งหมดบนเซิร์ฟเวอร์ในขณะที่ postgresl ไม่ได้ใช้อะไรเลยมีน้อยกว่า …

3
MongoDB ใช้หน่วยความจำมากเกินไป
เราใช้ MongoDB เป็นเวลาหลายสัปดาห์แล้วแนวโน้มโดยรวมที่เราเห็นคือ mongodb ใช้หน่วยความจำมากเกินไป (มากกว่าขนาดของชุดข้อมูล + ดัชนีทั้งหมด) ฉันได้อ่านคำถามนี้แล้วและคำถามนี้แต่ดูเหมือนจะไม่มีใครตอบปัญหาที่ฉันพบพวกเขากำลังอธิบายสิ่งที่อธิบายไว้ในเอกสารแล้ว ต่อไปนี้เป็นผลลัพธ์ของhtopและแสดงคำสั่งdbs ฉันรู้ว่า mongodb ใช้หน่วยความจำที่แมป IO ดังนั้นโดยทั่วไประบบปฏิบัติการจะจัดการกับการแคชสิ่งต่าง ๆ ในหน่วยความจำและ mongodb ในทางทฤษฎีควรปล่อยหน่วยความจำแคชในทางทฤษฎีเมื่อกระบวนการอื่นร้องขอหน่วยความจำที่ว่างแต่จากสิ่งที่เราเห็น OOM เริ่มฆ่ากระบวนการที่สำคัญอื่น ๆ เช่น postgres, redis และอื่น ๆ (ดังที่เห็นได้ว่าเพื่อเอาชนะปัญหานี้เราได้เพิ่ม RAM เป็น 183GB ซึ่งตอนนี้ใช้งานได้ แต่มีราคาแพงมาก mongo ใช้ ram ~ 87GB เกือบ 4X ของขนาดของชุดข้อมูลทั้งหมด) ดังนั้น, นี่เป็นการใช้งานหน่วยความจำมากมายที่คาดหวังและปกติหรือไม่? (ตามเอกสารประกอบ WiredTiger ใช้ RAM ส่วนใหญ่ประมาณ ~ 60% …

7
อะไรคือเหตุผล ** ไม่ ** ในการใช้เครื่องมือจัดเก็บข้อมูล MEMORY ใน MySQL?
ฉันเพิ่งค้นพบว่า MySQL มีเอ็นจิ้น "หน่วยความจำ" ที่ฉันไม่ทราบ ดูเหมือนว่าตัวเลือกนี้ควรให้ประสิทธิภาพที่ดีขึ้นอย่างมากกับฉันดังนั้นฉันจึงสงสัยว่ามีข้อบกพร่องใด ๆ ทั้งสองที่ฉันรู้คือ: ฉันต้องมี RAM เพียงพอที่จะถือตารางในคำถาม ตารางจะหายไปหากเครื่องปิด ฉันเชื่อว่า # 1 ไม่ควรเป็นปัญหาเนื่องจากฉันใช้ AWS EC2 และสามารถย้ายไปยังประเภทอินสแตนซ์ที่มีหน่วยความจำเพิ่มขึ้นหากจำเป็น ฉันเชื่อว่าฉันสามารถลด # 2 ได้โดยการถ่ายโอนข้อมูลกลับไปที่ดิสก์ตามต้องการ มีปัญหาอื่นอีกไหม เอ็นจิ้นหน่วยความจำสามารถให้ประสิทธิภาพที่แย่กว่า MyISAM หรือ InnoDB ได้หรือไม่? ฉันคิดว่าฉันอ่านบางอย่างที่ดัชนีแตกต่างจากเครื่องมือนี้ เป็นสิ่งที่ฉันต้องกังวลหรือไม่

3
ขนาดไฟล์หน้าที่แนะนำสำหรับ SQL 2008R2 บน Windows 2008R2
บทความของ Microsoft นี้ - วิธีการกำหนดขนาดหน้าแฟ้มที่เหมาะสมสำหรับ Windows Server 2008 และ Windows 2008 R2รุ่น 64 บิตให้คำแนะนำสำหรับการคำนวณขนาดหน้าไฟล์สำหรับ 64 บิต Windows 2008 และ Windows 2008R2 ไม่ต้องสงสัยเลยว่าทำงานได้ดีสำหรับเซิร์ฟเวอร์ที่ใช้งานทั่วไป ฉันสงสัยว่าคำแนะนำสำหรับ SQL Server 2008R2 ที่ทำงานบน Windows 2008 / R2 64 บิตคืออะไร ฉันคิดว่าเราต้องการข้อมูลหน่วยความจำเพียงเล็กน้อยในการกดปุ่มไฟล์หน้ามิฉะนั้น SQL อาจกดดิสก์สองครั้งเพื่อหาข้อมูล SQL Server อนุญาตให้ข้อมูลในหน่วยความจำตีไฟล์หน้าได้หรือไม่ ฉันได้รับคำแนะนำจากSQL Server 2008 R2 Books Online แล้วแต่ยังไม่พบการใช้ไฟล์หน้าใด ๆ นี่คือสถานการณ์การใช้งานที่อาจเกิดขึ้น: เมื่อกำหนดเซิร์ฟเวอร์จริงที่มี RAM …

2
ฉันจะลดขนาดไฟล์ innodb ibdata1 โดยไม่ต้องทิ้งฐานข้อมูลทั้งหมดได้อย่างไร
InnoDB เก็บตารางทั้งหมดไว้ในไฟล์ibdata1เดียว หลังจากวางตารางขนาดใหญ่ไฟล์จะรักษาขนาดของมันไม่ว่าโต๊ะจะใหญ่แค่ไหน ฉันจะลดขนาดไฟล์นั้นโดยไม่ต้องถ่ายโอนข้อมูลและนำเข้าฐานข้อมูลทั้งหมดอีกครั้ง (ซึ่งมีทั้งหมดหลายร้อย GB) ฉันคิดว่าเหตุผลก็เพราะคุณยังสามารถย้อนกลับไปลดลง ในกรณีของฉันฉันไม่จำเป็นต้อง

1
ทำไม SQL Server 2012 Express ใช้ RAM 9.5GB บนเซิร์ฟเวอร์ของฉัน
ฉันกำลังสร้างแอปพลิเคชันที่ฉันวางแผนจะฝัง SQL Server 2012 Express เป็นที่เก็บข้อมูลหลัก เมื่อทำการทดสอบบนเครื่องพัฒนาของฉัน (Win7-32 ​​ที่มี RAM 3GB) ฉันไม่เคยสังเกตว่าsqlservr.exeกระบวนการใช้ RAM มากกว่า 1GB อย่างที่ฉันคาดไว้จากการจำกัด ขนาดของฮาร์ดแวร์ที่เผยแพร่สำหรับ SQL Server รุ่น Express จากนั้นฉันย้ายแอปพลิเคชันของฉันไปยังเครื่องระดับเซิร์ฟเวอร์ (Win Server 2008R2 64- บิตพร้อม RAM 16GB) เพื่อประเมินประสิทธิภาพการทำงานที่นั่นและรู้สึกประหลาดใจที่พบว่าsqlservr.exeกระบวนการขยายอย่างรวดเร็วไปเป็นแรม 9.5GB และอยู่ที่นั่น ฉันรีสตาร์ทสองสามครั้งเพื่อดูว่าจะมีผลกระทบใด ๆ หรือไม่ แต่ในแต่ละครั้งกระบวนการจะกลับไปที่ ~ 9.5GB อย่างรวดเร็ว ตอนนี้ฉันรู้สึกยินดีอย่างยิ่งที่มี SQL Server Express ใช้ RAM ของฉัน แต่ฉันอยากจะรู้ว่านี่เป็นพฤติกรรมที่คาดหวังหรือไม่ดังนั้นฉันจึงไม่ต้องพึ่งพาระดับประสิทธิภาพที่ขึ้นอยู่กับการใช้ RAM ที่ไม่ถูกต้อง FYI …

3
การใช้ CPU มีผลต่อค่าใช้จ่ายของการเข้าถึง NUMA จากต่างประเทศหรือไม่
สถานการณ์ สมมติว่าฉันมีเซิร์ฟเวอร์ SQL ที่มี 4 ซ็อกเก็ตแต่ละโหนด 1 NUMA ซ็อกเก็ตแต่ละอันมี 4 คอร์ทางกายภาพ มีหน่วยความจำรวม 512 GB ดังนั้นแต่ละ NUMA node มี RAM 128 GB ตารางคีย์ถูกโหลดลงในโหนด NUMA แรก คำถาม สมมติว่าเรามีปริมาณการอ่านข้อมูลจำนวนมากจากตารางนั้น หากแกนประมวลผลทางกายภาพทั้งหมดของซ็อกเก็ตที่เป็นเจ้าของโหนด NUMA มีการใช้ CPU 100 เปอร์เซ็นต์นั่นจะส่งผลเสียต่อต้นทุนการเข้าถึง NUMA ที่ไม่ใช่ภายในเครื่องที่มาจากซ็อกเก็ตอื่นหรือไม่ หรือในทางกลับกันค่าใช้จ่ายของการเข้าถึง NUMA ที่ไม่ได้อยู่ในพื้นที่นั้นไม่ว่าซ็อกเก็ตนั้นจะยุ่งแค่ไหน? ฉันหวังว่าคำถามของฉันจะสมเหตุสมผล โปรดแจ้งให้เราทราบหากไม่พยายามชี้แจง พื้นหลัง เรามีปัญหาฐานข้อมูลในเซิร์ฟเวอร์การผลิตของเราเมื่อสัปดาห์ที่แล้วและบางส่วนของธุรกิจของเราได้รับผลกระทบมากกว่าคนอื่น ๆ เรามีข้อความค้นหาที่มีการอ่านเชิงตรรกะน้อยกว่า 1 นาที เราดูการใช้งาน CPU โดยรวมประมาณร้อยละ 60 เราไม่ได้ดูการวัดซีพียูเฉพาะซ็อกเก็ต …

1
SQL Server - ใครก็ตามที่ใช้ SUMA, ค่าสถานะการสืบค้นกลับ 8048 หรือค่าสถานะการติดตาม 8015
เมื่อเร็ว ๆ นี้รวมถึงการเริ่มต้นของ SQL Server ติดตามการตั้งค่าสถานะ 8048 เพื่อแก้ไขปัญหา contention spinlock ที่ร้ายแรงในระบบ SQL Server 2008 R2 สนใจที่จะได้ยินจากผู้อื่นที่พบกรณีการใช้งานที่ค่าประสิทธิภาพถูกส่งโดยการติดตามค่าสถานะ 8048 (เลื่อนระดับกลยุทธ์การจัดสรรหน่วยความจำแบบสอบถามจากโหนดต่อ NUMA ไปยังแกนหลัก), สถานะการติดตาม 8015 (SQL Server ละเว้นฟิสิคัล NUMA) หรือ SUMA ( มีการเข้าถึงหน่วยความจำที่สม่ำเสมอเพียงพอตัวเลือก BIOS ในเครื่อง NUMA บางเครื่อง) ติดตามสถานะ 8048 http://blogs.msdn.com/b/psssql/archive/2011/09/01/sql-server-2008-2008-r2-on-newer-machines-with-more-than-8-cpus -presented ต่อ Numa โหนด พ.ค. จำเป็นร่องรอยธง 8048.aspx ติดตามสถานะ 8015 http://blogs.msdn.com/b/psssql/archive/2010/04/02/how-it-works-soft-numa-io-completion-thread-lazy-writer-workers-and-memory -nodes.aspx รายละเอียดเกี่ยวกับปริมาณงานของระบบรวบรวมตัวชี้วัดจากระบบที่มีปัญหาและรวบรวมตัวชี้วัดจากระบบหลังจากการแทรกแซงตาม การตั้งค่าสถานะการสืบค้นกลับ …

1
วางแผนขนาดแคชและหน่วยความจำที่สงวนไว้
เมื่อรันเคียวรีรวมถึงแผนการดำเนินการตามจริงผู้ดำเนินการรูท ( SELECT) จะบอกฉันว่าขนาดแผนแคชคือ 32KB แบบสอบถามที่เข้าร่วมsys.dm_exec_cached_plansและsys.dm_os_memory_objectsมองไปที่แผนดังกล่าวกล่าวว่าค่าสำหรับpages_in_bytesและmax_pages_in_bytesคือ 32768 (32KB) ซึ่งตรงกับขนาดแผนแคช สิ่งที่ฉันไม่เข้าใจคือสิ่งที่มีค่าsys.dm_exec_cached_plans.size_in_bytesซึ่งคือ 49152 (48KB) ฉันได้อ่าน BOL ในคอลัมน์เหล่านี้ทั้งหมดและโดยเฉพาะsize_in_bytesที่บอกว่า: " จำนวนไบต์ที่ใช้โดยวัตถุแคช " ฉันไม่สามารถรับจิ๊กซอว์ชิ้นสุดท้ายได้เพื่อทำความเข้าใจความหมายของมัน ฉันรู้ว่าตัวดำเนินการทั้งหมด (ไม่ได้พูดถึงการให้สิทธิ์หน่วยความจำเพิ่มเติมที่ใช้สำหรับการเรียงลำดับและแฮช) ต้องใช้หน่วยความจำคงที่จำนวนหนึ่งเพื่อจัดเก็บสถานะทำการคำนวณ ฯลฯ ซึ่งจัดเก็บไว้ด้วยแผนเพิ่มประสิทธิภาพในแคช ดังนั้นคำถามของฉันคือ: อะไรsize_in_bytesจริงๆหมายถึง เพราะเหตุใดจึงมีมูลค่าสูงกว่า "ขนาดแผนแคช" จำนวนหน่วยความจำคงที่สำหรับตัวดำเนินการทั้งหมด / ตัวจองที่จองไว้กับ "ขนาดแผนแคช" (32Kb ในตัวอย่างของฉัน) หรือที่อื่น? ฉันรู้ว่าพวกเขาเป็น DMV ที่แตกต่างกันและมีฟังก์ชั่นต่างกัน แผนเรียบเรียง (แคช) sys.dm_exec_cached_plansรวมsys.dm_os_memory_objectsในmemory_object_addressคอลัมน์ เหตุผลที่ฉันโพสต์คำถามที่นี่คือฉันขอความช่วยเหลือในเรื่องนี้เข้าใจวิธีตีความ DMV และคอลัมน์ของพวกเขา ถ้าsize_in_bytesขนาดของแผนแคชทำไม SQL Server ถึงพูดถึงค่าอื่นในแผนการดำเนินการจริง แบบสอบถามใหม่หมายเลขใหม่: แผนจริง …

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