ค้นหาเว็บไซต์

วิธีการตั้งค่าขีดจำกัดสำหรับกระบวนการที่ผู้ใช้รันใน Linux


ความสวยงามประการหนึ่งของลีนุกซ์ก็คือคุณสามารถควบคุมได้เกือบทุกอย่างเกี่ยวกับมัน ซึ่งช่วยให้ผู้ดูแลระบบสามารถควบคุมระบบของตนได้อย่างดีเยี่ยมและใช้ประโยชน์จากทรัพยากรระบบได้ดียิ่งขึ้น

แม้ว่าบางคนอาจไม่เคยคิดที่จะทำเช่นนี้ แต่สิ่งสำคัญคือต้องรู้ว่าใน Linux คุณสามารถจำกัดจำนวนทรัพยากรที่ผู้ใช้รายเดียวอาจใช้และระยะเวลาได้

อ่านเพิ่มเติม: วิธีเพิ่มจำนวนการจำกัดจำนวนไฟล์ที่เปิดใน Linux

ในหัวข้อสั้นๆ นี้ เราจะแสดงวิธีจำกัดจำนวนกระบวนการที่ผู้ใช้เริ่มต้น และวิธีการตรวจสอบขีดจำกัดปัจจุบันและแก้ไข

ก่อนที่เราจะไปไกลกว่านี้มีสองสิ่งที่เราต้องชี้:

  1. คุณต้องมีสิทธิ์เข้าถึงรูทในระบบของคุณเพื่อแก้ไขขีดจำกัดผู้ใช้
  2. คุณต้องใช้ความระมัดระวังอย่างยิ่งหากคุณวางแผนที่จะแก้ไขขีดจำกัดเหล่านี้

ในการตั้งค่าขีดจำกัดผู้ใช้ เราจะต้องแก้ไขไฟล์ต่อไปนี้:


/etc/security/limits.conf

ไฟล์นี้ใช้เพื่อใช้ ulimit ที่สร้างโดย pam_module

ไฟล์มีไวยากรณ์ดังต่อไปนี้:

<domain> <type> <item> <value>

ที่นี่เราจะหยุดเพื่อหารือเกี่ยวกับแต่ละตัวเลือก:

  • โดเมน – รวมถึงชื่อผู้ใช้ กลุ่ม ช่วงแนวทาง ฯลฯ
  • ประเภท – ขีดจำกัดแบบอ่อนและแบบแข็ง
  • รายการ – รายการที่ถูกจำกัด – ขนาดคอร์ ขนาดไฟล์  nproc ฯลฯ
  • ค่า – นี่คือค่าสำหรับขีดจำกัดที่กำหนด

ตัวอย่างที่ดีสำหรับขีดจำกัดคือ:

@student          hard           nproc                20

บรรทัดด้านบนกำหนดขีดจำกัดฮาร์ดสูงสุด 20 กระบวนการในกลุ่ม "student"

หากคุณต้องการดูขีดจำกัดของกระบวนการบางอย่าง คุณเพียงแค่ “cat” ไฟล์ขีดจำกัดดังนี้:


cat /proc/PID/limits

โดยที่ PID คือ ID กระบวนการจริง คุณสามารถค้นหา ID กระบวนการได้โดยใช้คำสั่ง ps สำหรับคำอธิบายโดยละเอียดเพิ่มเติม โปรดอ่านบทความของเราที่ระบุว่า - ค้นหากระบวนการที่ใช้ Linux และตั้งค่าขีดจำกัดกระบวนการต่อระดับผู้ใช้

นี่คือตัวอย่าง:


cat /proc/2497/limits
ผลลัพธ์ตัวอย่าง

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

บรรทัดทั้งหมดค่อนข้างอธิบายตนเองได้ค่อนข้างมาก อย่างไรก็ตาม หากคุณต้องการค้นหาการตั้งค่าเพิ่มเติมที่คุณสามารถป้อนลงในไฟล์ limits.conf คุณสามารถดูคู่มือที่ให้ไว้ได้ที่นี่

หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดอย่าลังเลที่จะส่งในส่วนความคิดเห็นด้านล่าง