bup-memtest - คู่มืออ้างอิง ตัวเลือก ตัวอย่างคำสั่ง


ชื่อ

bup-memtest - ทดสอบสถิติการใช้หน่วยความจำ bup

เรื่องย่อ

bup memtest [options...]

คำอธิบาย

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

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

ตัวเลือก

-n, --number=number

กำหนดจำนวนวัตถุที่ต้องการค้นหาในแต่ละรอบ (เช่น ก่อนพิมพ์บรรทัดเอาต์พุต)

-c, --cycles=cycles

กำหนดจำนวนรอบ (เช่น จำนวนบรรทัดของเอาต์พุตหลังจากครั้งแรก) เอาต์พุตบรรทัดแรกจะเป็น 0 เสมอ (เช่น บรรทัดฐานก่อนค้นหาวัตถุใดๆ)

--ignore-midx

ละเว้นไฟล์ .midx ใดๆ ที่สร้างโดย bup midx สิ่งนี้ทำให้คุณสามารถเปรียบเทียบประสิทธิภาพของหน่วยความจำโดยใช้และไม่ใช้ midx

--existing

ค้นหาวัตถุที่มีอยู่แทนการค้นหาวัตถุที่ไม่มีอยู่แบบสุ่ม สิ่งนี้สามารถส่งผลกระทบต่อการใช้หน่วยความจำและประสิทธิภาพอย่างมาก โปรดทราบว่าส่วนใหญ่แล้ว 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.