ฉันเป็นนักศึกษาระดับบัณฑิตศึกษาและกลุ่มที่ฉันทำงานดูแลคลัสเตอร์ Linux แต่ละโหนดของคลัสเตอร์มีดิสก์ภายในเครื่องของตนเอง แต่ดิสก์ภายในเครื่องเหล่านี้มีขนาดค่อนข้างเล็กและไม่มีการสำรองข้อมูลอัตโนมัติ ดังนั้นกลุ่มเจ้าของเซิร์ฟเวอร์ไฟล์ที่มีพื้นที่เก็บข้อมูลจำนวนมาก TB ฉันเป็นสามเณร Linux ญาติดังนั้นฉันไม่แน่ใจว่าอะไรคือข้อกำหนดของ fileserver ในแง่ของความเร็วความสามารถในการเชื่อมต่อเครือข่ายและอื่น ๆ ฉันรู้จากประสบการณ์ว่าดิสก์ภายในเครื่องนั้นเร็วกว่าไฟล์เซิร์ฟเวอร์ในแง่ของ I / O อย่างมาก . ประมาณหนึ่งโหลหรือมากกว่านั้นผู้คนใช้ไฟล์เซิร์ฟเวอร์
การใช้cp
เพื่อคัดลอกไฟล์ ~ 20 GB จาก fileserver ไปยังดิสก์ภายในเครื่องใช้เวลาโดยเฉลี่ยประมาณ 11.5 นาทีตามเวลาจริง (ตามtime
) ฉันรู้ว่าcp
การดำเนินการนี้ไม่ได้มีประสิทธิภาพมากเพราะ (1) time
บอกฉันว่าเวลาของระบบสำหรับสำเนาดังกล่าวมีเพียง ~ 45 วินาที และเนื่องจาก (2) เมื่อฉันตรวจสอบtop
ระหว่างการคัดลอก% CPUค่อนข้างต่ำ (โดยการตรวจสอบโดยเฉลี่ยประมาณ0-10% )
การใช้cp
เพื่อคัดลอกไฟล์ ~ 20 GB เดียวกันจากโฟลเดอร์หนึ่งบนดิสก์ภายในเครื่องไปยังโฟลเดอร์อื่นในดิสก์ภายในเครื่องเดียวกันใช้เวลาน้อยลง - ในเวลาจริงประมาณ 9 นาที (~ 51 วินาทีในเวลาระบบตามtime
) เห็นได้ชัดว่าไฟล์เซิร์ฟเวอร์ค่อนข้างช้ากว่าดิสก์ภายในเครื่องตามที่คาดไว้ แต่อาจไม่ช้าลงอย่างมีนัยสำคัญ ฉันประหลาดใจที่การคัดลอกจากในท้องถิ่นไปยังท้องถิ่นเดียวกันนั้นไม่เร็วกว่า 9 นาที
ฉันต้องคัดลอก ~ 200 ไฟล์ขนาดใหญ่ - แต่ละ ~ 20 GB - จาก fileserver ไปยังดิสก์ท้องถิ่น ดังนั้นคำถามของฉันคือ: มีทางเลือกอื่นที่เร็วกว่าcp
สำหรับการคัดลอกไฟล์ขนาดใหญ่ใน Linux หรือไม่? (หรือมีธงใด ๆ ภายในcp
ที่ฉันสามารถใช้ซึ่งจะเร่งความเร็วการคัดลอกหรือไม่) แม้ว่าฉันจะสามารถโกนนาทีคัดลอกเวลานี้อย่างใดอย่างหนึ่งที่จะช่วยอย่างมาก
ฉันแน่ใจว่าการซื้อดิสก์ฮาร์ดแวร์ใหม่ที่เร็วขึ้น แต่ฉันไม่สามารถเข้าถึงทรัพยากรดังกล่าวได้ ฉันยังไม่ใช่ผู้ดูแลระบบ - ฉันเป็นเพียงผู้ใช้ (สามเณร) ดังนั้นฉันจึงไม่สามารถเข้าถึงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับโหลดที่อยู่ในดิสก์ได้ ฉันรู้ว่าในขณะที่คนประมาณโหลใช้เซิร์ฟเวอร์ไฟล์ทุกวัน แต่ฉันเป็นคนเดียวที่ใช้โหนด / ดิสก์ภายในเครื่องนี้
dd
และrsync
เปรียบเทียบสิ่งที่ใช้ได้เร็วกว่าในสภาพแวดล้อมของคุณ
dd
rsync
เวลาที่แท้จริงก็คือประมาณ 11.5 นาทีและเวลาของระบบได้ประมาณ 1.5 time
นาทีตาม
/dev/sda1
ที่จะ/dev/sdb1
เป็นไปได้เร็วกว่าการคัดลอกจากสถานที่หนึ่งบน/dev/sda1
ยังตำแหน่งอื่นบน/dev/sda1
หรือพาร์ทิชันอื่นบน/dev/sda
เพราะฮาร์ดไดรฟ์จะไม่ต้องทำเพิ่มเติมพยายามระหว่างอ่านและเขียน (สมมติว่าฮาร์ดไดรฟ์แบบดั้งเดิมที่มีการปั่นดิสก์และการเคลื่อนย้ายหัว; SSD นั้นแตกต่างกันอย่างเห็นได้ชัด)