Tại sao là swappiness 60 mặc định? Điều gì sẽ có hiệu quả nếu tôi hạ thấp giá trị swappiness cho máy tính để bàn của tôi?


16

Tôi đã đọc về swappiness trên các diễn đàn khác nhau và tôi đã thấy một số video. Nhiều người tuyên bố rằng đó là một điều tốt cho người dùng máy tính để bàn để giảm giá trị trao đổi dưới 60 (đó là mặc định). Một số tuyên bố rằng 60 là tốt cho các máy chủ. Chính xác thì tại sao tôi nên hạ nó xuống và tại sao 60 tốt cho máy chủ? Tôi đã cố gắng tìm kiếm một câu trả lời ( ví dụ tôi nhìn vào đây ) nhưng không thể hiểu được. ... Vui lòng sử dụng thuật ngữ dễ dàng: D


chỉnh sửa câu hỏi. Bây giờ có tốt không
Mina Michael

Câu trả lời:


22

Tiền đề của bạn là sai. Không có giá trị trao đổi 'tốt cho máy chủ'.

Hoán đổi là số lượng trao đổi được thực hiện, đặc biệt là bạn trao đổi mạnh mẽ như thế nào. Đối với các máy chủ của tôi, tính dễ thay đổi gần bằng 0, vì tôi chắc chắn rằng chúng có đủ bộ nhớ cho mọi thứ. Không có giá trị 'tốt nhất cho máy chủ'. có 60, là mặc định và sau đó là "giá trị của bạn" phụ thuộc vào mức sử dụng và bộ nhớ khả dụng.

Nếu bạn có máy chủ đôi khi sử dụng LOADS bộ nhớ, bạn có thể có chúng cao hơn mặc định, nhưng tôi sẽ nói rằng một số máy chủ (máy chủ cơ sở dữ liệu?) Có thể muốn giữ chúng thấp hơn máy tính gia đình.


cũng ổn: DI đã theo dõi unix.stackexchange.com/questions/88693/ này . câu trả lời thứ hai (câu trả lời hiện có 2 upvote) cho biết 60 có thể phù hợp nhất với máy chủ. ... Và hãy để tôi nói thẳng điều này. Tôi nên đặt mức độ trao đổi cao nếu tôi thực hiện các quy trình yêu cầu bộ nhớ lớn và thấp nếu tôi thực hiện nhiều quy trình nhỏ?
Mina Michael

(và tùy thuộc vào thông số kỹ thuật của máy tính của tôi) Tôi có bộ đôi lõi 2 khoảng 2,9 GHz với đồ họa tích hợp intel bằng cách này
Mina Michael

1
Không thể nói. Phụ thuộc vào rất nhiều thứ, như đã nêu trong câu trả lời đó -> một số cơ sở dữ liệu có thể thực hiện bộ nhớ đệm của riêng họ, nhưng một số thì không. Nó phụ thuộc vào các chương trình và phần cứng của bạn. Có một mặc định và điều tốt nhất bạn có thể làm là kiểm tra cách hệ thống của bạn hoạt động trong tình huống nào. Như đã nói, tôi đã thêm đủ mem vào hệ thống của mình và tôi biết họ cần gì, vì vậy tôi có thể có sự thay đổi ở mức gần 0. Nhưng trên các hệ thống lành mạnh, một số trao đổi có thể là một điều tốt. Không có lời khuyên thiết lập 'thần cho tất cả' dễ dàng ở đây, hãy đọc câu trả lời được đánh giá cao nhất. Ngoài ra: nó nói "có thể", không phải "là" trong câu trả lời thứ 2 đó
Nanne

. câu trả lời cao nhất trên liên kết unix mà bạn đã đưa ra và tiếp tục thử nghiệm cách thức hoạt động trong môi trường của bạn.) '
Nanne

Vâng, đó là khi tôi nói rằng tôi không thể hiểu những gì tôi đã đọc. Tôi khá yếu về kiến ​​thức (và thậm chí cả ngôn ngữ phải trung thực XD) ... vì vậy tôi chỉ cần tiếp tục cố gắng! được rồi, cảm ơn: D
Mina Michael

8

Giá trị swappiness được thu nhỏ theo cách khiến mọi người bối rối. Họ thấy nó có phạm vi từ 0 đến 100 nên họ nghĩ đến phần trăm, khi thực sự mức tối thiểu hiệu quả là khoảng 50.

60 đại khái có nghĩa là không trao đổi cho đến khi chúng tôi đạt khoảng 80% sử dụng bộ nhớ, còn lại 20% cho bộ nhớ cache và như vậy. 50 có nghĩa là chờ cho đến khi chúng ta hết bộ nhớ. Các giá trị thấp hơn có nghĩa là như nhau, nhưng với sự tích cực ngày càng tăng trong việc cố gắng giải phóng bộ nhớ bằng các phương tiện khác.

Mô tả nó khá tốt tại http://lwn.net/Articles/83588/


Giá trị cao hơn có nghĩa là gì, ví dụ 80 hoặc 100?
vui vẻ

5

Cài đặt swappiness là một điều chỉnh theo cách Linux tính toán các lợi ích / nhược điểm đối với việc hoán đổi trong một kịch bản cụ thể. Khả năng trao đổi cao sẽ không khiến hệ thống hoán đổi khi không cần thiết và khả năng trao đổi thấp, với điều kiện bạn không tắt hoàn toàn việc hoán đổi, sẽ không ngăn hệ thống của bạn hoán đổi khi hoàn toàn phải thay đổi.

Khả năng trao đổi mặc định là 60 hoặc hơn là một sự thỏa hiệp rất tốt đảm bảo hiệu năng tốt cho hệ thống của bạn bằng cách đảm bảo nó không quá khó để phân bổ bộ nhớ cache trong khi có bộ nhớ chương trình được phân bổ không sử dụng.

Hãy nhớ rằng nếu bạn có nhiều RAM cho tất cả các quy trình của mình cộng với bộ đệm, điều này thường xảy ra nếu bạn có nhiều RAM vật lý, việc hoán đổi không phải là vấn đề đối với bạn. Cách ưa thích để khắc phục các sự cố hoán đổi quá nhiều là giảm sử dụng RAM theo quy trình và / hoặc tăng RAM vật lý. Giảm swappiness sẽ có tác động tiêu cực nếu những gì bạn thực sự cần là nhiều RAM hơn.

Xin vui lòng xem câu trả lời tôi đã viết cho một câu hỏi rất giống nhau:

https://askubfox.com/a/184221/54256

Trích đoạn:

Tại sao hầu hết mọi người đề nghị giảm swappiness xuống 10-20?

Bởi vì hầu hết đều tin rằng trao đổi = xấu và nếu bạn không giảm bớt sự thay đổi, hệ thống sẽ trao đổi khi thực sự không cần thiết. Cả hai điều đó đều không đúng. Mọi người liên kết trao đổi với thời gian mà hệ thống của họ bị sa lầy - tuy nhiên, chủ yếu là hoán đổi hệ thống bị sa lầy, không phải là cách khác. Đúng là có những thời điểm nhất định khi hoán đổi có thể có một hình phạt hiệu năng đáng chú ý, nhưng hệ thống sẽ nhận ra rằng trong quyết định hoán đổi của mình, và quyết định rằng không làm như vậy sẽ có hình phạt tổng thể cao hơn về hiệu suất hoặc tính ổn định của hệ thống. sau này trở nên đáng chú ý. Nhìn chung, các cài đặt mặc định sẽ mang lại hiệu suất và độ tin cậy tổng thể tốt nhất. Tôi khuyên bạn nên để nó ở mặc định.

...

Khi bạn đã sử dụng đủ bộ nhớ mà không còn đủ cho bộ đệm chạy trơn tru, Linux có thể phân bổ lại một số bộ nhớ ứng dụng không sử dụng từ RAM để trao đổi.

Nó không làm điều này theo một giới hạn nhất định mặc dù. Không giống như bạn đạt được một tỷ lệ phân bổ nhất định sau đó Linux bắt đầu hoán đổi. Nó có một thuật toán khá "mờ". Phải mất rất nhiều thứ, điều này có thể được mô tả tốt nhất bằng "có bao nhiêu áp lực để phân bổ bộ nhớ". Nếu có nhiều "áp lực" để phân bổ bộ nhớ mới, thì nó sẽ tăng khả năng một số người sẽ bị tráo đổi để tạo thêm chỗ. Nếu có ít "áp lực" hơn thì sẽ giảm những cơ hội này.

Hệ thống của bạn có cài đặt "swappiness" giúp bạn điều chỉnh cách tính "áp lực" này. Thông thường không nên thay đổi điều này, và tôi chắc chắn sẽ không bao giờ khuyên bạn nên thay đổi nó. Hoán đổi nói chung là một điều rất tốt - bất kỳ hình phạt hiệu suất không thường xuyên nào đều được dự định sẽ được bù đắp bằng mức tăng về khả năng đáp ứng và tính ổn định của hệ thống tổng thể cho một loạt các nhiệm vụ. Nếu bạn giảm độ nhanh, bạn sẽ để dung lượng bộ nhớ cache giảm đi một chút so với mức khác, ngay cả khi nó thực sự hữu ích. Do đó, bạn có nguy cơ làm chậm máy tính nói chung, vì có ít bộ nhớ cache hơn, trong khi bộ nhớ bị chiếm bởi các ứng dụng thậm chí không sử dụng nó. Liệu đây có phải là một sự đánh đổi đủ tốt cho bất kỳ vấn đề cụ thể nào mà bạn gặp phải khi hoán đổi hay không là tùy thuộc vào bạn.

Điều gì đang xảy ra khi hệ thống bị sa lầy và hoán đổi nặng nề?

Rất nhiều thời gian mọi người sẽ nhìn vào hệ thống của họ đang đập đĩa rất nhiều và sử dụng nhiều không gian hoán đổi và đổ lỗi cho việc hoán đổi cho nó. Đó là cách tiếp cận sai. Nếu trao đổi bao giờ đạt đến mức cực đoan này, điều đó có nghĩa là hệ thống của bạn có bộ nhớ cực kỳ thấp và việc hoán đổi là điều duy nhất giữ cho nó không bị sập hoặc giết chết các quá trình một cách ngẫu nhiên. Không trao đổi, trong tình huống này, các quy trình sẽ sụp đổ và chết. Sự hoán đổi là một triệu chứng của một vấn đề sâu sắc hơn. Trong một hệ thống có đủ bộ nhớ cho tất cả các tác vụ của nó, việc hoán đổi chỉ đảm bảo rằng bộ nhớ được sử dụng theo cách hiệu quả, xử lý bộ nhớ vào bộ đệm trong các quá trình không hoạt động nơi nó thấy nó sẽ có giá trị. Trong một hệ thống mà việc hoán đổi không ngừng đập vào đĩa, đó không phải là lỗi của việc hoán đổi.

Khi chọn những gì sẽ được hoán đổi vào đĩa, hệ thống sẽ cố gắng chọn bộ nhớ không thực sự được sử dụng - đọc hoặc ghi từ đó. Nó có một thuật toán khá đơn giản để tính toán cái này mà chọn tốt hầu hết thời gian.

...

Nhưng làm thế nào có thể trao đổi tăng tốc hệ thống của tôi? Không trao đổi những thứ chậm lại?

Hành động chuyển dữ liệu từ RAM sang trao đổi là một hoạt động chậm, nhưng nó chỉ được thực hiện khi hạt nhân khá chắc chắn rằng lợi ích tổng thể sẽ vượt xa điều này. Ví dụ: nếu bộ nhớ ứng dụng của bạn tăng đến mức bạn gần như không còn bộ nhớ cache và I / O của bạn rất kém hiệu quả vì điều này, bạn thực sự có thể lấy tốc độ ra khỏi hệ thống nhiều hơn bằng cách giải phóng một số bộ nhớ, thậm chí sau chi phí ban đầu của việc hoán đổi dữ liệu để giải phóng nó.

Vui lòng đọc toàn bộ bài viết tại https://askubfox.com/a/184221/54256


0

Swappiness hoàn toàn mâu thuẫn với tất cả những câu trả lời này.

Công việc thực sự của swappiness được mô tả trong bài viết: https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory-man Quản lý /

Sự mơ hồ được chứng thực bằng tuyên bố từ Andrew Morton: https://lwn.net/Articles/83593/

Tôi sẽ dán ngón tay vào tai và hát "la la la" cho đến khi mọi người nói với tôi "Tôi đặt sự thay đổi thành không và nó không làm những gì tôi muốn nó làm".

Hy vọng nó hữu ích


1
Chào mừng đến với AU. Bạn có thể tóm tắt những điểm chính của bài viết mà bạn chỉ ra và giải thích cách nó trả lời câu hỏi không, điều này không phải là để giải thích về sự thay đổi hay không.
Marc Vanhoomissen
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.