Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Hơn một tỷ địa chỉ IP duy nhất đi qua Mạng Cloudflare mỗi ngày; nó phục vụ hơn 11 triệu yêu cầu HTTP mỗi giây; cô ấy ở trong phạm vi 100 mili giây của 95% dân số sử dụng Internet. Mạng lưới của chúng tôi trải rộng trên 200 thành phố ở hơn 90 quốc gia và đội ngũ kỹ sư của chúng tôi đã xây dựng cơ sở hạ tầng cực kỳ nhanh chóng và đáng tin cậy.

Chúng tôi rất tự hào về công việc của mình và cam kết giúp biến Internet thành một nơi tốt hơn và an toàn hơn. Các kỹ sư phần cứng của Cloudflare có hiểu biết sâu sắc về máy chủ và các thành phần của chúng để hiểu và chọn phần cứng tốt nhất nhằm tối đa hóa hiệu suất của nó.

Ngăn xếp phần mềm của chúng tôi xử lý tính toán tải cao và phụ thuộc nhiều vào CPU, đòi hỏi các kỹ sư của chúng tôi phải liên tục tối ưu hóa hiệu quả và độ tin cậy của Cloudflare ở mọi cấp độ của ngăn xếp. Về phía máy chủ, cách dễ nhất để tăng sức mạnh xử lý là thêm lõi CPU. Máy chủ càng có nhiều lõi thì càng có thể xử lý nhiều dữ liệu hơn. Điều này rất quan trọng đối với chúng tôi vì sự đa dạng của sản phẩm và khách hàng của chúng tôi ngày càng tăng theo thời gian và sự gia tăng của các yêu cầu đòi hỏi hiệu suất từ ​​máy chủ phải tăng lên. Để tăng hiệu suất của chúng, chúng tôi cần tăng mật độ lõi - và đây chính xác là những gì chúng tôi đã đạt được. Dưới đây chúng tôi cung cấp dữ liệu chi tiết về bộ xử lý cho các máy chủ mà chúng tôi đã triển khai từ năm 2015, bao gồm số lượng lõi:

-
Gen 6
Gen 7
Gen 8
Gen 9

Bắt đầu
2015
2016
2017
2018

CPU
Intel Xeon E5 2630 v3
Intel Xeon E5 2630 v4
Intel Xeon Bạc 4116
Intel Xeon bạch kim 6162

Lõi vật lý
2 x 8
2 x 10
2 x 12
2 x 24

TDP
2 x 85W
2 x 85W
2 x 85W
2 x 150W

TDP mỗi lõi
10.65W
8.50W
7.08W
6.25W

Năm 2018, chúng tôi đã có bước nhảy vọt lớn về tổng số lõi trên mỗi máy chủ với Gen 9. Tác động đến môi trường đã giảm 33% so với thế hệ thứ 8, mang lại cho chúng tôi cơ hội tăng khối lượng và sức mạnh tính toán trên mỗi giá đỡ. Yêu cầu thiết kế tản nhiệt (Nhiệt kế điện, TDP) được đề cập để nhấn mạnh rằng hiệu quả sử dụng năng lượng của chúng tôi cũng đã tăng lên theo thời gian. Chỉ số này rất quan trọng đối với chúng tôi: thứ nhất, chúng tôi muốn thải ít carbon hơn vào khí quyển; thứ hai, chúng tôi muốn tận dụng tốt nhất năng lượng từ các trung tâm dữ liệu. Nhưng chúng tôi biết rằng chúng tôi có điều gì đó để phấn đấu.

Số liệu xác định chính của chúng tôi là số lượng yêu cầu trên mỗi watt. Chúng tôi có thể tăng số lượng yêu cầu mỗi giây bằng cách thêm lõi, nhưng chúng tôi cần duy trì trong phạm vi ngân sách năng lượng của mình. Chúng tôi bị giới hạn bởi cơ sở hạ tầng nguồn điện của trung tâm dữ liệu, cùng với các mô-đun phân phối nguồn đã chọn của chúng tôi, mang lại cho chúng tôi một giới hạn trên nhất định cho mỗi giá máy chủ. Việc thêm máy chủ vào tủ rack sẽ làm tăng mức tiêu thụ điện năng. Chi phí vận hành sẽ tăng đáng kể nếu chúng ta vượt quá giới hạn năng lượng trên mỗi giá đỡ và phải bổ sung thêm các giá đỡ mới. Chúng tôi cần tăng công suất xử lý trong khi vẫn duy trì trong phạm vi tiêu thụ điện năng tương tự, điều này sẽ làm tăng yêu cầu trên mỗi watt, thước đo chính của chúng tôi.

Như bạn có thể đoán, chúng tôi đã nghiên cứu kỹ lưỡng mức tiêu thụ năng lượng ở giai đoạn thiết kế. Bảng trên cho thấy chúng ta không nên lãng phí thời gian triển khai nhiều CPU ngốn nhiều năng lượng hơn nếu TDP trên mỗi lõi cao hơn thế hệ hiện tại - điều này sẽ tác động tiêu cực đến số liệu, yêu cầu trên mỗi watt của chúng tôi. Chúng tôi đã nghiên cứu kỹ lưỡng các hệ thống sẵn sàng chạy cho thế hệ X của chúng tôi trên thị trường và đưa ra quyết định. Chúng tôi đang chuyển từ thiết kế ổ cắm kép Intel Xeon Platinum 48 6162 lõi sang thiết kế ổ cắm đơn AMD EPYC 48 7642 lõi.

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

vi kiến ​​trúc
"Skylake"
“Thiền 2”

Tên mã
Skylake SP
"La Mã"

Quy trình kỹ thuật
14nm
7nm

lõi
2 x 24
48

Tần số
1.9 GHz
2.4 GHz

Bộ đệm/ổ cắm L3
24 x 1.375MiB
16 x 16MiB

Bộ nhớ/ổ cắm
6 kênh, lên tới DDR4-2400
8 kênh, lên tới DDR4-3200

TDP
2 x 150W
225W

PCIe/ổ cắm
48 làn xe
128 làn xe

LÀ MỘT
x86-64
x86-64

Từ các thông số kỹ thuật, rõ ràng con chip của AMD sẽ cho phép chúng ta giữ nguyên số lõi trong khi giảm TDP. Thế hệ thứ 9 có TDP trên mỗi lõi là 6,25 W và thế hệ thứ X sẽ là 4,69 W. Giảm 25%. Nhờ tần số tăng lên và có lẽ là thiết kế đơn giản hơn với một ổ cắm, có thể giả định rằng chip AMD sẽ hoạt động tốt hơn trong thực tế. Chúng tôi hiện đang chạy nhiều thử nghiệm và mô phỏng khác nhau để xem AMD sẽ hoạt động tốt hơn như thế nào.

Hiện tại, hãy lưu ý rằng TDP là số liệu đơn giản hóa dựa trên thông số kỹ thuật của nhà sản xuất mà chúng tôi đã sử dụng trong giai đoạn đầu của thiết kế máy chủ và lựa chọn CPU. Một tìm kiếm nhanh trên Google cho thấy AMD và Intel có những cách tiếp cận khác nhau để xác định TDP, khiến thông số kỹ thuật không đáng tin cậy. Mức tiêu thụ điện năng thực của CPU và quan trọng hơn là mức tiêu thụ điện năng của máy chủ là những gì chúng tôi thực sự sử dụng khi đưa ra quyết định cuối cùng.

Sự sẵn sàng của hệ sinh thái

Để bắt đầu hành trình chọn bộ xử lý tiếp theo, chúng tôi đã xem xét nhiều loại CPU từ các nhà sản xuất khác nhau phù hợp với nhóm phần mềm và dịch vụ của chúng tôi (được viết bằng C, LuaJIT và Go). Chúng tôi đã mô tả chi tiết một bộ công cụ để đo tốc độ trong một trong những bài viết trên blog của chúng tôi. Trong trường hợp này, chúng tôi đã sử dụng cùng một bộ - nó cho phép chúng tôi đánh giá hiệu quả của CPU trong một khoảng thời gian hợp lý, sau đó các kỹ sư của chúng tôi có thể bắt đầu điều chỉnh các chương trình của chúng tôi cho phù hợp với một bộ xử lý cụ thể.

Chúng tôi đã thử nghiệm nhiều bộ xử lý với số lượng lõi, số lượng ổ cắm và tần số khác nhau. Vì bài viết này giải thích lý do tại sao chúng tôi quyết định sử dụng AMD EPYC 7642 nên tất cả biểu đồ trong blog này đều tập trung vào hiệu suất của bộ xử lý AMD so với Intel Xeon Platinum 6162 từ thế hệ thứ 9 của chúng tôi.

Các kết quả tương ứng với các phép đo của một máy chủ với từng biến thể bộ xử lý - nghĩa là với hai bộ xử lý 24 lõi của Intel hoặc với một bộ xử lý 48 lõi của AMD (máy chủ dành cho Intel có hai ổ cắm và máy chủ dành cho AMD EPYC có một). Trong BIOS chúng ta thiết lập các thông số tương ứng với các server đang chạy. Đây là 3,03 GHz cho AMD và 2,5 GHz cho Intel. Đơn giản hóa rất nhiều, chúng tôi kỳ vọng rằng với cùng số lõi, AMD sẽ hoạt động tốt hơn 21% so với Intel.

Mật mã học

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Có vẻ đầy hứa hẹn cho AMD. Nó hoạt động tốt hơn 18% đối với mật mã khóa công khai. Với khóa đối xứng, nó thua các tùy chọn mã hóa AES-128-GCM, nhưng nhìn chung hoạt động tương đương.

Nén

Trên các máy chủ biên, chúng tôi nén nhiều dữ liệu để tiết kiệm băng thông và tăng tốc độ phân phối nội dung. Chúng tôi truyền dữ liệu qua thư viện C zlib và brotli. Tất cả các thử nghiệm đều được chạy trên tệp HTML blog.cloudflare.com trong bộ nhớ.

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

AMD thắng trung bình 29% khi sử dụng gzip. Trong trường hợp của brotli, kết quả thậm chí còn tốt hơn trong các thử nghiệm với chất lượng 7 mà chúng tôi sử dụng để nén động. Trong bài kiểm tra brotli-9 có sự sụt giảm mạnh - chúng tôi giải thích điều này là do Brotli tiêu tốn rất nhiều bộ nhớ và làm tràn bộ nhớ đệm. Tuy nhiên, AMD thắng với tỷ số cách biệt lớn.

Nhiều dịch vụ của chúng tôi được viết bằng Go. Trong các biểu đồ sau, chúng tôi kiểm tra kỹ tốc độ mã hóa và nén trong Go with RegExp trên các dòng 32 KB bằng thư viện chuỗi.

Đi mật mã

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Đi nén

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Chuyển đến biểu thức chính quy

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Đi dây

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

AMD hoạt động tốt hơn trong tất cả các thử nghiệm với Go ngoại trừ ECDSA P256 Sign, chậm hơn 38% - điều này thật kỳ lạ, vì nó hoạt động tốt hơn 24% trong C. Thật đáng để tìm hiểu những gì đang xảy ra ở đó. Nhìn chung, AMD không thắng nhiều nhưng vẫn cho kết quả tốt nhất.

LuaJIT

Chúng tôi thường sử dụng LuaJIT trên ngăn xếp. Đây là chất keo gắn kết tất cả các bộ phận của Cloudflare lại với nhau. Và chúng tôi rất vui vì AMD cũng đã thắng ở đây.

Nhìn chung, các thử nghiệm cho thấy EPYC 7642 hoạt động tốt hơn hai Xeon Platinum 6162. AMD thua trong một số thử nghiệm - ví dụ: AES-128-GCM và Go OpenSSL ECDSA-P256 Sign - nhưng tính trung bình thì thắng tất cả các thử nghiệm khác là 25%.

Mô phỏng khối lượng công việc

Sau các thử nghiệm nhanh, chúng tôi đã chạy các máy chủ thông qua một bộ mô phỏng khác trong đó tải tổng hợp được áp dụng cho ngăn xếp cạnh phần mềm. Ở đây, chúng tôi mô phỏng khối lượng công việc kịch bản với các loại yêu cầu khác nhau có thể gặp trong công việc thực tế. Các yêu cầu khác nhau về khối lượng dữ liệu, giao thức HTTP hoặc HTTPS, nguồn WAF, Công nhân và nhiều biến số khác. Dưới đây là so sánh thông lượng của hai CPU đối với các loại yêu cầu mà chúng ta gặp phải thường xuyên nhất.

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Các kết quả trong biểu đồ được đo dựa trên đường cơ sở của các máy chạy Intel thế hệ thứ 9, được chuẩn hóa thành giá trị 1,0 trên trục x. Ví dụ: lấy 10 yêu cầu KiB đơn giản qua HTTPS, chúng ta có thể thấy rằng AMD thực hiện tốt hơn Intel 1,5 lần về mặt yêu cầu mỗi giây. Trung bình, AMD thực hiện tốt hơn 34% so với Intel trong các thử nghiệm này. Xem xét rằng TDP cho một AMD EPYC 7642 là 225 W và đối với hai bộ xử lý Intel là 300 W, hóa ra xét về “yêu cầu trên mỗi watt” thì AMD cho kết quả tốt hơn 2 lần so với Intel!

Tại thời điểm này, rõ ràng chúng tôi đã nghiêng về tùy chọn ổ cắm duy nhất cho AMD EPYC 7642 làm CPU thế hệ X trong tương lai. Chúng tôi rất quan tâm đến việc các máy chủ AMD EPYC sẽ hoạt động như thế nào trong công việc trong thế giới thực và ngay lập tức chúng tôi đã gửi một số máy chủ đến một số từ trung tâm dữ liệu.

Công việc thực tế

Đương nhiên, bước đầu tiên là chuẩn bị cho các máy chủ hoạt động trong điều kiện thực tế. Tất cả các máy trong nhóm của chúng tôi đều hoạt động với cùng quy trình và dịch vụ, điều này mang lại cơ hội tuyệt vời để so sánh hiệu suất một cách chính xác. Giống như hầu hết các trung tâm dữ liệu, chúng tôi triển khai một số thế hệ máy chủ và chúng tôi thu thập các máy chủ của mình thành các cụm sao cho mỗi lớp chứa các máy chủ có cùng thế hệ. Trong một số trường hợp, điều này có thể dẫn đến đường cong tái chế khác nhau giữa các cụm. Nhưng không phải với chúng tôi. Các kỹ sư của chúng tôi đã tối ưu hóa việc sử dụng CPU cho tất cả các thế hệ để bất kể CPU của một máy cụ thể có 8 lõi hay 24 lõi, việc sử dụng CPU nhìn chung giống như các máy còn lại.

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Biểu đồ minh họa nhận xét của chúng tôi về mức độ sử dụng tương tự - không có sự khác biệt đáng kể giữa việc sử dụng CPU AMD trong máy chủ thế hệ X và việc sử dụng bộ xử lý Intel trong máy chủ thế hệ thế hệ 9. Điều này có nghĩa là cả máy chủ thử nghiệm và máy chủ cơ sở đều được tải như nhau . Tuyệt vời. Đây chính xác là những gì chúng tôi cố gắng đạt được trong các máy chủ của mình và chúng tôi cần điều này để so sánh công bằng. Hai biểu đồ bên dưới hiển thị số lượng yêu cầu được xử lý bởi một lõi CPU và tất cả các lõi ở cấp máy chủ.

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười
Yêu cầu trên mỗi lõi

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười
Yêu cầu tới máy chủ

Có thể thấy, trung bình AMD xử lý nhiều yêu cầu hơn 23%. Không xấu cả! Chúng tôi thường viết trên blog của mình về các cách tăng hiệu suất của Gen 9. Và hiện tại chúng tôi có cùng số lõi, nhưng AMD làm được nhiều việc hơn với ít năng lượng hơn. Từ các thông số kỹ thuật về số lượng lõi và TDP, rõ ràng AMD cung cấp tốc độ cao hơn với hiệu suất năng lượng cao hơn.

Nhưng như chúng tôi đã đề cập, TDP không phải là thông số tiêu chuẩn và không giống nhau đối với tất cả các nhà sản xuất, vì vậy hãy xem xét mức sử dụng năng lượng thực tế. Bằng cách đo mức tiêu thụ năng lượng của máy chủ song song với số lượng yêu cầu mỗi giây, chúng tôi thu được biểu đồ sau:

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười

Dựa trên yêu cầu mỗi giây trên mỗi watt chi tiêu, máy chủ Gen X chạy trên bộ xử lý AMD có hiệu suất cao hơn 28%. Người ta có thể mong đợi nhiều hơn, vì TDP của AMD thấp hơn 25%, nhưng nên nhớ rằng TDP là một đặc điểm không rõ ràng. Chúng tôi thấy rằng mức tiêu thụ năng lượng thực tế của AMD gần như giống với TDP đã nêu ở tần số cao hơn nhiều so với mức cơ bản; Intel không có điều đó. Đây là một lý do khác khiến TDP không phải là ước tính đáng tin cậy về mức tiêu thụ năng lượng. CPU của Intel trong các máy chủ Gen 9 của chúng tôi được tích hợp vào hệ thống nhiều nút, trong khi CPU của AMD hoạt động trong các máy chủ dạng 1U tiêu chuẩn. Điều này không có lợi cho AMD, vì các máy chủ đa nút sẽ cung cấp mật độ lớn hơn với mức tiêu thụ điện năng trên mỗi nút ít hơn, nhưng AMD vẫn vượt qua Intel về mức tiêu thụ điện năng trên mỗi nút.

Trong hầu hết các so sánh về thông số kỹ thuật, mô phỏng thử nghiệm và hiệu suất trong thế giới thực, cấu hình AMD EPYC 1 thứ nhất hoạt động tốt hơn đáng kể so với Intel Xeon 7642 thứ 2. Trong một số điều kiện, AMD có thể hoạt động tốt hơn tới 6162% và chúng tôi tin rằng bằng cách tối ưu hóa phần cứng và phần mềm, chúng ta có thể đạt được sự cải tiến này một cách liên tục.

Hóa ra AMD đã thắng.

Các biểu đồ bổ sung hiển thị độ trễ trung bình và độ trễ p99 chạy NGINX trong khoảng thời gian 24 giờ. Trung bình, các tiến trình trên AMD chạy nhanh hơn 25%. Trên p99 nó chạy nhanh hơn 20-50% tùy theo thời gian trong ngày.

Kết luận

Các kỹ sư về Hiệu suất và Phần cứng của Cloudflare thực hiện rất nhiều thử nghiệm và nghiên cứu để xác định cấu hình máy chủ tốt nhất cho khách hàng của chúng tôi. Chúng tôi thích làm việc ở đây vì chúng tôi có thể giải quyết những vấn đề lớn như thế này và chúng tôi có thể giúp bạn giải quyết vấn đề của bạn bằng các dịch vụ như điện toán biên không có máy chủ và một loạt giải pháp bảo mật như Magic Transit, Argo Tunnel và bảo vệ DDoS. . Tất cả các máy chủ trong mạng Cloudflare đều được định cấu hình để hoạt động đáng tin cậy và chúng tôi luôn cố gắng làm cho mỗi thế hệ máy chủ tiếp theo tốt hơn thế hệ trước. Chúng tôi tin rằng AMD EPYC 7642 là câu trả lời cho bộ xử lý Gen X.

Sử dụng Cloudflare Workers, các nhà phát triển triển khai ứng dụng của họ trên mạng lưới mở rộng của chúng tôi trên toàn thế giới. Chúng tôi tự hào khi cho phép khách hàng tập trung vào việc viết mã trong khi chúng tôi tập trung vào tính bảo mật và độ tin cậy trên đám mây. Và hôm nay, chúng tôi còn vui mừng hơn nữa khi thông báo rằng công việc của họ sẽ được triển khai trên các máy chủ thế hệ X chạy bộ xử lý AMD EPYC thế hệ thứ hai.

Cloudflare chọn bộ xử lý từ AMD cho máy chủ biên thế hệ thứ mười
Bộ xử lý EPYC 7642, tên mã "Rome" [Rome]

Bằng cách sử dụng EPYC 7642 của AMD, chúng tôi có thể tăng hiệu suất và giúp việc mở rộng mạng lưới của mình đến các thành phố mới trở nên dễ dàng hơn. Rome không được xây dựng trong một ngày, nhưng nó sẽ sớm đến gần hơn với nhiều bạn.

Trong vài năm qua, chúng tôi đã thử nghiệm nhiều chip x86 của Intel và AMD, cũng như bộ xử lý của ARM. Chúng tôi hy vọng những nhà sản xuất CPU này sẽ tiếp tục hợp tác với chúng tôi trong tương lai để tất cả chúng ta có thể cùng nhau xây dựng một Internet tốt hơn.

Nguồn: www.habr.com

Thêm một lời nhận xét