Home | Back


การเพิ่มขีดจำกัดในการเปิด Socket Connection ใน Ubuntu

Tuesday, 19 November 2013



ผมได้พัฒนาระบบตัวหนึ่ง ซึ่งจะต้องรองรับการเปิด Socket จำนวนมาก แล้วก็เจอปัญหาว่า error: [Errno 24] Too many open files เนื่องจากระบบได้จำกัดจำนวนการเปิดไฟล์จำนวนมาก ซึ่งรวมไปถึงการเปิด Socket ด้วยครับ ดังตัวอย่างนี้ครับ

โดยเราสามารถไปเพิ่มขีดจำกัดในการเปิดไฟล์ให้เพิ่มขึ้นได้ดังนี้ครับ

1. ตรวจสอบการจำกัดในการเปิดไฟล์

เราสามารถตรวจสอบว่า ขณะนี้ระบบของเรา มีขีดจำกัดในการเปิดไฟล์ไว้เท่าไหร่ ดังคำสั่งต่อไปนี้ครับ

จะเห็นว่าจะมีขีดจำกัดเพียงแค่ 1024 เท่านั้น ทำให้ระบบของเราไม่สามารถรองรับงานในกรณีที่มีการเปิด socket จำนวนที่มากกว่า 1024 ได้ครับ

2. แก้ไขไฟล์ /etc/security/limits.conf

เมื่อเราต้องการเพิ่มขีดจำกัดในการเปิดไฟล์ให้มากขึ้น เพื่อให้ระบบของเรารองรับ socket connection จำนวนมาก ๆ ได้ เราสามารถทำได้โดยไปแก้ไขไฟล์ /etc/security/limits.conf ดังนี้ครับ

File : /etc/security/limits.conf

จะเห็นว่าเราจะทำการกำหนด limit ในการการเปิดไฟล์ไว้ที่ 50000 ในผู้ใช้ทั้งหมดและ root เนื่องจาก root ไม่ได้รวมใน * ด้วย จึงต้องกำหนดแยกมาอีกชุดนึงครับ จากนั้นก็ทำการ reboot ระบบใหม่ และใช้คำสั่ง ulimit -n ตรวจสอบดูอีกครั้งว่าได้มีการเพิ่มขีดจำกัดแล้ว ก็เป็นอันจบพิธีครับ



Home | Back