วิธีล้างแคชดิสก์ Windows ให้อ่าน


13

สำหรับการทดสอบประสิทธิภาพฉันต้องล้างแคชการอ่านดิสก์ของ Windows ฉันลองใช้ googling แต่ไม่พบสิ่งใดนอกจากการรีบูทหรือคู่มืออื่น ๆ ก่อนที่ฉันจะยอมแพ้และทำเช่นนั้นฉันอยากจะรู้ว่าถ้าใครรู้วิธีล้างแคชของดิสก์อ่านของ Windows ฉันกำลังทดสอบ Windows 7 แต่ฉันสนใจโซลูชัน Windows XP ด้วย

คำตอบ:


3

หรือเติมแคชด้วยข้อมูลที่คุณรู้ว่าจะไม่ถูกใช้ในการทดสอบจากนั้นเรียกใช้การทดสอบ


1
หรือคุณสามารถใช้ RAM ที่มีอยู่ทั้งหมด Windows จะปล่อยแคชไฟล์เพื่อใช้ RAM นั้น ดูรายละเอียดได้จากคำตอบของ Stephen Denne
WeGoToMars

ฉันหวังว่าจะมีบางสิ่งที่ 'ทำงานน้อยลง' แต่ฉันคิดว่าคำแนะนำของคุณง่ายที่สุดที่จะนำไปใช้ในสคริปต์ทดสอบอัตโนมัติในสถานการณ์ของฉัน ขอบคุณสำหรับคำแนะนำ
Sebastiaan M

7

ฉันถามคำถามเดียวกันกับ Stack Overflow

https://stackoverflow.com/questions/478340/clear-file-cache-to-repeat-performance-testing

ฉันใช้ Win XP แต่ทางออกที่ดีที่สุดที่ฉันพบคือ:

  1. เรียกใช้MemAllocสองสามชุด
  2. ให้จัดสรรแต่ละหน่วยความจำขนาดใหญ่สองสามครั้ง
  3. ใช้ Process Explorer เพื่อสังเกตขนาดแคชระบบลดลงถึงระดับต่ำมาก
  4. ออกจากโปรแกรม MemAlloc

3

เพื่อมุมมองที่ดีขึ้นของแคชระบบไฟล์ Windows XP - ลองใช้ATM โดย Tim Murgentซึ่งจะช่วยให้คุณเห็นทั้งขนาดของแคชระบบไฟล์ Working Set size และขนาด Standby List ในมุมมองที่ละเอียดและแม่นยำยิ่งขึ้น สำหรับ Windows XP - คุณต้องใช้ ATM รุ่นเก่าซึ่งสามารถดาวน์โหลดได้ที่นี่เนื่องจาก V2 และ V3 ต้องการ Server 2003, Vista หรือสูงกว่า

คุณจะสังเกตเห็นว่าถึงแม้ว่า Cacheset จะลด "Cache WS Min" แต่ข้อมูลจริงยังคงมีอยู่ในรูปแบบของรายการสแตนด์บายที่สามารถใช้งานได้จนกว่าจะถูกแทนที่ด้วยสิ่งอื่น เมื่อต้องการแทนที่ด้วยสิ่งอื่นให้ใช้เครื่องมือเช่น MemAlloc, flushmem โดย Chad Austin หรือ Consume.exe จากเครื่องมือ Kit ทรัพยากร Windows Server 2003


3

ผมเคยใช้RAMMap มีความเป็นไปได้ที่จะเพิ่มหน่วยความจำของการจัดสรรไม่กี่ประเภท

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


ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนที่สำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
slm


1

แนวทางปฏิบัติที่ดีที่สุดคือการตรวจสอบให้แน่ใจว่าไฟล์ทดสอบใด ๆ ที่คุณกำลังทำการเปรียบเทียบมีขนาดใหญ่กว่า 2x แคชของตัวควบคุมอาร์เรย์ (หรือหน่วยความจำ windows os หากทำการเปรียบเทียบกับแขกวีเอ็มเอ็ม) ด้วยไฟล์ทดสอบขั้นต่ำ 1 GB สิ่งนี้ทำให้มั่นใจได้ว่าการแคชใด ๆ จะถูกทำให้ไร้ผล เราใช้SQLIOสำหรับการเปรียบเทียบดิสก์ มีข้อมูลมากมายในเอกสารประกอบ


หนึ่งในสิ่งที่ฉันพยายามทำคือการเปรียบเทียบว่าโครงการของเราสร้างขึ้นอย่างรวดเร็วในการกำหนดค่าต่างๆ ฉันไม่สามารถเพิ่มขนาดไฟล์ที่ฉันคิดได้ :)
Sebastiaan M

1

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

ที่กล่าวว่าหากคุณเพียงแค่ต้องการล้างแคชการอ่านของข้อมูลที่เป็นประโยชน์ก่อนที่จะใช้การวัดประสิทธิภาพของคุณซึ่งต้องการใช้ read-cache วิธีที่จะทำคือการอ่านไฟล์ขนาดเดียวภายใต้หน่วยความจำแคชการอ่านของคุณ และทำการดำเนินการกับไฟล์ นี่จะล้างแคชและเติมด้วยไฟล์ขนาดใหญ่นี้ เมื่อคุณปิดมันแคชของคุณจะล้างได้อย่างมีประสิทธิภาพของข้อมูลที่คุณดูแลเกี่ยวกับ ส่วนที่ยุ่งยากคือการหาว่าไฟล์นั้นต้องมีขนาดใหญ่แค่ไหนซึ่งวันนี้อาจจะมีขนาด 3GB; ณ จุดนี้คุณอาจต้องการไฟล์ขยะ 1GB หลายไฟล์เพื่อให้สามารถใช้งานได้


0

ฉันคิดว่าตัวเลือกส่วนใหญ่จะเป็น "คู่มือสิ่ง" ภายใต้ระบบปฏิบัติการยูนิกซ์มันเป็นมาตรฐานที่ค่อนข้างดีในการถอนติดตั้ง / ติดตั้งอุปกรณ์ใหม่ก่อนที่จะทำการวัดประสิทธิภาพแต่ละครั้งซึ่งมักจะมี "newfs" โยนเข้ามาเพื่อวัดผลที่ดี ฉันไม่รู้ว่าคุณสามารถใช้เครื่องมือบรรทัดคำสั่งภายใต้ Windows เพื่อ unmount / mount อุปกรณ์ได้หรือไม่ แต่ถ้าระบบอัตโนมัติเป็นเป้าหมายของคุณมันจะคุ้มค่าที่จะหาโปรแกรมอรรถประโยชน์ดังกล่าว


1
ภายใต้ Linux ถ้ายกเลิกการต่อเชื่อม / remuont ไม่ได้เป็นตัวเลือกด้วยเหตุผลบางอย่างที่คุณยังสามารถทำsync; echo 3 > /proc/sys/vm/drop_caches- แม้ว่าจะมีผลกระทบต่อทุกแคช / บัฟเฟอร์ไม่เพียง แต่ผู้ที่เกี่ยวข้องกับปริมาณโดยเฉพาะอย่างยิ่ง ก่อนหน้านี้ฉันได้ค้นหาเคล็ดลับที่คล้ายกันสำหรับ Windows แต่ไม่พบ
David Spillett

0

ดูคำตอบนี้ฉันเพิ่งโพสต์คำถามของฉันเองใน StackOverflow

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

หวังว่านี่จะช่วยได้!

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