bup-memtest - ทดสอบสถิติการใช้หน่วยความจำ bup
bup memtest [options...]
bup memtest เปิดรายการของดัชนีแพ็กในที่เก็บ bup ของคุณ จากนั้นค้นหารายการสำหรับชุดของวัตถุที่ไม่มีอยู่ พิมพ์สถิติการใช้หน่วยความจำหลังจากแต่ละรอบ
เนื่องจากวิธีการทำงานของระบบ Unix เอาต์พุตมักจะแสดงค่าขนาดใหญ่ (และไม่เปลี่ยนแปลง) ในคอลัมน์ VmSize เนื่องจากการแม็พไฟล์ดัชนีในตอนแรกจะใช้พื้นที่ที่อยู่เสมือนจำนวนหนึ่ง อย่างไรก็ตาม การใช้หน่วยความจำเสมือนนี้เป็นเสมือนทั้งหมด ไม่ใช้ RAM ของคุณ เมื่อเวลาผ่านไป bup จะใช้ ส่วน ของดัชนี ซึ่งจำเป็นต้องโหลดจากดิสก์ และนี่คือสาเหตุที่ทำให้คอลัมน์ VmRSS เพิ่มขึ้น
กำหนดจำนวนวัตถุที่ต้องการค้นหาในแต่ละรอบ (เช่น ก่อนพิมพ์บรรทัดเอาต์พุต)
กำหนดจำนวนรอบ (เช่น จำนวนบรรทัดของเอาต์พุตหลังจากครั้งแรก) เอาต์พุตบรรทัดแรกจะเป็น 0 เสมอ (เช่น บรรทัดฐานก่อนค้นหาวัตถุใดๆ)
ละเว้นไฟล์ .midx ใดๆ ที่สร้างโดย bup midx สิ่งนี้ทำให้คุณสามารถเปรียบเทียบประสิทธิภาพของหน่วยความจำโดยใช้และไม่ใช้ midx
ค้นหาวัตถุที่มีอยู่แทนการค้นหาวัตถุที่ไม่มีอยู่แบบสุ่ม สิ่งนี้สามารถส่งผลกระทบต่อการใช้หน่วยความจำและประสิทธิภาพอย่างมาก โปรดทราบว่าส่วนใหญ่แล้ว bup save จะใช้เวลาส่วนใหญ่ในการค้นหาวัตถุที่ไม่มีอยู่ เนื่องจากวัตถุที่มีอยู่อาจอยู่ในไฟล์ที่ไม่ได้แก้ไขซึ่งเราจะไม่พยายามสำรองข้อมูล ดังนั้นพฤติกรรมเริ่มต้นจึงสะท้อนถึงประสิทธิภาพที่แท้จริงของ bup ได้แม่นยำยิ่งขึ้น แต่คุณอาจต้องการตัวเลือกนี้เพื่อให้แน่ใจว่าคุณไม่ได้ทำให้การค้นหาวัตถุที่มีอยู่แย่ไปกว่าเดิม
$ bup memtest -n300 -c5
PackIdxList: using 1 index.
VmSize VmRSS VmData VmStk
0 20824 kB 4528 kB 1980 kB 84 kB
300 20828 kB 5828 kB 1984 kB 84 kB
600 20828 kB 6844 kB 1984 kB 84 kB
900 20828 kB 7836 kB 1984 kB 84 kB
1200 20828 kB 8736 kB 1984 kB 84 kB
1500 20828 kB 9452 kB 1984 kB 84 kB
$ bup memtest -n300 -c5 --ignore-midx
PackIdxList: using 361 indexes.
VmSize VmRSS VmData VmStk
0 27444 kB 6552 kB 2516 kB 84 kB
300 27448 kB 15832 kB 2520 kB 84 kB
600 27448 kB 17220 kB 2520 kB 84 kB
900 27448 kB 18012 kB 2520 kB 84 kB
1200 27448 kB 18388 kB 2520 kB 84 kB
1500 27448 kB 18556 kB 2520 kB 84 kB เมื่อเพิ่มประสิทธิภาพการจัดทำดัชนี bup เป้าหมายแรกคือทำให้ VmRSS ต่ำพอสมควร อย่างไรก็ตาม ในที่สุดอาจจำเป็นต้องสลับดัชนีทั้งหมด เพียงเพราะว่าคุณกำลังค้นหาวัตถุจำนวนมาก ซึ่งจะทำให้ RSS ของคุณมีขนาดใหญ่เท่ากับ VmSize ในที่สุด
คำสำคัญที่นี่คือ ในที่สุด ตราบเท่าที่ VmRSS เติบโตอย่างช้าๆ จำนวนกิจกรรมของดิสก์ที่เกิดจากการเข้าถึงดัชนีแพ็กจะมีจำนวนน้อยพอสมควร หากเพิ่มขึ้นอย่างรวดเร็ว bup อาจใช้เวลาส่วนใหญ่ในการแลกเปลี่ยนข้อมูลดัชนีจากดิสก์แทนที่จะเรียกใช้การสำรองข้อมูลจริง ดังนั้นการสำรองข้อมูลจะทำงานช้ามาก
จุดประสงค์ของ bup memtest คือเพื่อให้คุณทราบว่าการใช้หน่วยความจำของคุณเพิ่มขึ้นเร็วเพียงใด และเพื่อช่วยในการปรับ bup ให้เหมาะสมสำหรับการใช้หน่วยความจำที่ดีขึ้น หากคุณมีปัญหาเกี่ยวกับหน่วยความจำ คุณอาจถูกขอให้ส่งผลลัพธ์ของ bup memtest เพื่อช่วยวินิจฉัยปัญหา
เคล็ดลับ: ลองใช้ bup midx -a หรือ bup midx -f เพื่อดูว่าช่วยลดการใช้หน่วยความจำของคุณหรือไม่
เรื่องเล็กน้อย: การใช้หน่วยความจำดัชนีใน bup (หรือ git) เป็นเพียงปัญหาจริงๆ เมื่อเพิ่มวัตถุที่มองไม่เห็นก่อนหน้านี้จำนวนมาก นี่เป็นเพราะสำหรับแต่ละออบเจ็กต์ เราจำเป็นต้องยืนยันอย่างแน่นอนว่าไม่มีอยู่ในฐานข้อมูล ซึ่งกำหนดให้เราต้องค้นหาผ่านดัชนีแพ็กที่มีอยู่ ทั้งหมด เพื่อให้แน่ใจว่าไม่มีออบเจ็กต์ใดอยู่ใน คำถาม. ในกรณีที่ชัดเจนยิ่งขึ้นในการค้นหาออบเจ็กต์ที่มีอยู่ ออบเจ็กต์ที่กำลังค้นหามักจะเกี่ยวข้องกันในทางใดทางหนึ่ง ซึ่งหมายความว่าอาจมีอยู่ในแพ็กไฟล์จำนวนเล็กน้อย ดังนั้นการใช้หน่วยความจำจะเท่ากับ จำกัด เฉพาะดัชนี packfile เหล่านั้น
เนื่องจากโดยปกติแล้วผู้ใช้ git จะไม่เพิ่มไฟล์จำนวนมากในการรันครั้งเดียว ดังนั้น git จึงไม่จำเป็นต้องใช้โปรแกรมเช่น bup midx ในทางกลับกัน bup ใช้เวลาส่วนใหญ่ในการสำรองข้อมูลไฟล์ที่ไม่เคยเห็นมาก่อน ดังนั้นรูปแบบการใช้หน่วยความจำจึงแตกต่างกัน
bup-midx(1)
ส่วนหนึ่งของชุด bup(1)
เอเวอรี่ เพ็ญนฤนาท apenwarr@gmail.com.