ซิงค์ประสิทธิภาพสูง


0

ฉันกำลังพยายามทำโฟลเดอร์ซิงค์ p4 / ...

มันไม่เร็วมากและใช้ CPU เพียง 2% ฉันไม่พอใจกับการแสดง

ฉันพยายามที่จะเขียนฟังก์ชั่นใน bash กำหนดพารามิเตอร์ n มันจะสร้างคิวของไฟล์และโฟลเดอร์ทั้งหมด n ระดับลึกและส้อมกระบวนการ p4 ซิงค์ -f $ thatDirectory / ... หรือ p4 sync -f $ thatFile .

ฉันจะเริ่มเกี่ยวกับสิ่งนี้ได้อย่างไร มียูทิลิตี้ใดบ้างที่ทำสิ่งนี้อยู่แล้ว?

ขอบคุณล่วงหน้า.

คำตอบ:


2

ฉันไม่มีประสบการณ์กับ Perforce แต่การซิงค์นี้ดูเหมือนว่า การดำเนินการ I / O-bound . การขนานกันในหลาย ๆ กระบวนการไม่น่าจะช่วยได้เพราะคอขวดคือดิสก์หรือเครือข่าย

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

ก่อนที่คุณจะเข้าสู่การเขียนสคริปต์ทำการวิเคราะห์เพื่อหาว่าอะไรทำให้ช้า ใช้เครื่องมือเช่น strace และ Wireshark เพื่อศึกษาการอ่าน / เขียนการโทรและการรับส่งข้อมูลเครือข่าย


0

บางครั้งกระบวนการ p4d (เซิร์ฟเวอร์) เริ่มต้นด้วยแฟล็ก '-f' ที่จะเรียกใช้เป็นกระบวนการเธรดเดี่ยว

สองจุดที่ควรทราบ

ลองใช้ตัวเลือก -p เพื่อซิงค์แทน - หมายถึงการเขียน db น้อยลงและต้องเป็นสิ่งที่ดี!

คุณสามารถลองใช้ 'ไปที่ระดับลึกและซิงค์จากสิ่งที่ลงมา' ชนิดของสิ่งที่ต้องการ:

$ p4 dirs // & lt; path & gt; / * | ในขณะที่อ่านเส้นทาง ทำ

p4 dirs $ path / * | ขณะที่อ่านพา ธ ย่อย ทำ p4 dirs $ subpath / * | ขณะอ่าน sububpath ทำ P4 & lt; cmd & gt; $ subsubpath / ... ; ทำ; P4 & lt; cmd & gt; $ path / ... # เพื่อจับ ไฟล์ในระดับนี้ ทำ; P4 & lt; cmd & gt; // & lt; path & gt; / ... # เพื่อรับไฟล์ที่ระดับ (บนสุด) นี้เสร็จแล้ว ในกรณีของคุณคุณจะมี & lt; cmd & gt; เท่ากับ "ซิงค์" + args อื่น ๆ


0

ฉันจะหลีกเลี่ยงการซิงค์ต่อไฟล์ ... โดยเฉพาะอย่างยิ่งถ้าคุณมีผู้ใช้หลายคนพยายามทำสิ่งนี้จากเครื่องมือฝังตัวหรือสิ่งที่คล้ายกัน เราฆ่าเซิร์ฟเวอร์ของเราที่นี่หลายต่อหลายครั้งด้วยกลวิธีเช่นนี้

อย่างไรก็ตาม Perforce เสนอตัวเลือกในการซิงโครไนซ์การซิงค์ให้คุณ - มันต้องมีการปรับแต่งด้านเซิร์ฟเวอร์ แต่คุณควรลอง

คุณสามารถหักลบ p4.exe ได้หลายครั้ง แต่ฉันจะพยายามทำให้มันเล็กไม่น้อยกว่าจำนวนคอร์ที่คุณมี

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