Tôi đã bật SSL trên máy chủ proxy của mình và nhận thấy hiệu suất đã giảm từ khoảng 17 nghìn yêu cầu mỗi giây xuống còn 5k yêu cầu mỗi giây. Tôi đã theo mã trong ví dụ trò chuyện an toàn của Netty và tôi không nghĩ mình đã làm gì khác đi.Làm cách nào để tăng hiệu suất SSL máy chủ
Tôi đã viết một máy chủ giả để xem tôi đã phạm phải một số lỗi trên proxy của mình chưa. Chạy máy chủ SSL giả ở chế độ http bình thường có khả năng yêu cầu khoảng 50k mỗi giây. Khi tôi bật SSL trên máy chủ giả sẽ giảm xuống 28 nghìn yêu cầu mỗi giây.
Có điều gì tôi đang làm sai không? Có cái gì tôi đang mất tích?
Tôi đang sử dụng JDK 6 để biên dịch mã, chạy trên JDK 7u4. Tôi đang sử dụng Netty-3.5.0. Tôi đang sử dụng zeusbench để chạy thử nghiệm. Các thông số kiểm tra bao gồm: zeusbench -n 10000 -c 100 -k C RC4_SHA "https: ///"
Nguồn: http://pastebin.com/iahqr3zT
Sửa 1: tôi đã chạy máy chủ giả qua JProfiler. Cuộc gọi SSLContext.createSSLEngine trong nhà máy đường ống mất (trung bình) 55.005 micro giây (trung bình đã được tính từ 540 lần gọi phương thức).
Cuộc gọi SslHandler.handshake trong kênhKết nối mất (trung bình) 46,284 micro giây (trung bình đã được tính từ 540 lần gọi phương thức).
Tôi hiểu không có nhiều Netty có thể thực hiện cuộc gọi để tạo raSSLEngine, nhưng SslHandler.handshake có thể được điều chỉnh tốt hơn không? Việc của nó gần như miễn là thế hệ của động cơ chính nó.
Bạn có khả năng chấm dứt SSL trước khi yêu cầu đến máy chủ của bạn không? Lý tưởng nhất là bạn có thể sử dụng phần cứng chuyên dụng để chấm dứt SSL. Amazons Elastic Load Balancer cũng có thể làm điều này. Độ dài của khóa SSL là bao nhiêu? Độ dài của khóa có tác động đến hiệu suất http://www.javamex.com/tutorials/cryptography/rsa_key_length.shtml –
@JohnP Cảm ơn bạn đã trả lời. Chấm dứt SSL trước khi đến máy chủ của tôi không phải là một khả năng. Cảm ơn bạn đã biết mẹo về độ dài của khóa SSL, 2048 – blucas