<div dir="ltr">Hi,<input name="virtru-metadata" type="hidden" value="{"email-policy":{"state":"closed","expirationUnit":"days","disableCopyPaste":false,"disablePrint":false,"disableForwarding":false,"expires":false},"attachments":{}}"><div><br></div><div>We've recently shifted to FreeBSD-10 due to its robust asynchronous performance for big storage based on .mp4 files. Here is the server specs :<br><br>2 x Intel Xeon X5690</div><div>96GB DDR3 Memory</div><div>12 x 3TB SATA Raid-10 (HBA LSI-9211)</div><div>ZFS FileSystem with 18TB usable space</div><div>2 x 1Gbps LACP (2Gbps Throughput)</div><div><br></div><div>Things are working quite well, no high I/O due to Big Ram cache and AIO performance but once network port started to go over 1Gbps, performance begins to lag, download speed started to stuck around 60-100Kbps on a 4Mbps connection (using wget) which works quite efficient under 800Mbps port (450kbps on 4Mbps). We first thought it could be network issue or LACP issue but doesn't looks like it is. We also checked that if requests are in queue using following command but it was '0':<br><br><div>[root@cw005 ~/scripts]# netstat -Lan</div><div>Current listen queue sizes (qlen/incqlen/maxqlen)</div><div>Proto Listen         Local Address         </div><div>tcp4  0/0/6000       *.80                   </div><div>tcp4  0/0/6000       *.443                  </div><div>tcp4  0/0/10         127.0.0.1.25           </div><div>tcp4  0/0/128        *.1880                 </div><div>tcp6  0/0/128        *.1880                 </div><div>tcp4  0/0/5          *.5666                 </div><div>tcp6  0/0/5          *.5666                 </div><div>tcp4  0/0/128        *.199                  </div><div>unix  0/0/6000       /var/run/www.socket</div><div>unix  0/0/4          /var/run/devd.pipe</div><div>unix  0/0/4          /var/run/devd.seqpacket.pipe</div><div><br></div><div>Here is the output of mbcluster :<br><br><div>119747/550133/669880/6127378 mbuf clusters in use (current/cache/total/max)</div><div>661065/1410183/2071248/6063689 4k (page size) jumbo clusters in use (current/cache/total/max)</div></div><br></div><div>We also checked with Disk Busy rate using gstat which was quite stable as well.</div><div><br></div><div>So it looks like either the sysctl values need to tweak or Nginx configurations are not optimized. Here is the sysctl.conf :</div><div><br></div><div><div>kern.ipc.somaxconn=6000</div><div># set to at least 16MB for 10GE hosts</div><div>kern.ipc.maxsockbuf=16777216</div><div># socket buffers</div><div><br></div><div>net.inet.tcp.recvspace=4194304</div><div>net.inet.tcp.sendspace=4197152</div><div>net.inet.tcp.sendbuf_max=16777216</div><div>net.inet.tcp.recvbuf_max=16777216</div><div>net.inet.tcp.sendbuf_auto=1</div><div>net.inet.tcp.recvbuf_auto=1</div><div>net.inet.tcp.sendbuf_inc=16384</div><div>net.inet.tcp.recvbuf_inc=524288</div><div># security</div><div>security.bsd.see_other_uids=0</div><div>security.bsd.see_other_gids=0</div><div># drop UDP packets destined for closed sockets</div><div>net.inet.udp.blackhole=1</div><div># drop TCP packets destined for closed sockets</div><div>net.inet.tcp.blackhole=2</div><div># ipfw</div><div>net.inet.ip.fw.verbose_limit=3</div><div># maximum incoming and outgoing IPv4 network queue sizes</div><div>net.inet.ip.intr_queue_maxlen=2048</div><div>net.route.netisr_maxqlen=2048</div><div><br></div><div>net.inet.icmp.icmplim: 2048</div><div>net.inet.tcp.fast_finwait2_recycle=1</div><div>kern.random.sys.harvest.ethernet=0</div><div>net.inet.ip.portrange.randomized=0</div><div>net.link.lagg.0.use_flowid=0</div><div><br></div><div>Here is the bootloader.conf :<br><br><div>zpool_cache_load="YES"</div><div>zpool_cache_type="/boot/zfs/zpool.cache"</div><div>zpool_cache_name="/boot/zfs/zpool.cache"</div><div>aio_load="YES" </div><div>zfs_load="YES"</div><div>ipmi_load="YES"</div></div><div><br></div><div>Here is the nginx.conf :<br><br><div>user  www www;</div><div>worker_processes 48;</div><div>worker_rlimit_nofile 900000; #2 filehandlers for each connection</div><div>error_log  /var/log/nginx-error.log  error;</div><div>#pid        logs/nginx.pid;</div><div><br></div><div>events {</div><div>    worker_connections  10240;</div><div>    multi_accept on; </div><div><br></div><div>}</div><div>http {</div><div>     include       mime.types;</div><div>     default_type  application/octet-stream;</div><div>     add_header X-Content-Type-Options nosniff; </div><div>     add_header X-XSS-Protection "1; mode=block";</div><div>     client_max_body_size 4096M;</div><div>     client_body_buffer_size 800M;</div><div>     output_buffers 1 512k;</div><div>     sendfile_max_chunk 128k;</div><div><br></div><div>    </div><div>     fastcgi_connect_timeout 30;</div><div>     fastcgi_send_timeout 30; </div><div>     fastcgi_read_timeout 30; </div><div>     proxy_read_timeout 30;</div><div>     fastcgi_buffer_size 64k;</div><div>     fastcgi_buffers 16 64k;</div><div>     fastcgi_temp_file_write_size 256k;</div><div><br></div><div><br></div><div>     server_tokens off; #Conceals nginx version</div><div>     access_log off;</div><div>     sendfile        off;</div><div>     tcp_nodelay on;</div><div>     aio on;</div><div>     client_header_timeout  30s;</div><div>     client_body_timeout 30s;</div><div>     send_timeout     30s;</div><div>     keepalive_timeout  15s;</div><div>     ssl_session_cache   shared:SSL:10m;</div><div>     ssl_session_timeout 10m;</div><div>    gzip off;</div><div>    gzip_vary on;</div><div>    gzip_disable "MSIE [1-6]\.";</div><div>    gzip_proxied any;</div><div>    gzip_http_version 1.0;</div><div>    gzip_min_length  1280;</div><div>    gzip_comp_level  6;</div><div>    gzip_buffers  16 8k;</div><div>    gzip_types    text/plain text/xml text/css application/x-javascript image/png image/x-icon image/gif image/jpeg image/jpg application/xml application/xml+rss text/javascr     ipt application/atom+xml;</div><div>     include /usr/local/etc/nginx/vhosts/*.conf;</div><div>}</div></div><br>Here is the vhost :<br><br><div>server {</div><div>         listen  80  sndbuf=16k;</div><div>              server_name  <a href="http://cw005.files.com">cw005.files.com</a> <a href="http://cw005.domain.com">cw005.domain.com</a> <a href="http://www.cw005.files.com">www.cw005.files.com</a> <a href="http://www.cw005.domain.com">www.cw005.domain.com</a> <a href="http://cw005.domain.net">cw005.domain.net</a> <a href="http://www.cw005.domain.net">www.cw005.domain.net</a>;</div><div>        location / {</div><div>            root   /files;</div><div>            index index.html index.htm index.php;</div><div>           autoindex off;</div><div>}</div><div>       location ~ \.(jpg)$ {</div><div>              <b>  sendfile on;</b></div><div>                 tcp_nopush on;</div><div>              <b>  aio off;</b></div><div>                root /files;</div><div>                try_files $uri /thumbs.php;</div><div>                expires 1y;</div><div>         }</div><div><br></div><div>        location ~* \.(js|css|png|gif|ico)$ {</div><div>                root /files;</div><div>                expires 1y;  </div><div>                log_not_found off;</div><div>        }</div><div><br></div><div><br></div><div>        location ~ \.(flv)$ {</div><div>                flv;</div><div>                root /files;</div><div>                expires 7d;</div><div>                include hotlink.inc;</div><div>                }</div><div><br></div><div>        location ~ \.(mp4)$ {</div><div>                mp4;</div><div>             mp4_buffer_size 4M;</div><div>                mp4_max_buffer_size 20M;</div><div>                expires 1y;</div><div>                add_header Cache-Control "public";</div><div>                root /files;</div><div>                include hotlink.inc;</div><div>                }</div><div><br></div><div> # pass the PHP scripts to FastCGI server listening on unix:/var/run/www.socket</div><div>        location ~ \.php$ {</div><div>            root /files;</div><div>            fastcgi_pass   unix:/var/run/www.socket;</div><div>           fastcgi_index  index.php;</div><div>            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;</div><div>            include        fastcgi_params;</div><div>           fastcgi_read_timeout 10000;</div><div>        }</div><div><br></div><div>        location ~ /\.ht {</div><div>            deny  all;</div><div>        }</div><div><br></div><div>}</div></div><div><br></div><div>====================================================</div><div><br></div><div>Please i need guidance to handle with this problem, i am sure that some value needs to tweak.</div><div><br></div><div>Thanks in advance !!</div></div>