Hướng dẫn giới hạn số lượng process mức user trên Linux

0
142
giới hạn process trên linux

Một trong những tính năng, lợi ích hay nhất của Linux chính là bạn có thể kiểm soát hầu hết mọi thứ trong đó. Điều này giúp cho các nhà quản trị hệ thống có thể kiểm soát và sử dụng tài nguyên hệ thống tốt hơn.

Nhiều người mặc dù đã sử dụng Linux trong nhiều năm trời nhưng có thể vẫn chưa quan tâm nhiều lắm về cách điều chỉnh tối ưu hóa hệ thống. Nhưng quan trọng hơn là bạn cần biết trong Linux bạn hoàn toàn có thể giới hạn tài nguyên mà một user có thể sử dụng và trong bao lâu.

Trong bài viết này, mình sẽ chỉ cho bạn cách giới hạn số lượng process được start bởi user, cách kiểm tra giới hạn hiện tại và chỉnh sửa chúng.

Trước khi đi sâu vào cách điều chỉnh giới hạn số lượng process, chúng ta cần lưu ý 2 điểm này:

  1. Bạn cần quyền truy cập root tới hệ thống để điều chỉnh giới hạn user
  2. Bạn cần phải cực kỳ cẩn thận nếu như muốn điều chỉnh những giới hạn này

Để thiết lập giới hạn cho user, chúng ta cần phải chỉnh sửa những file sau:

/etc/security/limits.conf

File này được dùng để apply ulimit (user limit) được tạo ra bởi pam_module

Khi sử dụng ulimit bạn có thể thiết lập 2 loại giới hạn như sau:

  • Hard limit: loại giới hạn này chỉ cho mục đích security. Hard limit có thể được sử dụng khi sử dụng quyền root
  • Soft limit: loại giới hạn này có thể được thay đổi bởi process tại bất kỳ thời điểm nào. Giá trị này được thiết lập nằm giữa 0 và hard limit.

File này có cú pháp như sau:

<domain> <type> <item> <shell limit value>

Trong đó:

  • domain: có thể là username, group với cú pháp @group,…
  • type: có thể là soft hoặc hard
  • item: mục sẽ bị giới hạn – core size, file size, nproc
  • shel limit value: có thể là một trong những giá trị sau đây:
  • — nofile – số file descriptor mở tối đa
  • — nproc – số process tối đa khả dụng cho user

Ví dụ:

@student          hard           nproc                 20
*                 hard           nofile                65535
*                 soft           nofile                4096

Giới hạn ở trên thiết lập hard limit với tối đa 20 processes ở group “student

Nếu bạn muốn thấy giới hạn nhất định của một process, đơn giản chỉ cần sử dụng lệnh “cat” để kiểm tra file như sau:

# cat /proc/{PID}/limits

Trong đó PID là ID của process, bạn có thể kiểm tra id process bằng cách sử dụng lệnh ps.

Ví dụ:

# cat /proc/2537/limits

Output sẽ có dạng như sau:

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             8589934592           8589934592           bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             62503                62503                processes 
Max open files            1024                 1048576              files     
Max locked memory         67108864             67108864             bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       62503                62503                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us      

Bạn để ý ở trên sẽ thấy có dòng Max processes cho bạn thấy giới hạn hiện tại của process.

5/5 (1 Review)