Ubuntu nhanh chóng hết RAM và máy tính của tôi bắt đầu đóng băng. Lệnh nào sẽ giải quyết điều này?


73

Nó xảy ra khá thường xuyên với tôi khi tôi đang biên dịch phần mềm ở chế độ nền và đột nhiên mọi thứ bắt đầu chậm lại và cuối cùng đóng băng [nếu tôi không làm gì], vì tôi đã hết dung lượng RAM và trao đổi.

Câu hỏi này giả định rằng tôi có đủ thời gian và tài nguyên để mở Gnome Terminal, tìm kiếm trong lịch sử của tôi và thực hiện một sudolệnh.

Lệnh nào có thể cứu tôi khỏi phải thực hiện khởi động lại cứng, hoặc bất kỳ khởi động lại nào cả?


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Thomas Ward

1
Nếu bạn hết dung lượng trao đổi, tôi nghĩ bạn có quá ít. Tôi có 20G không gian hoán đổi trên máy tính này. Vấn đề là nó cung cấp cho bạn đủ thời gian với một hệ thống có thể sử dụng để tiêu diệt bất cứ thứ gì đang ăn mòn bộ nhớ của bạn. Đó không phải là thứ mà bạn chỉ lấy những gì bạn sẽ sử dụng, mà là những gì bạn hy vọng bạn sẽ không bao giờ sử dụng.
JoL

1
Bạn có chắc chắn cả RAM và trao đổi đang được lấp đầy? Nếu đó là trường hợp, trình xử lý OOM sẽ giết trình biên dịch của bạn và giải phóng bộ nhớ (và cũng làm hỏng quá trình xây dựng của bạn). Mặt khác, tôi nghĩ rằng nó chỉ bị lấp đầy và có thể hệ thống của bạn chậm vì trao đổi của bạn nằm trên đĩa hệ thống.
sudo

3
Hãy thử giảm số lượng bản dựng song song của bạn nếu bạn không có đủ RAM để hỗ trợ. Nếu bản dựng của bạn bắt đầu hoán đổi, bạn sẽ chậm hơn. Với make, hãy thử -j4ví dụ cho 4 bản dựng song song tại một thời điểm.
Shahbaz

1
"Alexa đặt cho tôi 8 hợp đồng ram"

Câu trả lời:


84

Theo kinh nghiệm của tôi, Firefox và Chrome sử dụng nhiều RAM hơn 7 máy tính đầu tiên của tôi cộng lại. Có lẽ nhiều hơn thế nhưng tôi đang đi từ quan điểm của tôi. Điều đầu tiên bạn nên làm là đóng trình duyệt của bạn . Một mệnh lệnh?

killall -9 firefox google-chrome google-chrome-stable chromium-browser

Tôi đã liên kết các trình duyệt phổ biến nhất với nhau thành một lệnh ở đó nhưng rõ ràng nếu bạn đang chạy một thứ khác (hoặc biết rằng bạn không sử dụng một trong những trình duyệt này) thì chỉ cần sửa đổi lệnh. Đây killall -9 ...là bit quan trọng. Mọi người nhận được iffy về SIGKILL(tín hiệu số 9) nhưng trình duyệt cực kỳ linh hoạt. Hơn thế nữa, việc chấm dứt từ từ thông qua SIGTERMsẽ đồng nghĩa với việc trình duyệt tải một đống rác dọn rác, đòi hỏi phải có thêm RAM RAM và đó là thứ bạn không thể mua được trong tình huống này.

Nếu bạn không thể đưa nó vào thiết bị đầu cuối đang chạy hoặc đối thoại Alt+ F2, hãy xem xét chuyển sang TTY. Control+ Alt+ F2sẽ đưa bạn đến TTY2, thứ sẽ cho phép bạn đăng nhập (mặc dù nó có thể chậm) và thậm chí sẽ cho phép bạn sử dụng một cái gì đó như htopđể gỡ lỗi vấn đề. Tôi không nghĩ mình đã hết RAM đến mức không thể thức htopdậy.

Giải pháp dài hạn liên quan đến việc mua thêm RAM, thuê nó qua máy tính từ xa hoặc không làm những gì bạn đang làm. Tôi sẽ để lại những lý lẽ kinh tế phức tạp cho bạn nhưng nói chung, RAM rất rẻ để mua, nhưng nếu bạn chỉ cần một lượng lớn, một máy chủ VPS được lập hóa đơn mỗi phút hoặc giờ là một lựa chọn tốt.


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Thomas Ward

Tôi đã nhận được một vài lệnh được liên kết với lệnh của riêng lazygittôi mà thỉnh thoảng tôi sử dụng, có lẽ một cái gì đó giống như vậy có thể được áp dụng ở đây? Toàn bộ killall ...kịch bản có thể được giảm xuống đơn giản emptyramhoặc đại loại như thế
Francisco Presencia

Bạn không cần phải chạy lệnh đầy đủ nếu bạn biết trình duyệt nào đang chạy và tôi cho rằng hầu hết những người có thể xác định thiếu RAM đều làm. Về phần mở rộng, tôi thấy khó nhớ rằng tôi đã viết một emptyramkịch bản hơn là chỉ bấm vào killall -9 firefox.
Oli

2
Mua RAM ... tại sao không tải thêm RAM?
Stephan bijzitter

1
Chà, bạn có thể nói đùa nhưng nếu bạn cần làm gì đó trong một thời gian ngắn cần nhiều RAM và CPU hơn bạn có, thì việc thuê VPS trong một phút là khá kinh tế cho một lần chụp.
Oli

66

Trên hệ thống có bật Khóa yêu cầu hệ thống ma thuật, nhấn Alt + System Request+ f(nếu không được đánh dấu trên bàn phím của bạn, System Requestthường là trên Print Screenphím) sẽ gọi thủ công ra khỏi trình diệt bộ nhớ (oomkiller), để cố gắng chọn quá trình vi phạm tồi tệ nhất cho sử dụng bộ nhớ và giết nó. Bạn có thể làm điều này nếu bạn có ít thời gian hơn bạn đã mô tả và hệ thống sắp bắt đầu (hoặc có thể đã bắt đầu) đập - trong trường hợp đó bạn có thể không quan tâm chính xác những gì bị giết, chỉ là bạn kết thúc với một hệ thống có thể sử dụng. Đôi khi điều này có thể kết thúc việc giết X, nhưng hầu hết thời gian ngày nay tốt hơn rất nhiều trong việc chọn một quy trình tồi tệ hơn trước đây.


5
@ T.Sar nếu bạn đang đi thẳng vào đập, bạn đã thua hoặc có cơ hội giết người ăn trí nhớ. Bạn không đạt được bất cứ điều gì nếu bạn không kiềm chế hành động.
Ruslan

4
@Muzer này sẽ chỉ làm việc khi bạn đã thiết lập kernel.sysrqcho 1hay một số bao gồm các bit đúng của bạn /etc/sysctl.d/10-magic-sysrq.conf.
Ruslan

9
@ T.Sar Bạn sẽ không mất tiến bộ nếu bạn đang sử dụng hệ thống xây dựng lành mạnh. Bạn sẽ giữ lại tất cả các tệp đối tượng nhưng tệp bạn thực sự biên dịch, sau đó bạn sẽ quay trở lại khá nhiều nơi bạn rời đi.
Muzer

3
@ T.Sar Chỉ vì thứ bạn biên dịch không lành mạnh không có nghĩa là hệ thống xây dựng không lành mạnh. Xây dựng các hệ thống kể từ thời xa xưa đã lưu trữ các tệp đối tượng để sử dụng lại trong các phần tổng hợp tiếp theo. Mặt khác, tôi chắc chắn có thể đặt tên cho nhiều dự án phần mềm với độ tỉnh táo thấp hơn Linux (thường được thiết kế khá tốt). Ví dụ, biên dịch một cái gì đó như Firefox hoặc OpenOffice với 8 luồng xây dựng song song, tôi có thể dễ dàng thấy nó lấy theo thứ tự gigabyte RAM. Ngoài ra còn có rất nhiều hệ thống doanh nghiệp nguyên khối phụ thuộc vào hàng trăm thư viện.
Muzer

7
@ T.Sar Linux không thực sự phức tạp từ POV của trình biên dịch. Trên thực tế hầu như không có chương trình C nào. C ++ thì sao? Bạn đã bao giờ thử xây dựng một chương trình bằng Eigen hoặc Boost chưa? Bạn sẽ ngạc nhiên khi trình biên dịch đôi khi ăn bao nhiêu với các chương trình như vậy - và chúng không phải phức tạp.
Ruslan

20

Trái với các câu trả lời khác, tôi khuyên bạn nên tắt trao đổi trong khi bạn đang làm điều này. Mặc dù trao đổi giữ cho hệ thống của bạn chạy theo cách có thể dự đoán được và thường được sử dụng để tăng thông lượng của các ứng dụng truy cập vào đĩa (bằng cách đuổi các trang không sử dụng để có chỗ cho bộ đệm đĩa), trong trường hợp này có vẻ như hệ thống của bạn đang bị chậm đến mức không thể sử dụng được vì bộ nhớ được sử dụng quá nhiều đang bị buộc phải trục xuất để trao đổi.

Tôi sẽ khuyên bạn nên vô hiệu hóa trao đổi hoàn toàn trong khi thực hiện nhiệm vụ này, để kẻ giết người hết bộ nhớ sẽ hành động ngay khi RAM đầy.

Các giải pháp thay thế:

  • Tăng tốc độ đọc trao đổi bằng cách đặt phân vùng trao đổi của bạn trong RAID1
    • Hoặc RAID0 nếu bạn cảm thấy rủi ro nhưng điều đó sẽ làm giảm số lượng lớn các chương trình đang chạy nếu bất kỳ ổ đĩa nào của bạn gặp trục trặc.
  • Giảm số lượng công việc xây dựng đồng thời ("nhiều lõi hơn tốc độ cao hơn", tất cả chúng ta đều nói rằng, quên rằng phải mất một tuyến tính trên RAM)
  • Điều này có thể đi cả hai cách, nhưng hãy thử kích hoạt zswaptrong kernel. Điều này nén các trang trước khi chúng được gửi để trao đổi, có thể cung cấp vừa đủ phòng ngọ nguậy để tăng tốc máy của bạn. Mặt khác, nó có thể chỉ là một trở ngại với việc nén / giải nén thêm.
  • Tắt tối ưu hóa hoặc sử dụng một trình biên dịch khác. Tối ưu hóa mã đôi khi có thể chiếm vài gigabyte bộ nhớ. Nếu bạn đã bật LTO, bạn cũng sẽ sử dụng rất nhiều RAM ở giai đoạn liên kết. Nếu vẫn thất bại, bạn có thể thử biên dịch dự án của mình với trình biên dịch có trọng lượng nhẹ hơn (ví dụ tcc), với chi phí hiệu năng thời gian chạy nhẹ cho sản phẩm được biên dịch. (Điều này thường được chấp nhận nếu bạn thực hiện việc này cho mục đích phát triển / gỡ lỗi.)

6
Nếu bạn đã tắt trao đổi, đó là hành vi của Linux khi bạn hết bộ nhớ. Nếu Linux không gọi kẻ giết người hết bộ nhớ mà thay vào đó đóng băng, điều đó có thể biểu thị rằng có vấn đề sâu hơn với thiết lập. Tất nhiên, nếu trao đổi được bật, hành vi hơi khác nhau.
Điểm_Under

10
@Akiva Bạn đã bao giờ thử mà không trao đổi? Câu trả lời này là tại chỗ. Tôi muốn thêm rằng việc chạy sudo swapoff -acó thể giúp bạn tiết kiệm khi bạn đã ở trong một ràng buộc: nó sẽ ngay lập tức dừng mọi hoạt động sử dụng không gian hoán đổi bổ sung, tức là kẻ giết người OOM sẽ được gọi ngay lập tức và đưa máy vào trạng thái hoạt động. sudo swapoff -acũng là một biện pháp phòng ngừa tuyệt vời khi gỡ lỗi rò rỉ bộ nhớ hoặc biên dịch, giả sử, firefox. Thông thường, trao đổi là một chút hữu ích (ví dụ để ngủ đông hoặc trao đổi những thứ thực sự không cần thiết), nhưng khi bạn thực sự sử dụng bộ nhớ, tình trạng đóng băng sẽ tồi tệ hơn.
Jonas Schäfer

2
@Score_Under: Các phân vùng trao đổi riêng biệt trên mỗi đĩa được cho là hiệu quả hơn đáng kể so với trao đổi trên thiết bị md raid0. Tôi quên nơi tôi đọc nó. Wiki RAID Linux đề xuất các phân vùng riêng biệt trên raid0, nhưng không nói gì mạnh mẽ về lý do tại sao nó tốt hơn . Dù sao, RAID1 hoặc RAID10n2 có ý nghĩa cho việc hoán đổi, đặc biệt nếu bạn hầu như chỉ muốn có thể trao đổi một số trang bẩn nhưng rất lạnh để có thêm RAM cho pagecache. tức là hiệu suất hoán đổi không phải là một vấn đề lớn.
Peter Cordes

2
Quan điểm của tôi là theo lời khuyên của bạn, người ta có thể không chạy được các chương trình đó, vì chúng cần trao đổi. Bản dựng không thành công 100% thời gian còn tệ hơn bản dựng có 50% cơ hội khóa hệ thống, phải không?
Dmitry Grigoryev

2
Không có trao đổi, trên nhiều máy không thể biên dịch các đoạn mã lớn. Tại sao bạn lại cho rằng đó là phần biên dịch mà anh ấy muốn hy sinh?
David Schwartz

14

Bạn có thể sử dụng lệnh sau (lặp đi lặp lại nếu cần) để tiêu diệt quá trình sử dụng nhiều RAM nhất trên hệ thống của bạn:

ps -eo pid --no-headers --sort=-%mem | head -1 | xargs kill -9

Với:

  • ps -eo pid --no-headers --sort=-%mem: hiển thị id tiến trình của tất cả các tiến trình đang chạy, được sắp xếp theo mức sử dụng bộ nhớ
  • head -1: chỉ giữ dòng đầu tiên (quá trình sử dụng nhiều bộ nhớ nhất)
  • xargs kill -9: giết quá trình

Chỉnh sửa sau khi nhận xét chính xác của Dmitry:

Đây là một giải pháp nhanh và bẩn nên được thực thi khi không có tác vụ nhạy cảm nào đang chạy (tác vụ mà bạn không muốn kill -9).


5
Điều này tồi tệ hơn nhiều so với việc để kẻ giết người OOM xử lý tình huống. Kẻ giết người OOM thông minh hơn thế nhiều. Bạn có thực sự chạy các lệnh như vậy trên máy tính với các phần tổng hợp đang diễn ra không?
Dmitry Grigoryev

@DmitryGrigoryev thật thông minh khi đôi khi giết Xorg trên máy tính để bàn của tôi. Trong các hạt nhân hiện đại, OOMK dường như đã có được sự tỉnh táo, nhưng tôi sẽ không thực sự tin tưởng nó sau tất cả những điều đó.
Ruslan

11

Trước khi chạy tốn tài nguyên lệnh của bạn, bạn cũng có thể sử dụng setrlimit (2) gọi hệ thống, có lẽ với ulimitBUILTIN vỏ bash của bạn (hoặc limitdựng sẵn trong zsh) đáng chú ý với -vcho RLIMIT_AS. Sau đó quá lớn tiêu thụ không gian địa chỉ ảo (ví dụ với mmap (2) hoặc sbrk (2) được sử dụng bởi malloc (3) ) sẽ thất bại (với errno (3)ENOMEM).

Sau đó, chúng (tức là các quy trình đói trong vỏ của bạn, sau khi bạn nhập ulimit) sẽ bị chấm dứt trước khi đóng băng hệ thống của bạn.

Đọc thêm Linux Ate RAM của tôi và xem xét việc vô hiệu hóa bộ nhớ quá mức (bằng cách chạy lệnh echo 0 > /proc/sys/vm/overcommit_memory với quyền root, xem Proc (5) ...).


11

điều này xảy ra khá thường xuyên với tôi khi tôi biên dịch phần mềm ở chế độ nền

Trong trường hợp đó, một cái gì đó như "killall -9 make" (hoặc bất cứ thứ gì bạn đang sử dụng để quản lý phần biên dịch của mình, nếu không thực hiện). Điều này sẽ dừng quá trình biên dịch tiếp tục, SIGHUP tất cả các quy trình biên dịch được khởi chạy từ nó (hy vọng sẽ khiến chúng dừng lại) và, như một phần thưởng, không cần phải giả sử bạn đang biên dịch như cùng một người dùng mà bạn đã đăng nhập trong như. Và vì nó giết chết nguyên nhân thực sự của vấn đề của bạn thay vì trình duyệt web, phiên X hoặc một số quy trình ngẫu nhiên, nó sẽ không can thiệp vào bất cứ điều gì bạn đang làm trên hệ thống vào thời điểm đó.


2
Chỉ là một sự xấu hổ mà tôi đã phải cuộn xuống để tìm câu trả lời này. Tôi đã hy vọng ai đó sẽ đề xuất một cách có thể đình chỉ tiến trình trên bộ ăn RAM này.
TẤT CẢ NGÀY

Không có gì gần câu trả lời mà OP mong đợi, nhưng nó trả lời câu hỏi theo nghĩa đen: máy crap của tôi bị vô hiệu hóa khi tôi xây dựng trên nó - ngừng xây dựng trên máy crap.
9ilsdx 9rvj 0lo

9

Tạo thêm một số trao đổi cho chính mình.

Sau đây sẽ thêm 8G trao đổi:

dd if=/dev/zero of=/root/moreswap bs=1M count=8192
mkswap /root/moreswap
swapon /root/moreswap

Nó sẽ vẫn chậm (bạn đang trao đổi) nhưng bạn thực sự không nên chạy ra ngoài. Các phiên bản hiện đại của Linux có thể trao đổi thành tập tin. Về việc sử dụng duy nhất cho một phân vùng trao đổi ngày nay là để ngủ đông máy tính xách tay của bạn.


1
Tôi đã thực hiện phương pháp này như một kịch bản, thực sự, ở đây . Khá hữu ích để thêm trao đổi trên bay.
Sergiy Kolodyazhnyy

7
Một số trao đổi nói chung là khôn ngoan, nhưng phân bổ số lượng lớn chỉ đơn giản là cho phép máy đập mạnh hơn trước khi kẻ giết người OOM bước vào và chọn một tình nguyện viên. Vai trò cũ của ngón tay cái về "nhân đôi ram của bạn khi trao đổi" đã chết từ lâu. Cá nhân tôi thấy không có giá trị trong việc phân bổ tổng số hơn 1 GB trao đổi.
Criggie

5
Với ext4, bạn có thể fallocate -l 8G /root/moreswapthay vì ddtránh phải thực hiện 8GB I / O trong khi hệ thống đang hoạt động. Điều này không làm việc với bất kỳ hệ thống tập tin khác, mặc dù. Chắc chắn không phải là XFS, nơi hoán đổi xem các khoảng không được ghi là lỗ hổng. (Tôi đoán cuộc thảo luận danh sách gửi thư xfs này đã không được triển khai). Xem thêm swapd, một trình nền tạo / xóa các tệp hoán đổi khi đang di chuyển để tiết kiệm dung lượng đĩa. Ngoài ra hãy hỏi Ubuntu.com/questions/905668/ Mạnh
Peter Cordes

1
@Criggie "Cá nhân tôi thấy không có giá trị nào trong việc phân bổ hơn ~ 1 GB tổng số trao đổi" - Bạn đã thử xây dựng Firefox chưa?
Dmitry Grigoryev

1
@Akiva Lần trước tôi đã kiểm tra, cấu hình bản dựng được đề xuất là 16 GB RAM. Tệp thực thi chính ( xul.dll) có dung lượng khoảng 50 MB, do đó, nó nặng hơn khoảng 10 lần so với nhân Linux.
Dmitry Grigoryev

5

Một cách để có được một đoạn RAM miễn phí trong một thông báo ngắn là sử dụng zram , tạo ra một đĩa RAM nén và hoán đổi ở đó. Với bất kỳ CPU nửa nào, tốc độ này nhanh hơn nhiều so với trao đổi thông thường và tốc độ nén khá cao với nhiều bộ nhớ RAM hiện đại như trình duyệt web.

Giả sử bạn đã cài đặt và cấu hình zram, tất cả những gì bạn phải làm là chạy

sudo service zramswap start

Điều này có hoạt động trên tất cả các hệ thống tập tin như btrfs không?
Akiva

1
@Akiva zram không bao giờ chạm vào đĩa, vì vậy tôi sẽ nói có;)
Dmitry Grigoryev

3

sudo swapoff -asẽ vô hiệu hóa trao đổi, làm cho kernel tự động giết tiến trình với số điểm cao nhất nếu hệ thống hết bộ nhớ. Tôi sử dụng cái này nếu tôi biết tôi sẽ chạy thứ gì đó nặng về RAM mà tôi thà giết nếu nó vượt khỏi tầm kiểm soát hơn là để nó bị hoán đổi và bị kẹt mãi mãi. Sử dụng sudo swapon -ađể kích hoạt lại nó sau đó.

Sau đó, bạn có thể muốn xem các cài đặt trao đổi của mình. Âm thanh như trao đổi của bạn nằm trên cùng một đĩa với phân vùng gốc, điều này sẽ làm chậm hệ thống của bạn khi bạn nhấn trao đổi, vì vậy hãy tránh điều đó nếu bạn có thể. Ngoài ra, theo tôi, các hệ thống hiện đại thường được cấu hình với quá nhiều trao đổi. RAM 32GiB thường có nghĩa là trao đổi 32GiB được phân bổ theo mặc định, như thể bạn thực sự muốn đặt 32GiB vào không gian trao đổi của mình.


Ồ, tôi chỉ thấy rằng ai đó đã nhận xét rằng ở trên một nơi nào đó.
sudo

3

Một điều khác mà người ta có thể làm là giải phóng bộ nhớ cache của trang bộ nhớ thông qua lệnh này:

echo 3 | sudo tee /proc/sys/vm/drop_caches

Từ tài liệu kernel.org (nhấn mạnh thêm):

drop_caches

Viết vào đây sẽ làm cho kernel bỏ bộ nhớ cache sạch, cũng như các đối tượng phiến có thể lấy lại được như răng và inodes. Sau khi đánh rơi, bộ nhớ của họ trở nên tự do .

Để giải phóng trang web / sys / vm / drop_caches

Đây là một hoạt động không phá hủy và sẽ không giải phóng bất kỳ đối tượng bẩn. Để tăng số lượng đối tượng được giải phóng bởi thao tác này, người dùng có thể chạy 'đồng bộ hóa' trước khi ghi vào / Proc / sys / vm / drop_caches. Điều này sẽ giảm thiểu số lượng các đối tượng bẩn trên hệ thống và tạo ra nhiều ứng cử viên bị loại bỏ.


Thú vị ... quan tâm để giải thích logic lệnh đó?
Akiva

1
@Akiva về cơ bản điều này nói với nhân Linux để giải phóng RAM. Điều này không loại bỏ được nguyên nhân, thứ đang giết chết quá trình vi phạm, vì vậy câu trả lời của Oli là giải pháp cho vấn đề. Thả bộ nhớ cache sẽ ngăn hệ thống của bạn hết bộ nhớ, do đó ngăn chặn việc đóng băng, do đó bạn phải dành thời gian để tìm ra vấn đề thực tế. Điều này có thể sẽ nhanh hơn một chút so với tạo tệp hoán đổi, đặc biệt nếu bạn đang sử dụng ổ cứng chứ không phải trên SSD
Sergiy Kolodyazhnyy

7
Bộ nhớ cache là điều đầu tiên cần thực hiện khi bạn lấp đầy bộ nhớ, vì vậy tôi không nghĩ rằng điều này sẽ giúp ích rất nhiều. Trong thực tế, tôi không nghĩ rằng lệnh này có một ứng dụng thực tế bên ngoài việc gỡ lỗi hành vi kernel hoặc tối ưu hóa truy cập đĩa thời gian. Tôi khiêm tốn khuyên bạn không nên chạy lệnh này trên bất kỳ hệ thống nào cần hiệu năng cao hơn.
Điểm_Under

2
@Score_Under - "Bộ nhớ cache là điều đầu tiên cần thực hiện khi bạn lấp đầy bộ nhớ" - tốt, điều đó phụ thuộc vào cài đặt của bạn /proc/sys/vm/swappiness. Với swappiness được đặt thành 0, bạn đã đúng. Với cài đặt mặc định là 60, bạn đã đóng. Tuy nhiên, với nó được đặt thành 200, đây sẽ là trang được sử dụng ít nhất trong các quy trình đang chạy bị bỏ trước tiên ... trong trường hợp cụ thể đó, lệnh này thể hữu ích. Tuy nhiên, đặt swappiness thành 0 (hoặc một số giá trị thấp, có thể là 20 hoặc 30) sẽ là cách tiếp cận chung tốt hơn, tuy nhiên.
Jules

3
@Score_Under Lệnh này rất hữu ích đối với các nhân cũ có kswapdlỗi (một số người thậm chí đã tạo cronjobs với nó). Nhưng bạn nói đúng, tôi nghi ngờ nó sẽ giúp với câu hỏi này.
Dmitry Grigoryev

1

Bạn nói "biên dịch trong nền". Bạn đang làm gì ở phía trước? Nếu bạn đang phát triển với Eclipse hoặc IDE nặng tài nguyên khác, hãy kiểm tra xem mọi thứ đã được kết thúc đúng chưa trong bảng điều khiển chưa.

Các môi trường phát triển thường cho phép bắt đầu nhiều quy trình đang được phát triển, những quy trình này có thể vẫn bị treo sau khi bạn không còn quan tâm đến chúng (trong trình gỡ lỗi hoặc chỉ chưa hoàn thành đúng cách). Nếu nhà phát triển không chú ý, hàng chục quy trình bị lãng quên có thể tích lũy trong ngày, sử dụng nhiều gigabyte cùng nhau.

Kiểm tra xem mọi thứ nên kết thúc trong IDE có bị chấm dứt không.

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.