
Kỹ nghệ hiệu năng không nên dừng ở số trung bình hoặc một giá trị P99. Adrian Cockcroft đề xuất xem toàn bộ phân bố độ trễ, xác định các nhóm phản hồi khác nhau rồi truy vết từng yêu cầu chậm. AI có thể biến phương pháp phân tích đó thành công cụ, nhưng chuyên gia vẫn phải chọn vấn đề và nhận ra tín hiệu bất thường.
Trong cuộc trò chuyện với nhà phân tích Rachel Stephens tại P99 CONF, Cockcroft nhìn lại quá trình kỹ nghệ hiệu năng chuyển từ đọc mã nhân hệ thống sang dùng AI để tạo công cụ phân tích riêng. Theo The New Stack, ông đã dành nhiều thập kỷ để kiến trúc, mở rộng và tối ưu các hệ thống có khả năng phục hồi tại Sun Microsystems, Netflix, eBay và Amazon.
Kinh nghiệm của Cockcroft trải dài từ hiệu năng Solaris và tối ưu hệ thống đa bộ xử lý đến quá trình Netflix chuyển từ hạ tầng tại chỗ lên đám mây cùng dự án Chaos Monkey. Điểm nhất quán trong cách ông làm việc không nằm ở một công nghệ cụ thể. Ông tìm phần mà công cụ hiện có chưa cho thấy.
Nội dung: từ mã nhân hệ thống đến công cụ do AI hỗ trợ
Cockcroft tiếp cận kỹ nghệ hiệu năng bằng cách xác định chính xác dữ liệu được tạo ra như thế nào và công cụ hiện tại đang bỏ sót điều gì. Trước đây, ông đọc mã nguồn nhân hệ thống để hiểu từng chỉ số. Hiện nay, ông dùng AI để hiện thực hóa nhanh các công cụ phân tích tùy chỉnh.
Khi còn là chuyên gia hiệu năng tại Sun, Cockcroft thường thấy mọi người nhìn số liệu do vmstat hoặc công cụ tương tự cung cấp rồi đoán ý nghĩa. Tài liệu hướng dẫn không giải thích đủ rõ, còn cách hiểu về các chỉ số vẫn khá mơ hồ.
Ông giải quyết vấn đề bằng cách đọc toàn bộ mã nguồn nhân hệ thống để xác định từng con số được tạo ra ở đâu, thực sự biểu thị điều gì và chỉ số nào chỉ là giá trị xấp xỉ. Cockcroft ghi lại kết quả nghiên cứu đó trong hai cuốn sách Sun Performance and Tuning và Resource Management.
Bốn thập kỷ sau, kỹ sư đã có nhiều công cụ theo dõi toàn bộ đường đi của một yêu cầu. Dù vậy, Cockcroft vẫn chú ý đến những lúc bảng đo trông tương đối bình thường nhưng hệ thống lại vận hành không tốt. Khi đó, ông tìm cách nhìn dữ liệu khác, tăng độ chi tiết hoặc chuyển từ số trung bình sang toàn bộ phân bố.
“Mức tăng tốc của tôi là vô hạn, vì nếu không có những công cụ này thì đoạn mã đó sẽ không bao giờ tồn tại. Tôi không có thời gian để tự xây dựng chúng.”
AI rút ngắn khâu xây dựng công cụ
AI giúp Cockcroft dựng công cụ tùy chỉnh chỉ trong vài phút mà không cần ôn lại Python hay tìm từng phần của thư viện đồ họa. Trường hợp này cho thấy tác tử AI viết mã có thể giúp chuyên gia chuyển một phương pháp phân tích đã có thành phần mềm sử dụng được. AI không tự quyết định vấn đề cần nghiên cứu.
Nguyên tắc tương tự áp dụng khi đưa AI vào vận hành hạ tầng AI. Công cụ rút ngắn thời gian hiện thực hóa một ý tưởng, còn câu hỏi phân tích vẫn đến từ người hiểu hệ thống và nhận ra điều bất thường trong dữ liệu.
Nhìn vào các đỉnh thay vì chỉ nhìn phân vị
Một giá trị P99 không cho biết phân bố độ trễ có một đỉnh hay nhiều đỉnh. Cockcroft cho rằng kỹ sư cần xem cấu trúc đầy đủ của phân bố, vì mỗi đỉnh có thể tương ứng với một kiểu xử lý khác nhau. Theo dõi riêng từng đỉnh giúp giải thích biến động mà P99 che khuất.
Một công cụ Cockcroft xây dựng và công bố mã nguồn tập trung vào phân bố thời gian phản hồi. Ông đã nghiên cứu chủ đề này hơn một thập kỷ và cho rằng các phân vị không đủ để giải thích độ trễ của dịch vụ web hiện đại.
“Các phân vị không hiệu quả khi chúng ta cố hiểu độ trễ và hiệu năng của dịch vụ web hiện đại.”
P99 chỉ là một con số. Nó không cho biết phân bố bên dưới có một đỉnh hay nhiều đỉnh. Khi dữ liệu có nhiều đỉnh, điều thường xảy ra trong hệ thống thực tế, giá trị trung bình, độ lệch chuẩn và ngay cả P99 đều mất phần lớn ý nghĩa phân tích.
Hai đỉnh giải thích biến động của P99
Cockcroft minh họa bằng một biểu đồ có hai đỉnh thời gian phản hồi. Đỉnh nhanh xuất hiện khi hệ thống tìm thấy dữ liệu trong bộ nhớ đệm. Đỉnh chậm thuộc về các lượt không tìm thấy dữ liệu và phải thực hiện công việc thực tế.
Khi tỷ lệ tìm thấy dữ liệu trong bộ nhớ đệm thay đổi, vị trí của hai đỉnh vẫn giữ nguyên. Độ trễ của nhóm phản hồi nhanh và nhóm phản hồi chậm không đổi. Chỉ chiều cao của mỗi đỉnh tăng hoặc giảm theo số lượng yêu cầu thuộc từng nhóm.
Vì vậy, giá trị trung bình và P99 có thể biến động mạnh dù thay đổi thực tế chỉ là tỷ lệ tìm thấy dữ liệu trong bộ nhớ đệm. Nếu chỉ theo dõi một phân vị, đội kỹ thuật sẽ thấy kết quả thay đổi nhưng không nhìn ra cấu trúc đã tạo nên thay đổi đó.
ChatGPT biến phương pháp thống kê thành công cụ
Cockcroft dùng ChatGPT để tự động hóa một phương pháp thống kê mà ông đã xác định từ trước. Công cụ nhận diện nhiều đỉnh trong phân bố và theo dõi từng đỉnh theo thời gian. Vai trò của AI là viết phần mềm cần thiết, không phải thay chuyên gia lựa chọn phương pháp phân tích.
Thay vì nén toàn bộ dữ liệu thành một giá trị trung bình, công cụ nhận diện số lượng đỉnh bất kỳ trong phân bố rồi theo dõi cách từng đỉnh biến động theo thời gian. Phần mềm được viết bằng R, một ngôn ngữ Cockcroft đã lâu không sử dụng nhưng ChatGPT nắm khá rõ, và mã nguồn được công bố công khai.
Trường hợp này cho thấy tác tử AI viết mã có thể hiện thực hóa một phương pháp thống kê do chuyên gia xác định. Với Cockcroft, lợi ích cụ thể là một công cụ phân tích cần thiết đã được tạo ra bằng R để nhận diện nhiều đỉnh trong phân bố. Nếu phải tự làm toàn bộ, ông sẽ không có thời gian xây dựng nó.
Bắt đầu rộng rồi đào sâu đến từng yêu cầu
Cockcroft khuyên các đội kỹ thuật bắt đầu bằng góc nhìn toàn cảnh, tìm tín hiệu đáng chú ý rồi tăng dần độ chi tiết. Mục tiêu cuối cùng là kiểm tra toàn bộ đường đi của từng yêu cầu chậm. Trình tự này giúp đội tập trung vào dữ liệu bất thường trước khi đi sâu vào nguyên nhân.
Ông ví quá trình này với cách sử dụng kính hiển vi. Theo lời Cockcroft tại P99 CONF, người dùng bắt đầu ở độ phóng đại 10 lần để lấy nét, chuyển lên 100 lần để quan sát một điểm nhỏ hơn, rồi tăng đến 1.000 lần sau khi hình ảnh đã rõ.
Phép so sánh đó tóm gọn phương pháp Cockcroft theo đuổi trong suốt sự nghiệp: quan sát hệ thống ở phạm vi rộng, nhận diện tín hiệu bất thường, sau đó tăng dần độ chi tiết. AI không thay thế quá trình suy luận này. Nó giúp chuyên gia tạo nhanh những công cụ cần thiết để nhìn thấy phần dữ liệu đang bị che khuất.
Với một vấn đề hiệu năng khó giải thích, hãy kiểm tra toàn bộ phân bố trước khi kết luận từ một giá trị P99 duy nhất.


