Làm thế nào để phát hiện một rò rỉ bộ nhớ trong Ubuntu
Có một số lý do khiến bộ nhớ bị rò rỉ có thể xảy ra trên Ubuntu, nhưng may mắn thay, điều hiển nhiên là khi chúng xảy ra. Mã Buggy thường là lý do lớn nhất, vì các lập trình viên có thể không có cơ hội để kiểm tra để đảm bảo rằng bộ nhớ không còn cần thiết được phát hành nữa. Nếu bạn đã cài đặt các gói không ổn định hoặc biên dịch mã từ nguồn, thì bạn có thể đang xử lý rò rỉ bộ nhớ vì lý do này. Có thể bạn sẽ bắt đầu nhận thấy chúng bởi vì các gói ứng dụng phần mềm bắt đầu phàn nàn về việc hết bộ nhớ khi bạn đã cài đặt đủ RAM vật lý.
Nếu bạn lo ngại về rò rỉ bộ nhớ, hãy thử gõ liên tục vào một thiết bị đầu cuối. Nếu bạn đột nhiên bắt đầu thấy RAM sử dụng một cách nhanh chóng phát triển, sau đó bạn đã phát hiện một rò rỉ bộ nhớ. Nếu bạn nhận được một lỗi mà đọc một cái gì đó như bash: Không đủ bộ nhớ trong khi làm điều này và bạn không có gì, nhưng một thiết bị đầu cuối hoặc thậm chí chỉ là một giao diện điều khiển ảo mở, sau đó bạn gần như unquestionably đối phó với một. Một số rò rỉ bộ nhớ có thể là một chút subtler, nhưng Ubuntu và nó spin-off khác nhau tính năng công cụ và các gói có thể giúp bạn phát hiện những.
Phát hiện rò rỉ bộ nhớ trong Ubuntu
Vì các công cụ được sử dụng để phát hiện rò rỉ bộ nhớ chủ yếu dựa trên dấu nhắc CLI, không quan trọng bạn đang chạy phiên bản Ubuntu nào. Chúng sẽ hoạt động tốt bên trong một thiết bị đầu cuối Unity trong Ubuntu thông thường, từ một giao diện ảo trong Ubuntu Server, từ một lxterm trong Lubuntu, một Konsole trong Kubuntu hoặc thậm chí bên trong Xfce trong Xubuntu. Hãy thử thực hiện một tác vụ đơn giản như sudo -s và nhập mật khẩu của bạn để bắt đầu.
Điều này sẽ giúp bạn có được một vỏ gốc nếu được thực hiện đúng, nhưng có thể gây ra lỗi bộ nhớ nếu bạn đang làm việc với một rò rỉ đã đi quá xa. Nếu bạn thực sự có thể truy cập vào một vỏ gốc, sau đó thử gõ echo 3> / proc / sys / m / drop_caches, nhấn phím enter và sau đó gõ exit. Hãy thử chạy lại m miễn phí hoặc miễn phí để xem liệu nó có giúp giải phóng bộ nhớ hay không.
Một số lập trình viên lập luận rằng không có vấn đề gì trong việc buộc hạt nhân phải loại bỏ bộ đệm của nó, vì chúng nên được xóa sạch và do đó khai hoang ngay khi bộ nhớ vật lý bổ sung là cần thiết. Tuy nhiên, trong khi lực lượng dội bộ đệm này sẽ làm tổn hại đến hiệu năng hệ thống, hãy nhớ rằng đây chỉ là một thử nghiệm. Một khi bạn đã khởi động lại hệ thống, nhân Linux nên một lần nữa lắp ráp bộ nhớ lưu trữ theo cách mà họ đã ở nơi đầu tiên.
Một vài người đã đề xuất thêm tính năng đồng bộ hóa dòng; sudo echo 3> / proc / sys / vm / drop_caches đến một tập lệnh mà cron chạy liên tục, nhưng điều này đánh bại mục đích của bộ nhớ đệm ở nơi đầu tiên. Bộ nhớ miễn phí chính nó chỉ là RAM không sử dụng, và điều đó có nghĩa rằng dữ liệu phải được nạp từ nhiều cơ điện chậm hơn
Nên Ubuntu cung cấp cho bạn một lỗi bất thường về đầu trang sau đó thử phát hành đầu bận rộn thay vì để truy cập một phiên bản đơn giản hơn của chương trình này. Khi bạn có danh sách, hãy xem cột% MEM hoặc tương tự để xem ứng dụng nào được gán nhiều bộ nhớ nhất. Trong khi bạn có thể lưu ý PID và đưa ra lệnh kill tới số PID chính xác, điều này sẽ chỉ buộc ứng dụng đóng lại. Bộ nhớ mà họ sử dụng có thể vẫn chưa được tiết lộ sau khi bạn làm điều này, mặc dù nó tất nhiên đáng để bắn.
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 đâyNếu bạn tìm thấy một ứng dụng đang sử dụng một lượng lớn bộ nhớ, hãy nhấn q để thoát và sau đó thử xóa #### bằng số PID từ màn hình trước đó. Các quy trình hệ thống không nên bị giết theo cách này, cũng không nên làm bất cứ điều gì mà bạn chưa làm việc. Hãy nghĩ về điều này tương tự như để giết một cái gì đó với danh sách nhiệm vụ Ctrl + Alt + Del, mà bạn cũng có thể sử dụng cho quá trình này.
Khi bạn đã tìm thấy một chương trình liên tục xảy ra, bạn có thể định cấu hình chương trình để ngăn chặn hành vi trong tương lai. Mỗi chương trình riêng lẻ, tất nhiên, sẽ cần một sự truy đòi khác, vượt quá nhiệm vụ chỉ phát hiện rò rỉ bộ nhớ.
Nếu bạn không chỉ đơn thuần là các ứng dụng xử lý sự cố, nhưng cũng thực sự làm việc với mã thì có một vài nguồn khác mà bạn có. Ubuntu và các dẫn xuất của nó cung cấp cho bạn các membarrier, memusage và memusagestat C routine để lập trình.
Đơn giản chỉ cần sử dụng người đàn ông membarrier, người đàn ông memusage hoặc người đàn ông memusagestat để xem các trang hướng dẫn sử dụng Linux Lập trình trên những thói quen quan trọng. Nếu có nâng cấp trong các phiên bản tương lai của các thư viện khi các phiên bản mới của Ubuntu xuất hiện, thì các thay đổi sẽ luôn được nêu ra ở đây.
Nếu bạn cần nội dung đồ họa, thì memusagestat thậm chí còn cung cấp tùy chọn lưu một biểu diễn đồ họa về việc sử dụng bộ nhớ vào một tệp PNG. Điều này làm cho nó trở thành một tính năng hấp dẫn cho các tác giả của các tiện ích, vì nó có thể được sử dụng để làm cho các ứng dụng thường xuyên kiểm tra rò rỉ bộ nhớ.
Bạn cũng có thể muốn cài đặt memprof, một công cụ để sử dụng bộ nhớ lược tả nhằm hỗ trợ bạn trong việc tìm kiếm rò rỉ bộ nhớ. Nó tạo ra một hồ sơ liên quan đến bao nhiêu bộ nhớ mỗi chức năng trong một chương trình bạn đang viết phân bổ. Nó cũng có thể quét bộ nhớ hiện có để tìm các khối đã được phân bổ nhưng không còn có các tham chiếu chính hãng nữa. Nó thực hiện điều này bằng cách tải trước một thư viện để ghi đè các tính năng cấp phát bộ nhớ của thư viện C chuẩn.
Nếu bạn dự định sử dụng điều này, hãy đảm bảo xóa dòng ghi nhớ bao gồm từ đầu mã của bạn trước khi phát hành. Điều này được sử dụng để đảm bảo rằng bạn không có rò rỉ, nhưng nó không nên trở thành một phụ thuộc nếu bạn gói mã của bạn và phát hành nó trong một kho lưu trữ.
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