Làm thế nào để tối ưu hóa tốc độ Internet Ubuntu với cài đặt MTU
Trong khi các văn bản máy tính khác nhau trong việc áp dụng thuật ngữ, Ubuntu sử dụng TCP Maximum Transmission Unit (MTU) để tham khảo kích thước lớn nhất mà gói tin TCP có thể truyền qua kết nối mạng TCP / IP. Trong khi tính toán giá trị này là tương đối đơn giản và mặc định làm việc trên phần lớn các máy, nó có thể có thể tiếp tục tối ưu hóa hệ thống của bạn nếu các gói được phân mảnh vì các thiết lập bất thường. Việc gửi các gói gửi đi đơn lớn sẽ hiệu quả hơn gửi nhiều gói gửi đi nhỏ hơn.
Cách dễ nhất để tìm ra giá trị MTU chính xác cho máy của bạn là mở một cửa sổ đầu cuối. Giữ phím CTRL, ATL và T hoặc có thể bắt đầu từ dấu gạch ngang Unity. Nếu bạn đang làm việc với Ubuntu Server, thì bạn sẽ mặc định là một giao diện CLI không có môi trường đồ họa nào cả. Một khi bạn đang ở nhà ga, gõ ping-1464 -c1 distrowatch.com và chờ cho đầu ra. Nếu bạn không nhận được gì, kết nối mạng của bạn chưa được định cấu hình chính xác. Giả sử bạn nhận được đầu ra thích hợp, sau đó tìm một phần đọc 1464 (1492) byte dữ liệu, cho biết bạn đang gửi gói với 28 byte thông tin tiêu đề.
Phương pháp 1: Kiểm tra đầu ra ping cho phân đoạn gói
Lệnh ping sẽ cho bạn biết nếu gói được gửi dưới dạng nhiều phân đoạn có đính kèm nhiều dữ liệu tiêu đề. Kiểm tra đầu ra cho bất kỳ dòng cảnh báo về một cái gì đó liên quan đến Frag cần thiết và DF thiết lập (mtu = 1492) hoặc bất kỳ văn bản tương tự. Tùy thuộc vào phiên bản ping nào được bao gồm trong phiên bản Ubuntu của bạn, cảnh báo có thể được diễn đạt khác nhau. Nếu văn bản này không có, thì nhiều khả năng bạn đã làm việc với một số phép đo MTU không gửi đi các gói phân mảnh ở thời điểm hiện tại.
Để tìm MTU được tối ưu hóa nhất cho hệ thống của bạn, bạn sẽ muốn chạy lệnh ping này với kích thước gói nhỏ, và sau đó tăng thời gian cho đến khi nó bắt đầu phân mảnh sau đó bạn xem điểm cắt này. Hãy nhớ rằng MTU = payload + 28, vì cần phải có một số chỗ cho dữ liệu tiêu đề. Bây giờ, nếu bạn có thể tăng kích thước cho một cái gì đó rất lớn mà không có bất kỳ mảnh vỡ nào, thì giao diện mạng của bạn có thể xử lý các gói dữ liệu khổng lồ mà không cần tạo các đoạn. Khi bạn cuối cùng thấy một cảnh báo Frag cần thiết, điều này có nghĩa rằng bất kỳ gói tin nào được gửi với một tải trọng kích thước bạn chạy hoặc cao hơn sẽ gửi như nhiều gói. Giả sử rằng nếu bạn thử ping-2464 -1 distrowatch.com mà không có bất kỳ cảnh báo nào, nhưng ping-2465 -1 distrowatch.com sẽ gửi một cảnh báo, điều này có nghĩa là 2.464 + 28 là cài đặt MTU lớn nhất mà cấu hình TCP / IP của bạn có thể xử lý trước khi gửi nhiều gói bị phân mảnh. Có thể mất vài phút để xác định chính xác giá trị.
Một khi bạn có một giá trị trong tâm trí từ chạy lệnh ping nhiều lần, bạn sẽ cần phải chạy sudo ifconfig để tìm danh sách các giao diện mạng đã biết. Ubuntu và các dẫn xuất của nó băm ra khỏi tài khoản gốc, nhưng chúng ta hoạt động từ một trình bao được tạo bởi sudo bash cho các ví dụ của chúng ta. Đó là khuyến cáo bạn thay vì chỉ cần bắt đầu mỗi lệnh với sudo cá nhân.
Ngay sau khi bạn biết thiết bị chính xác, hãy thử:
sudo ifconfig interfaceName mtu ####
Thay thế interfaceName bằng tên của adapter mạng mà bạn đang làm việc, và sau đó thay thế #### bằng kích thước bạn tìm thấy cộng với 28 cho thông tin tiêu đề. Bạn có thể chạy ifconfig để xem MTU mặc định là gì cho NIC của bạn và chạy lại nhiều lần để xem lệnh trước đó có thay đổi nó hay không. Một số bộ điều hợp giao diện mạng đơn giản sẽ không cho phép bạn thay đổi nó. Nếu đó là trường hợp, sau đó tối ưu hóa hơn nữa sẽ không kết quả là không may. Nếu, tuy nhiên, điều này làm việc, sau đó bạn thực sự có thể làm cho nó vĩnh viễn. Thử chạy ifconfig | grep MTU để tìm tất cả các giá trị nếu bạn có nhiều trình kết nối và sau đó bạn có thể đối sánh các giá trị với các trình kết nối bạn đang làm việc.
Phương pháp 2: Tạo thanh tối ưu hóa MTU
Cho đến nay bạn đã không thực hiện thay đổi vĩnh viễn cho hệ thống của mình. Nếu bạn khởi động lại, sau đó bạn sẽ xóa mọi thay đổi, điều này rất tốt nếu bạn đã phạm phải một số lỗi và thấy rằng bạn không thể kết nối Internet nữa. Mặt khác, nếu bạn đã tìm thấy giá trị chính xác cho MTU của mình, thì bạn sẽ cần phải chỉnh sửa tài liệu. Đây có lẽ là thời điểm tốt để tạo một bản sao của nó trong trường hợp có điều gì đó xảy ra. Thử hoặc một cái gì đó tương tự để bạn có một bản sao chỉ trong trường hợp. Nếu bạn muốn chỉnh sửa đồ họa, sau đó nhập và nhập mật khẩu của bạn. Nếu bạn đang sử dụng Kubuntu, Xubuntu hoặc Lubuntu, thì bạn sẽ cần phải thay thế gedit bằng trình soạn thảo văn bản đồ họa mà respin Ubuntu của bạn sử dụng. Xubuntu, ví dụ, sử dụng mousepad thay vì gedit. Nếu bạn đang sử dụng Ubuntu Server hoặc chỉ đơn giản là thích làm việc với các dòng lệnh, sau đó thay vào đó gõ , giả sử bạn không sử dụng trình bao gốc.
Bất kể bạn sử dụng phương pháp nào để chỉnh sửa nó, hãy tìm tên của giao diện ifconfig nhổ ra trước đó. Giả sử bạn đang xem xét kết nối Wifi đầu tiên trên máy của bạn, có thể có tên là wlan0 hoặc một cái gì đó tương tự. Trong trường hợp này, hãy tìm một đoạn mã bắt đầu bằng iface wlan0 inet static hoặc một cái gì đó tương tự. Số dặm của bạn có thể thay đổi, nhưng dòng tiếp theo sẽ đọc địa chỉ theo sau là địa chỉ IP ở định dạng ###. ###. #. ##. Nó có thể được định dạng khác nếu bạn đang sử dụng kết nối IPv6. Bạn sẽ có một netmask và gateway, theo sau là một cái gì đó liệt kê một tên máy chủ hoặc một cái gì đó tương tự. Ở phía dưới, bạn sẽ có một dòng khác đọc mtu và một số. Thay thế số đó bằng giá trị MTU tối ưu hóa, lưu tài liệu và sau đó thoát khỏi trình soạn thảo văn bản. Bạn sẽ muốn khởi động lại hệ thống để đảm bảo nó hoạt động.
Nếu mọi thứ đều ổn sau vài lần khởi động lại, sau đó xóa tệp interfaces.bak trong thư mục ~ / Documents của bạn. Thay vào đó bạn có thể sử dụng sudo mv và sau đó
nếu có bất cứ điều gì xấu đi trong tiến trình.
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đâyPhương pháp 3: Chỉnh sửa cài đặt cửa sổ nhận TCP (RWIN)
Ubuntu đề cập đến số lượng dữ liệu lớn nhất mà một máy chủ chấp nhận trước khi nó thừa nhận người gửi là giá trị RWIN. Nếu bạn tải xuống tệp 30 MB, thì máy chủ từ xa không thực sự gửi ngay cho bạn khối dữ liệu 30 MB. Máy chủ Ubuntu của bạn gửi một số RWIN cụ thể khi nó yêu cầu tệp và sau đó máy chủ bắt đầu truyền dữ liệu cho đến khi nó đạt đến số byte trước khi nó chờ xác nhận rằng hệ thống của bạn đã nhận dữ liệu. Khi máy chủ nhận được thông báo này, máy chủ sẽ bắt đầu gửi các khối bổ sung trước khi chờ xác nhận khác.
Độ trễ là thời gian cần để truyền và nhận gói từ máy chủ từ xa. Tỷ lệ kết nối đóng góp vào giá trị này, nhưng cũng có rất nhiều sự chậm trễ khác. Lệnh ping sẽ giải thích độ trễ về số lượng thời gian khứ hồi (RTT). Nhìn vào đầu ra từ ping trước của chúng ta về DistroWatch. Bạn sẽ tìm thấy một dòng có thời gian = 134 ms, mất bao lâu để các gói tin đi vòng quanh từ máy Ubuntu của chúng tôi đến distrowatch.com và ngược lại. Chúng tôi đã gửi gói 1.492 byte, vì vậy ở 134 mili giây, chúng tôi có thể tính toán công thức để tìm tốc độ truyền tổng số:
1, 492 / .134 giây = 11, 134, 328 byte / giây, xuất hiện khoảng 10, 88 kilobyte / giây. Đó là khá chậm tổng thể, đó là lý do tại sao RWIN được đặt ra để giữ cho bạn khỏi phải thừa nhận mỗi gói được gửi riêng lẻ.
Cài đặt RWIN trong Ubuntu tách biệt với cài đặt MTU. Tính toán sản phẩm trì hoãn băng thông (BDP) cho kết nối Internet của bạn với công thức này:
(Tổng băng thông tối đa mà kết nối Internet của bạn sẽ cung cấp bằng Byte / giây) (RTT trong giây) = BDP
Kích thước gói TCP không ảnh hưởng đến RWIN, nhưng kích thước gói tin chính nó bị ảnh hưởng bởi giá trị được chọn trong Phương pháp 1. Sử dụng lệnh này để tìm các biến nhân có liên quan đến RWIN:
Hãy nhớ rằng có một khoảng trống sau _mem, nhưng không có chỗ nào khác trong văn bản được trích dẫn. Bạn sẽ nhận được một vài giá trị trở lại. Những cái cần thiết là net.ipv4.tcp_rmem, net.ipv4.tcp_wmem và net.ipv4.tcp_mem . Các con số sau khi các giá trị này đại diện cho các giá trị tối thiểu, mặc định và tối đa cho mỗi giá trị. Chúng đại diện cho vector bộ nhớ cửa sổ nhận, gửi vector ngăn xếp vectơ và TCP. Nếu bạn đang chạy Ubuntu Kylin, thì bạn có thể có một danh sách dài những cái bổ sung. Bạn có thể bỏ qua bất kỳ giá trị bổ sung nào một cách an toàn. Một số người dùng Kylin cũng có thể thấy một số giá trị được mô tả trong các tập lệnh khác, nhưng một lần nữa đơn giản là tìm những dòng này.
Ubuntu không có biến RWIN, nhưng net.ipv4.tcp_rmem vẫn đóng. Các biến này kiểm soát việc sử dụng bộ nhớ và không chỉ kích thước TCP. Chúng bao gồm bộ nhớ ăn bởi cấu trúc ổ cắm dữ liệu và các gói tin ngắn trong bộ đệm lớn. Nếu bạn muốn tối ưu hóa các giá trị này, hãy gửi các gói kích thước tối đa mà bạn đã đặt trong Phương thức 1 đến một máy chủ từ xa khác. Hãy sử dụng giá trị mặc định là 1, 492 byte, trừ đi 28 byte cho thông tin tiêu đề, nhưng hãy nhớ rằng bạn có thể có một giá trị khác. Sử dụng lệnh ping -s 1464 -c5 distrowatch.com để nhận dữ liệu RTT bổ sung.
Bạn sẽ muốn chạy thử nghiệm này nhiều hơn một lần vào những thời điểm khác nhau trong ngày và đêm. Hãy thử ping một số máy chủ từ xa khác để xem có bao nhiêu RTT thay đổi. Vì chúng tôi có trung bình khoảng 130 ms mỗi lần chúng tôi thử, chúng tôi có thể sử dụng công thức để tìm ra BDP của chúng tôi. Giả sử bạn đang kết nối 6 Mbits / giây rất chung chung. BDP sẽ là:
(6.000.000 bit / giây) (. 133 giây) * (1 byte / 8 bit) = 99, 750 byte
Điều này có nghĩa là giá trị net.ipv4.tcp_rmem mặc định phải ở khoảng 100.000. Bạn có thể thiết lập nó thậm chí còn cao hơn nếu bạn sợ rằng bạn sẽ nhận được một RTT xấu như nửa giây. Tất cả các giá trị tìm thấy trong net.ipv4.tcp_rmem và net.ipv4.tcp_wmem cần phải được thiết lập giống nhau, vì việc truyền và nhận các gói xảy ra trên cùng một kết nối Internet. Nói chung, bạn sẽ muốn đặt net.ipv4.tcp_mem thành cùng một giá trị được sử dụng bởi net.ipv4.tcp_wmem và net.ipv4.tcp_rmem vì biến đầu tiên này là tổng kích thước bộ nhớ đệm lớn nhất được đặt cho các giao dịch TCP.
Đưa ra lệnh và xem liệu cả hai cài đặt này được đặt thành 0 hay 1, cho biết trạng thái tắt hoặc bật.
Đặt net.ipv4.tcp_no_metrics_save thành 1 sẽ buộc hạt nhân Linux tối ưu hóa cửa sổ nhận giữa các giá trị net.ipv4.tcp_rmem và net.ipv4.tcp_wmem theo kiểu động. Khi net.ipv4.tcp_moderate_rcvbuf được kích hoạt, nó ngăn cản tắc nghẽn ảnh hưởng đến kết nối tiếp theo. Trước khi thực hiện bất kỳ thay đổi vĩnh viễn nào, hãy tiến hành kiểm tra tốc độ thông qua http://www.speedtest.net hoặc http://www.bing.com/search?q=speed+test để đảm bảo rằng bạn có thể xử lý các phép đo của mình.
Tạm thời thay đổi các biến với các giá trị được tính toán của bạn. Đảm bảo thay thế số # bằng số tiền đã tính của bạn.
sudo sysctl -w net.ipv4.tcp_rmem = #### ##### ###### net.ipv4.tcp_wmem = #### ##### ###### net.ipv4. tcp_mem = #### ##### ###### net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_moderate_rcvbuf = 1
Hãy kiểm tra lại kết nối của bạn để xem tốc độ đã được cải thiện hay chưa và nếu không, hãy chỉnh lại lệnh của bạn và chạy lại. Hãy nhớ rằng bạn có thể đẩy phím lên trong thiết bị đầu cuối của bạn để lặp lại lệnh được sử dụng lần cuối. Khi bạn đã tìm thấy các giá trị thích hợp, hãy mở với lệnh gksu hoặc sudo text editor từ Phương pháp 1 và chỉnh sửa các dòng để đọc như sau, một lần nữa thay thế các dòng bằng các giá trị được tính của bạn. Dĩ nhiên bạn sẽ muốn sao lưu tập tin giống như cách bạn đã làm trong phần một chỉ trong trường hợp bạn mắc lỗi. Nếu bạn đã thực hiện một, sau đó bạn cũng có thể khôi phục trong cùng một thời trang là tốt.
net.ipv4.tcp_rmem = #### ##### ######
net.ipv4.tcp_wmem = #### ##### ######
net.ipv4.tcp_mem = #### ##### ######
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
Lưu nó một khi bạn chắc chắn mọi thứ đều ổn. Đưa ra lệnh sau:
sudo sysctl -p
Điều này sẽ buộc nhân Linux phải tải lại các thiết lập trong và nếu tất cả diễn ra suôn sẻ thì nó sẽ cung cấp cho bạn ít nhất một kết nối mạng nhanh hơn một chút. Tùy thuộc vào mặc định ban đầu của bạn, sự khác biệt thực sự có thể là đáng kể hoặc có khả năng không đáng chú ý chút nào.
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây