Cấu hình sysctl.conf tốt nhất cho máy chủ phát nội dung tải cực kỳ bận rộn là gì? Máy chủ tìm nạp nội dung từ các máy chủ từ xa như amazon, s3, v.v. sau đó sử dụng php để tự động truyền nội dung đến người dùng mà không lưu nó vào ổ cứng. php sử dụng CURL để tìm nạp tệp, sau đó sử dụng flush () để truyền phát đồng thời, vì vậy không có nhiều ổ cứng hoạt động ... chỉ có mạng và băng thông.
Máy chủ là xe lõi tứ, với bộ đôi song công 1Gbit, RAM 8gb và 500GBx2 trong RAID. Sử dụng bộ nhớ máy chủ và tải cpu khá thấp.
Chúng tôi đang chạy debian lenny và lighttpd2 trên đó (vâng tôi biết nó chưa được phát hành :-)) với php 5.3.6 và php fastcgi với spawn-fcgi liên kết trên 4 ổ cắm unix khác nhau với 20 con mỗi cái. Yêu cầu tối đa fcgi là 20, với mô-đun mod_balancer trong cấu hình lighttpd2 để cân bằng các yêu cầu fastcgi trong số 4 ổ cắm này trong cấu hình SQF (hàng đợi ngắn trước).
Máy chủ của chúng tôi sử dụng rất nhiều băng thông, tức là kết nối mạng luôn bận rộn. Chỉ sau 100 đến 200 kết nối song song, máy chủ bắt đầu chậm lại và cuối cùng trở nên không phản hồi, bắt đầu đưa ra lỗi hết thời gian kết nối. Khi chúng tôi có cpanel, chúng tôi không bao giờ gặp lỗi hết thời gian, vì vậy nó không thể là vấn đề về kịch bản. Nó phải là một vấn đề cấu hình mạng.
Cấu hình lighttpd2: worker process = 8, giữ các yêu cầu còn sống là 32, thời gian chờ không hoạt động là 10 giây và các kết nối tối đa là 8192.
Nội dung sysctl.conf hiện tại của chúng tôi là:
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_tw_recycle = 1
# Increase maximum amount of memory allocated to shm
kernel.shmmax = 1073741824
# This will increase the amount of memory available for socket input/output queues
net.ipv4.tcp_rmem = 4096 25165824 25165824
net.core.rmem_max = 25165824
net.core.rmem_default = 25165824
net.ipv4.tcp_wmem = 4096 65536 25165824
net.core.wmem_max = 25165824
net.core.wmem_default = 65536
net.core.optmem_max = 25165824
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
# you shouldn't be using conntrack on a heavily loaded server anyway, but these are
# suitably high for our uses, insuring that if conntrack gets turned on, the box doesn't die
# net.ipv4.netfilter.ip_conntrack_max = 1048576
# net.nf_conntrack_max = 1048576
# For Large File Hosting Servers
net.core.wmem_max = 1048576
net.ipv4.tcp_wmem = 4096 87380 524288
sysctls
. Kiểm tra xem có quá trình nghẹt thở, thiếu bộ nhớ, vv strace
các quy trình và xem tại sao / nơi chúng bị treo.