squid cache proxy
ถ้า squid คุณเกิดปัญหาหรือ error message ขึ้นว่า WARNING! Your cache is running out of filedescriptors ในไฟล์ cache.log แสดงว่า Squid version ที่ใช้อยู่ได้ compile ให้ไฟล์ file descriptors ให้สามารถใช้ได้มากสุด 1024 ซึ่งปัญหานี้เราไม่สามารถแก้ไขด้วยวิธีการใช้ ulimit ได้โดยตรง

ใน Squid ที่ support จะมี option max_filedesc เพิ่มขึ้นมาเพื่อใช้ในการแก้ไขปัญหานี้

Linux ที่ support (ตอนนี้ทราบแต่ทาง Red Hat)

Red Hat Enterprise Linux 3: squid-2.5.STABLE3-6.3E.18
Red Hat Enterprise Linux 4: squid-2.5.STABLE14-1.4E
Red Hat Enterprise Linux 5

ส่วนวิธีการแก้ไขนั้นเราสามารถทำได้ตามขั้นตอนข้างล่างนี้ได้เลยครับ

1. แก้ไขไฟล์ /etc/security/limits.conf โดยให้เพิ่มข้อความด้านล่างเข้าไปในไฟล์

* - nofile 4096

2. ทำการ re-login (กด Ctrl-D ก็ได้ครับ) เข้าสู่ระบบให้เพื่อให้ทำการโหลด Config ค่าที่ได้แก้ไขไปเมื่อกี้ จากนั้นให้พิมพ์เพื่อทำการตรวจสอบว่าค่าที่ได้แก้ไขถูกโหลดขึ้นมาแล้ว

# ulimit -a
open files (-n) 4096

3. แก้ไขไฟล์ /etc/squid/squid.conf แล้วเพิ่มค่าด้านล่างเข้าไป

max_filedesc 4096

ค่าที่ได้แก้ไขควรที่จะมี่าเท่ากับค่าที่แก้ไขในไฟล์ /etc/security/limits.conf ในข้อที่ 1.

4. ทำการ Restart squid service:

# service squid restart

5. รันคำสั่ง squidclient เพื่อตรวจสอบว่า squid ได้โหลดคอนฟิกเป็นที่เรียบร้อยแล้วดังคำสั่งด้านล่าง

# squidclient mgr:info

File descriptor usage for squid:
Maximum number of file descriptors: 4096