ทำไมการอัปโหลดไปยัง S3 จึงช้า


12

ฉันใช้s3cmdเพื่ออัปโหลดไปยัง S3:

# s3cmd put 1gb.bin s3://my-bucket/1gb.bin
1gb.bin -> s3://my-bucket/1gb.bin  [1 of 1]
  366706688 of 1073741824    34% in  371s   963.22 kB/s

ฉันกำลังอัปโหลดจาก Linode ซึ่งมีแบนด์วิดท์สูงสุด 50 Mb / s ตามที่รองรับ (ประมาณ 6 MB / s)

เหตุใดฉันจึงได้รับความเร็วอัปโหลดที่ช้าถึง S3 และฉันจะปรับปรุงได้อย่างไร


ปรับปรุง:

การอัปโหลดไฟล์เดียวกันผ่าน SCP ไปยังอินสแตนซ์ m1.medium EC2 (SCP จาก Linode ของฉันไปยังไดรฟ์ EBS ของอินสแตนซ์) ให้ประมาณ 44 Mb / s ตามiftop(การบีบอัดใด ๆ ที่ทำโดยรหัสไม่ได้เป็นปัจจัย)


Traceroute: นี่คือ traceroute ไปยังเซิร์ฟเวอร์ที่กำลังอัปโหลด (ตามtcpdump)

# traceroute s3-1-w.amazonaws.com
traceroute ไปยัง s3-1-w.amazonaws.com (72.21.194.32), สูงสุด 30 ฮ็อพ, แพ็คเก็ต 60 ไบต์
 1 207.99.1.13 (207.99.1.13) 0.635 ms 0.743 ms 0.723 ms
 2 207.99.53.41 (207.99.53.41) 0.683 ms 0.865 ms 0.915 ms
 3 vlan801.tbr1.mmu.nac.net (209.123.10.9) 0.397 ms 0.541 ms 0.527 ms
 4 0.e1-1.tbr1.tl9.nac.net (209.123.10.102) 1.400 ms 1.481 ms 1.508 ms
 5 0.gi-0-0-0.pr1.tl9.nac.net (209.123.11.62) 1.602 มิลลิวินาที 1.677 มิลลิวินาที 1.699 มิลลิวินาที
 6 equinix02-iad2.amazon.com (206.223.115.35) 9.393 ms 8.925 ms 8.900 ms
 7 72.21.220.41 (72.21.220.41) 32.610 ms 9.812 ms 9.789 ms
 8 72.21.222.141 (72.21.222.141) 9.519 ms 9.439 ms 9.443 ms
 9 72.21.218.3 (72.21.218.3) 10.245 ms 10.202 ms 10.154 ms
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *

เวลาแฝงดูสมเหตุสมผลอย่างน้อยก็จนกว่าเซิร์ฟเวอร์จะหยุดตอบสนองต่อคำขอ ping


เริ่มการแก้ไขปัญหา การใช้งาน CPU ของคุณมีลักษณะอย่างไรในขณะที่คุณกำลังอัปโหลด มีtracerouteลักษณะเป็นอย่างไร คิวส่งที่ด้านข้างของการเชื่อมต่อ TCP ของคุณเกือบเต็มหรือเกือบว่างเปล่าหรือไม่ ด้วยการทดสอบง่ายๆสองสามข้อคุณจะสามารถ จำกัด ปัญหาได้อย่างรวดเร็ว
David Schwartz

คำตอบ:


9

เพียงเพราะคุณสามารถไปถึง 50mbps ไม่ได้หมายความว่าคุณจะได้รับ 50mbps เสมอ เส้นทางเครือข่ายไปยัง S3 รวมถึงเวลาแฝงก็มีความสำคัญเช่นกัน

หากคุณสามารถใช้การอัปโหลดหลายส่วนคุณจะสามารถแบ่งไฟล์ออกเป็นหลาย ๆ ชิ้นและอัปโหลดโดยใช้หลายเธรดซึ่งอาจเพิ่มความเร็วในการอัพโหลด


1
การอัปโหลดไฟล์เดียวกันไปยังอินสแตนซ์ m1.medium EC2 ผ่าน SCP จาก Linode ของฉันทำงานที่ 44 Mb / s (ตามiftopดังนั้นการบีบอัดไม่สำคัญ) ซึ่งอยู่ใกล้กับแบนด์วิดท์สูงสุด 50 Mb / s การอัปโหลด S3 นั้นเร็วประมาณหนึ่งในห้า การs3cmdสนับสนุนล่าสุดอัปโหลดหลายส่วน แต่ไม่ได้อัปโหลดพร้อมกัน แต่แทนที่จะติดต่อกัน มียูทิลิตี้ที่ดีกว่าในการอัพโหลดไปยัง S3 หรือไม่?
Tom Marthenal

ฉันได้เพิ่มสถิติความเร็วจาก SCP (ตัวอย่าง Linode -> EC2 ของฉัน) ในคำถามของฉัน
Tom Marthenal

คุณเคยลองใช้เครื่องมืออื่น ๆ ที่คล้ายกับ s3cmd เพื่อทำการทดสอบหรือไม่? นี่คือการตรวจสอบว่ามันไม่ได้เป็นจริง s3cmd ที่ช้า นอกจากนี้ในกรณีที่ s3cmd กำลังอัปโหลดผ่าน HTTPS คุณอาจต้องการลองเปลี่ยนเป็น HTTP อีกแนวคิดหนึ่งคือ S3 นั้นเกิดขึ้นช้ากว่าการอัพโหลดเนื่องจากดูเหมือนว่าคุณจะไม่มีปัญหากับ EC2
gekkz

4
ลอง s3multiput
EEAA

11

ในกรณีที่ทุกคนสะดุดกับเรื่องนี้ ....

ฉันมีปัญหาในการอัปโหลดจากอินสแตนซ์ ec2 ไปยังที่ฝากข้อมูล s3 ช้ามากกลายเป็นเรื่องง่ายจริง ๆ ภูมิภาคของที่เก็บข้อมูล! ฉันใช้อินสแตนซ์ของ ec2 ในแคลิฟอร์เนียตอนเหนือเมื่อถังถูกสร้างขึ้นตามมาตรฐานของเรามันช้ามากในการถ่ายโอนโดยที่ที่ฝากข้อมูลตั้งค่าไว้ที่แคลิฟอร์เนียตอนเหนือมันก็เร็วกว่ามาก


1

ฉันได้เห็นหลายกระทู้ในฟอรัมเกี่ยวกับการอัปโหลด S3 ที่ช้าโดยใช้ไคลเอนต์ต่าง ๆ เช่นเครื่องมือบรรทัดคำสั่งฟรี (เขียนด้วย Python, btw) และโฆษณาเชิงพาณิชย์

แม้ว่าฉันจะไม่มีหลักฐานที่แน่ชัดสำหรับคุณการเปลี่ยนไคลเอนต์ S3 (เช่น Cloud Berry Explorer) อาจช่วยแก้ปัญหาของคุณได้ ลองมัน! :)


3
บนเซิร์ฟเวอร์ที่ไม่มีหัว? อย่าคิดอย่างนั้น
EEAA

ให้เขา / เธอลองลูกค้าคนอื่นก่อนตัดสิน มี s3cp เป็นตัวอย่าง
Valentin

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