banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix nginx - No buffer space available (105)  XML
  [Question]   nginx - No buffer space available (105) 30/05/2012 10:03:20 (+0700) | #1 | 264253
jin9x
Member

[Minus]    0    [Plus]
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
[Profile] [PM] [Yahoo!]
Mình có 1 cái vps được cài centos 32bit, disk space 10Gb, RAM 512Mb, 1 core
cài đặt web server theo mô hình: client => nginx (proxy) => apache
Mình dùng ab để test performance với thông số -n 2000 -c 300 thì gặp phải lỗi
socket: No buffer space available (105) 

thử giảm xuống -n 2000 -c 200 thì request được nhưng truy cập vào web thì báo lỗi 50x (500 502 503 504)
[alert] 32680#0: *1476165 socket() failed (105: No buffer space available) while connecting to upstream, client: x.x.x.x, server: domain.com, request: "GET / HTTP/1.0", upstream: "http://x.x.x.x:8080/", host: "domain.com

//Những phần màu vàng là những đoạn đã bị thay đổi

file cấu hình nginx
#######################################################################
#
# This is the main Nginx configuration file.
#
# More information about the configuration options is available on
# * the English wiki - http://wiki.nginx.org/Main
# * the Russian documentation - http://sysoev.ru/nginx/
#
#######################################################################

#----------------------------------------------------------------------
# Main Module - directives that cover basic functionality
#
# http://wiki.nginx.org/NginxHttpMainModule
#
#----------------------------------------------------------------------

user apache;
worker_processes 1;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;

pid /var/run/nginx.pid;


#----------------------------------------------------------------------
# Events Module
#
# http://wiki.nginx.org/NginxHttpEventsModule
#
#----------------------------------------------------------------------

events {
worker_connections 1024;
}


#----------------------------------------------------------------------
# HTTP Core Module
#
# http://wiki.nginx.org/NginxHttpCoreModule
#
#----------------------------------------------------------------------

http {
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 0;
#keepalive_timeout 65;

#gzip on;

#
# The default server
#
server {
listen 80;
server_name 127.0.0.1;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}

error_page 404 = /404.html;
location = /404.html {
root /usr/share/nginx/html;
}

# wwwect server error pages to the static page /50x.html
#
error_page 500 502 503 504 = /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/default.conf;
include /etc/nginx/conf.d/virtual/*.conf;
}
 

//Giải thích luôn phần màu đỏ tại sao mình dùng user apache chứ không mặc định là nginx
Vì mình lọc ra các file tĩnh (hình ảnh, html, zip, rar ... etc ...) và cho tải bằng nginx với expires max
Chỉ có các link nội dung động mới cho chuyển tiếp qua apache (listen ở 1 port khác)
Vậy cách này có ưu nhược gì không, và có nên cho toàn bộ file đều chạy qua proxy hết không ? (vấn đề này đang thắc mắc nhưng chưa có tài liệu gì để tham khảo trả lời)

Thực tế hiện tại là server của mình vẫn luôn gặp phải lỗi này vì lượng truy cập đồng thời cũng khá cao
Bạn nào có thể giúp mình hướng giải quyết hoặc gợi ý cho mình được không.
tiền là giấy ,thấy là lấy ...
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 10:40:15 (+0700) | #2 | 264257
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
VPS bạn đang dùng cái gì vậy: http://people.redhat.com/~rjones/virt-what/?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 11:34:42 (+0700) | #3 | 264266
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Có 512Mb Ram mà vừa dùng cho kernel + daemon + nginx + apache (+ mysql) rồi phang nó kiểu đó thì "(105: No buffer space available)" là đúng rồi.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 12:53:33 (+0700) | #4 | 264268
jin9x
Member

[Minus]    0    [Plus]
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
[Profile] [PM] [Yahoo!]

quanta wrote:
VPS bạn đang dùng cái gì vậy: http://people.redhat.com/~rjones/virt-what/? 

openvz

conmale wrote:
Có 512Mb Ram mà vừa dùng cho kernel + daemon + nginx + apache (+ mysql) rồi phang nó kiểu đó thì "(105: No buffer space available)" là đúng rồi. 

ban đầu em cũng đã nghĩ là do RAM, nhưng sau 1 thời gian cố gắng theo dõi
thì những lúc có lỗi xảy ra, em dùng lệnh top để kiểm tra thì RAM luôn đạt khoảng 60% (280mb), cao hơn 1 tí so với những lúc ko xảy ra lỗi.
hay cái buffer đó chạy cần 1 lượng RAM trống nào đó ?
tiền là giấy ,thấy là lấy ...
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 13:21:40 (+0700) | #5 | 264269
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

jin9x wrote:

quanta wrote:
VPS bạn đang dùng cái gì vậy: http://people.redhat.com/~rjones/virt-what/? 

openvz
 

Bạn gửi kết quả `# cat /proc/user_beancounters` lên xem.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 13:24:05 (+0700) | #6 | 264270
jin9x
Member

[Minus]    0    [Plus]
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
[Profile] [PM] [Yahoo!]

quanta wrote:

jin9x wrote:

quanta wrote:
VPS bạn đang dùng cái gì vậy: http://people.redhat.com/~rjones/virt-what/? 

openvz
 

Bạn gửi kết quả `# cat /proc/user_beancounters` lên xem. 


Code:
cat /proc/user_beancounters
Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
   110148:  kmemsize                  6564392             14133253            134217728            154217728                    0
            lockedpages                     0                    5                  512                  512                    0
            privvmpages                 70601               116635               131072               131072                    0
            shmpages                      643                 3363                24576                24576                    2
            dummy                           0                    0                    0                    0                    0
            numproc                        50                  142                  500                  500                    0
            physpages                   30540                74687                    0  9223372036854775807                    0
            vmguarpages                     0                    0               131072               131072                    0
            oomguarpages                30541                74688               131072               131072                    0
            numtcpsock                     42                  500                  500                  500               250750
            numflock                       12                   33                  400                  600                    0
            numpty                          1                    2                   81                   81                    0
            numsiginfo                      0                   11                  512                  512                    0
            tcpsndbuf                 1048032              8539880              8388608              8888608              8122883
            tcprcvbuf                  559008              3931792              8388608              8888608                    0
            othersockbuf                32448               391552              8388608              8888608                    0
            dgramrcvbuf                     0                16944              8388608              8888608                    0
            numothersock                   36                  186                  500                  500                    0
            dcachesize                 563400              1031433              8388608              8888608                    0
            numfile                      1510                 2570                13056                13056                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            numiptent                      28                  500                  500                  500                 6553
tiền là giấy ,thấy là lấy ...
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 13:46:20 (+0700) | #7 | 264273
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Cho server bị lỗi lại và kiểm tra thông tin trong file này xem giá trị `numtcpsock` và `tcpsndbuf` là bao nhiêu.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 14:14:49 (+0700) | #8 | 264275
jin9x
Member

[Minus]    0    [Plus]
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
[Profile] [PM] [Yahoo!]

quanta wrote:
Cho server bị lỗi lại và kiểm tra thông tin trong file này xem giá trị `numtcpsock` và `tcpsndbuf` là bao nhiêu. 

em đã cho chạy ab -n 2000 -c 200 (những lần trước dùng với option này đều gây lỗi)
và được nội dung file như sau
Code:
cat /proc/user_beancounters
Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
   110148:  kmemsize                  9732552             14133253            134217728            154217728                    0
            lockedpages                     0                    5                  512                  512                    0
            privvmpages                 87370               116635               131072               131072                    0
            shmpages                     1283                 3363                24576                24576                    2
            dummy                           0                    0                    0                    0                    0
            numproc                        61                  142                  500                  500                    0
            physpages                   46285                74687                    0  9223372036854775807                    0
            vmguarpages                     0                    0               131072               131072                    0
            oomguarpages                46286                74688               131072               131072                    0
            numtcpsock                    490                  500                  500                  500               254579
            numflock                       10                   33                  400                  600                    0
            numpty                          2                    2                   81                   81                    0
            numsiginfo                      0                   11                  512                  512                    0
            tcpsndbuf                 1264032              8539880              8388608              8888608              8122883
            tcprcvbuf                 1222000              3931792              8388608              8888608                    0
            othersockbuf                83552               391552              8388608              8888608                    0
            dgramrcvbuf                     0                16944              8388608              8888608                    0
            numothersock                   53                  186                  500                  500                    0
            dcachesize                 985011              1031433              8388608              8888608                    0
            numfile                      2150                 2570                13056                13056                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            numiptent                      28                  500                  500                  500                 6553
tiền là giấy ,thấy là lấy ...
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 30/05/2012 16:16:52 (+0700) | #9 | 264291
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Không thấy có dấu hiệu quá giới hạn buffer cho phép như rất gần giới hạn. Khả năng quá giới hạn rất có thể đã xảy ra.

Cách duy nhất là chỉnh nginx và apache để giảm số concurrent connections xuống và keepalive timeout xuống càng thấp càng tốt.

Xài mấy cái openVZ này thường không có mấy quyền tweak kernel parameters cho nên rất kẹt.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 31/05/2012 09:25:41 (+0700) | #10 | 264332
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

conmale wrote:
Không thấy có dấu hiệu quá giới hạn buffer cho phép như rất gần giới hạn. Khả năng quá giới hạn rất có thể đã xảy ra.
 

Nhìn cột `failcnt` thì thấy Nginx, Apache đã "đi quá giới hạn" nhiều lần rồi chứ anh. Cách tốt nhất để xác nhận là mở một cái terminal chia làm 3 regions:
1. tail -f /path/to/logfile | ccze
2. watch 'cat /proc/user_beancounters'
3. chạy `ab`

là thấy ngay.

conmale wrote:

Cách duy nhất là chỉnh nginx và apache để giảm số concurrent connections xuống và keepalive timeout xuống càng thấp càng tốt.

Xài mấy cái openVZ này thường không có mấy quyền tweak kernel parameters cho nên rất kẹt. 

Mình không có OpenVZ ở đây để test, nhưng ngoài việc giảm concurrent connections, ép các unused connections được đóng sớm hơn, bạn thử cách này xem:
http://www.eth0.us/openvz-limits
http://zee.balogh.sk/?p=1722
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 31/05/2012 10:07:10 (+0700) | #11 | 264338
[Avatar]
somenuchi
Member

[Minus]    0    [Plus]
Joined: 08/10/2011 09:19:02
Messages: 55
Offline
[Profile] [PM]
Cách quanta đưa ra theo 2 link ở trên chỉ có thể được thực hiện nếu jin9x có quyền quản trị server chạy openvz hoặc được hỗ trợ từ nhà cung cấp. Ngoài cách sử dụng lệnh vzctl thì bạn có thể sửa trực tiếp trên file config của máy ảo đó.
vô thường
[Up] [Print Copy]
  [Question]   nginx - No buffer space available (105) 31/05/2012 18:26:36 (+0700) | #12 | 264357
jin9x
Member

[Minus]    0    [Plus]
Joined: 18/05/2009 21:32:11
Messages: 28
Location: đâu đó
Offline
[Profile] [PM] [Yahoo!]
Sau khi search và đọc nhiều bài viết để cấu hình lại apache và nginx, mình có vài chỉnh sửa sau
nginx.conf
Code:
events {
    worker_connections  1024;
}
keepalive_timeout  3;

httpd.conf
Code:
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
<IfModule prefork.c>
StartServers       1
MinSpareServers    1
MaxSpareServers    5
ServerLimit       10
MaxClients        10
MaxRequestsPerChild  200
</IfModule>

vps mình dùng prefork MPM

vậy có vấn đề gì không, đã thử lại với ab tool nhưng không thay đổi, vấn đề RAM ít nhưng chạy cùng lúc nginx và apache có ảnh hưởng gì lớn đến vấn đề này không ?

cảm ơn các bạn đã giúp. smilie

quanta wrote:
Mình không có OpenVZ ở đây để test, nhưng ngoài việc giảm concurrent connections, ép các unused connections được đóng sớm hơn, bạn thử cách này xem:
http://www.eth0.us/openvz-limits
http://zee.balogh.sk/?p=1722
 

hình như mình không đủ quyền để chỉnh sửa các cấu hình này.
tiền là giấy ,thấy là lấy ...
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|