Việc sử dụng phân vùng trao đổi SSD của Linux (3.4) gây ra độ trễ cực cao - làm thế nào để loại bỏ?


7

Tôi đang chạy trên RAM 4G với phân vùng trao đổi 6G bổ sung, SSD là model SAMSUNG MZMPA128HMFU khá tốt. Hệ thống đáp ứng rất tốt với khối lượng công việc khi mọi thứ ở trong RAM, nhưng ngay khi mọi thứ đạt đến phân vùng trao đổi với bất kỳ số lượng có ý nghĩa nào (giả sử sử dụng trao đổi 1GB +), khả năng phản hồi sẽ giảm hoàn toàn trong quá trình hoán đổi. Đèn SSD vẫn sáng trong vài giây trong khi dường như vô số thứ bị phân trang vào hoặc ra, trong thời gian này, tất cả các IO khác đều bị chặn. Tôi đã thấy tải hệ thống nhảy từ 0,8 đến 10 trong vài giây, sau đó giảm xuống khi IO sẽ hoạt động trở lại. Khi trao đổi được sử dụng tích cực (tôi giữ một loạt các ứng dụng lớn mở), các tập trao đổi bịt miệng này xảy ra ngày càng thường xuyên hơn khi thời gian hoạt động tăng (lúc 26 ngày nay).

Tôi đang xem latencytop, nhưng nó không cho tôi biết nhiều về việc tôi có thể tiếp tục.

Có vẻ như không có giải pháp nào khác vào thời điểm này ngoài việc dừng đủ các ứng dụng để có thể thực hiện trao đổi -a và chỉ cần ngừng sử dụng trao đổi. Không chắc chắn điều này ảnh hưởng đến các kiểu sử dụng của tôi như thế nào, tôi gần như chắc chắn rằng nó sẽ đủ cho bộ ứng dụng tôi thường xuyên chạy.

Biến vm.swappiness xuống 1 không giúp ích gì cả. Ít nhất là không phải bởi chính nó.

Đây có phải là một số điều nổi tiếng? Các tùy chọn của tôi để có phản ứng tốt của máy tính để bàn trong khi sử dụng bộ nhớ ảo là gì?


7
Sử dụng trao đổi không cần thiết là rất rất ngớ ngẩn . Nếu bạn liên tục cần sử dụng trao đổi cho vật liệu rất tích cực, bạn cần thêm RAM. SSD là đơn đặt hàng có cường độ chậm hơn so với bộ nhớ thực, mặc dù nó nhanh hơn đáng kể so với đĩa quay.
goldilocks

2
Không chắc chắn nơi "không cần thiết" này đến từ đâu. Tôi chạy các ứng dụng của mình để làm việc thực sự. Bạn đang nói rằng sử dụng trao đổi trên Linux có nghĩa vụ khóa hệ thống như thế này bằng thiết kế kernel hoặc trình lập lịch biểu?
lkraav

Không, anh ta nói rằng rõ ràng bạn có quá ít bộ nhớ trong hệ thống để thực hiện các nhiệm vụ của mình. Nếu khối lượng công việc của bạn đòi hỏi nhiều bộ nhớ hơn bạn có, bạn chỉ đơn giản là trong một thế giới đau khổ.
marcelm

Điều đó đang được nói, không phải tất cả các ổ SSD đều được tạo ra như nhau. Một số, đặc biệt là những người già và rẻ hơn, có thể chậm kinh khủng. Tôi đã có một ổ SSD trong máy trạm của mình và ngay khi nó phải thực hiện bất kỳ I / O không tầm thường nào (giả sử 10-20MB / s), nó sẽ khiến Linux không thể hoạt động. Bây giờ tôi có một ổ SSD mới (khá, nhưng không có gì đặc biệt) và mọi thứ đều hoạt động tốt, ngay cả dưới tải I / O.
marcelm

Câu trả lời:


6

Tôi thực sự khuyên bạn nên cài đặt thêm bộ nhớ để không bị tráo đổi. Bất kỳ sự hoán đổi nào cũng chỉ giết chết hiệu năng của hệ thống Linux hoặc UNIX (tm). Vì vậy, cài đặt đủ bộ nhớ để dừng trao đổi!


2
Đúng, nhưng điều này không giải thích nền tảng kỹ thuật của vấn đề. Ví dụ, đã sử dụng OS X cho đến Snow Leopard trong vài năm, tôi không gặp phải loại hành vi này trong các điều kiện và mô hình sử dụng tương tự. Làm thế nào Linux yếu hơn ở đây?
lkraav

@lkraav nền tảng kỹ thuật là rất nhiều tốc độ truyền dữ liệu: RAM là đơn hàng GB / s, SSD ít nhất là một đơn hàng dưới mức đó (cộng với bạn cần phải ghi và đọc nó). Do đó, một khi bạn nhấn trao đổi và hệ thống chỉ cố gắng chuyển các trang cần thiết vào RAM càng nhanh càng tốt, đừng ngạc nhiên khi nó không phản hồi nhanh như trao đổi. Và nếu bạn nhảy từ ứng dụng này sang ứng dụng khác, nó sẽ chỉ khiến mọi thứ tồi tệ hơn.
peterph

1
Phần cứng tương tự với khối lượng công việc tương tự sẽ cung cấp cho bạn sự suy giảm hiệu suất tương tự trên bất kỳ nền tảng nào (Windows, OSX, Linux, Unix, ...). Hoặc bạn đang so sánh hai tình huống khác nhau hoặc phần cứng của bạn đang gặp trục trặc.
jippie

2
Tôi có cảm giác rằng bộ nhớ ngày nay khá rẻ, không có động lực giữa các nhà phát triển kernel để cải thiện hành vi tráo đổi. Nó chỉ không phải là một ưu tiên cao đối với họ.
mdpc

1
Cập nhật giữa năm 2015: 16GB vẫn gần như đủ cho mọi thứ tôi đang làm trong những ngày này. Bất cứ khi nào tôi nhấn trao đổi ngay bây giờ, đó là một tín hiệu ngay lập tức rằng một ứng dụng bị lỗi và rò rỉ bộ nhớ và htop xác nhận nó mỗi lần. Đó là lý do tại sao XPS13 2015 với màn hình vô cực là một điều tuyệt vời, nhưng RAM tối đa 8GB chỉ là không ổn.
lkraav 17/05/2015

2

Nếu khối lượng công việc của bạn thực sự cần nhiều hơn 6GB RAM hoạt động, thì bạn sẽ không thực sự có thể điều chỉnh bất cứ điều gì để làm cho nó chạy nhanh hơn trong khi trao đổi.

Một số sử dụng trao đổi ánh sáng không nhất thiết là vấn đề - máy tính xách tay 3 GB của tôi đã chạy được khoảng 30 ngày và đang sử dụng 600 MB trao đổi (trên đĩa cứng quay, không phải SSD), nhưng nó vẫn chạy tốt - vì chỉ có các trang không hoạt động hoán đổi để các trang hiếm khi (nếu có) cần phải được hoán đổi lại.

Nếu bạn không thể thêm RAM vào hệ thống của mình, thì điều tốt nhất tiếp theo là xem thử quá trình nào đang sử dụng quá nhiều RAM và xem bạn có thể loại bỏ chúng hoặc làm gì đó để giảm mức sử dụng RAM của chúng không. Lệnh "top" rất hữu ích cho việc này, chỉ cần sử dụng lệnh "M" để sắp xếp theo mức sử dụng bộ nhớ.


1
Bạn đang nhầm lẫn phân trang với trao đổi. Phân trang là khá bình thường (tức là lấy ra các trang bộ nhớ không hoạt động hoặc không được sử dụng vào không gian hoán đổi) trong khi trao đổi liên quan đến việc chuyển toàn bộ quá trình ra khỏi bộ nhớ vào đĩa trao đổi. Trao đổi chỉ được thực hiện nếu quá trình phân trang không cung cấp đủ bộ nhớ cần thiết.
mdpc

Các hệ điều hành dựa trên VM hiện đại không thực hiện cái được gọi là "hoán đổi" trong lịch sử - hoán đổi toàn bộ không gian địa chỉ quy trình vào / ra bộ nhớ thứ cấp. Tất cả đều phân trang cho cái vẫn được gọi là tệp hoán đổi. Vì vậy, nhiều người sử dụng các thuật ngữ thay thế cho nhau. Thuật ngữ chính xác hơn có lẽ là "hoán đổi trang" (trái ngược với chỉ "phân trang", có thể bị nhầm lẫn với ánh xạ trang MMU).
Johnny
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.