Traffic

Traffic

数不清的用户在访问你的服务器

带宽与服务器可以随时增加,但也有限

瓶颈无处不在


user -> \                                     /--1G--> | server |
user ->  |--1G--> [Firewal] --1G--> [Switch] ----1G--> | server |
user -> /                                     \--1G--> | server |

2.1. bandwidth

主流网络设备带宽均为1G,目前来看10G仍不普及,仅在存储领域封闭使用,价格非常昂贵

firewall (1G) - switch (Forwarding bandwidth / 1G) - server (NIC 1G)

2.1.1. firewall

怎么能提高带宽呢?

首先是防火墙,这个设备非常重要。 100M 基本淘汰,10G 防火墙尚未普及,1G带宽如果不够怎么办?答案是买2个,3个...

为什么不买10G的。在下面会谈到会话数,你一看就明白了。10G防火墙会话数不是1G防火墙会话数的十倍。

2.1.2. switch

目前主流交换机,48个以太网口与2或4个SFP光纤口均为1G带宽

一般中小企业1台交换机足够,再上一个台阶超过40台服务,就会有出现多台交换机互连问题,使用以太网口与SFP光纤口的带宽是一样的,唯一区别是传输距离。

每个交换机后面都对应几十台服务器,每个服务器1G网卡,如果这些服务器满负荷传输,交换机与交换机间数据传输就会带来瓶颈。

通过端口聚合可以解决交换机间数据传输瓶颈,另种方式是交换机堆叠。

          +----------+                          +----------+
          |          |gi0/0/1            gi0/0/1|          |
          | Switch A +--------------------------+ Switch B |
          |          +--------------------------+          |
          |          |gi0/0/2            gi0/0/2|          |
          +----------+                          +----------+
			

比如你有5个机柜,将交换机放置到3号机柜,处于中间位置,所有交换机放入该机柜,然后堆叠,从中心机柜向两侧分线

对于不大不小的企业,直接采购IDC箱式交换机

2.1.3. Server

目前主流服务都配备2到4个网口,像IBM / HP / DELL 等品牌服务器你无需关心网卡问题.

这里主要是针对自行安装或使用PC服务器的用户,因为很多PC服务器使用Realtak网卡。那么Realtak与Broadcom的NetXtreme有什么不同?

建议你安装一个windows系统在服务器上,然后看看网卡驱动属性。Realtak 仅仅提供基本网络功能,QOS质量访问服务由驱动程序提供(软QOS)而NetXtreme 提供非常丰富的功能,并且都是硬件实现。

话题回到带宽上,linux 支持 bonding 网卡,可以帮你解决服务器网络通信带宽问题,bonding 还可以解决网卡故障转移,传输流量负载均衡等等。

在我的《Netkiller Linux 手札》中你可以找到具体的设置方法。

2.2. Session

firewall (nat session) - switch (Forwarding bandwidth) - os (ulimit,sysctl) - application (httpd,vsftpd,tomcat ...)

会话数,国人俗称并发数。当你的带宽没有满,但tcp不能建立连接,这时你就要考虑会话数了。

2.2.1. firewall

购买防火墙的时候主要有两个指标,一是会话数,二是带宽,二是配备模块。售前工程师都会交代清楚。

例如 Cisco ASA 5550 会话数65万,2个1G接口,可选IPS模块等等...

使用下面命令可以查看当前会话数

show conn count
			

2.2.2. Server

Linux 影响会话数的的参数与配置文件

/etc/security/limits.conf , /etc/security/limits.d

nofile - max number of open files 在POSIX系统中硬件,管道,Socket 均被看作是一个设备,如硬盘是块设备,显示器是字符设备,操作这些设备均使用c的open函数,被算作打开一个文件。所有设备都是如此,加上web服务器还要读取很多HTML文件,系统对nofile 开销是非常巨大的。

nproc - max number of processes 目前多线程是主流,使用多线程技术这个参数可以不关心。像Oracle,PostgreSQL, Apache prefork,你就需要关心这个参数

/etc/sysctl.conf , /etc/sysctl.d/

net.ipv4.ip_local_port_range = 1024 65500 可用端口范围

tcp 协议当你尝试主动与服务器建立连接,如:telnet 172.16.0.1 80,本地会开启一个大于1024小于65500的端口

client: localhost:1025 --- 172.16.0.1:80 server

以上参数要综合你的CPU处理能力,内存空间,硬盘IO等等,才能配置出合理数值

配置过大(小马拉大车),超出你的服务器处理能力,导致服务器无响应,最终只能重启

配置过小(大马拉小车),你的服务器长时间处于空间状态,CPU,内存没有得到合理使用

在我的《Netkiller Linux 手札》中你可以找到具体的设置方法。

2.2.3. application

连接数受限与limits与sysctl

apache : httpd/conf/extra/httpd-mpm.conf

<IfModule mpm_worker_module>
    ServerLimit         16
    ThreadLimit         256
    StartServers        8
    MaxClients          4096
    MinSpareThreads     64
    MaxSpareThreads     256
    ThreadsPerChild     256
    MaxRequestsPerChild 10000
</IfModule>

MySQL : /etc/my.cnf

[mysqld]
max_connections=250

不依依列举,有兴趣看我的系列文档。

2.3. IO

IO (Input/Output) 输入/输出,在国内被泛指硬盘IO,没办法这里也不例外,也被指为硬盘IO

影响IO的几个参数:

硬盘转速与硬盘速率

RAID卡速率

以Dell为例,去官网查看一下http://www.dell.com/content/topics/topic.aspx/global/products/pvaul/topics/en/us/raid_controller?c=us&l=en&cs=555

PERC H700 Integrated / Adapter: 6Gb/s SAS

SAS 硬盘接口 3Gbps,理论读写速度300MB/S,实际情况没有这么理想。

RAID0 / RAID10是提高IO最有效的手段,但是你从上面数据计算。6块SAS硬盘做Raid 0 传输速率可以达到18Gb/s,但RAID卡H700只能达到6Gb/s,整体带宽并没有提高。

这样做的意义是在Raid带宽与硬盘速度不变的情况下,读写所花费的时间减少了,提高了列队处理速度,减少IO排队。

IO的问题就是IO排队等待问题,而不是传输带宽不够用

在经济允许的情况下,你可以配置多个RAID卡,外挂DAS。或者采用集群加分布式文件系统方案

时间: 2024-10-30 00:32:54

Traffic的相关文章

UVa 10693 Traffic Volume (数学&amp;amp;物理模型)

10693 - Traffic Volume Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php? option=com_onlinejudge&Itemid=8&category=467&page=show_problem&problem=16 34 In the picture below (or above depending on HTML response :)) you can see a

Stingray Traffic Manager配置教程

Stingray Traffic Manager配置教程 首先把你后端的软件端口改掉 改成 除80外的可用端口 比如 81 82 83 登录zxtm后台(ZXTM 是一款很强大的负载均衡软件.主要用于web服务器.强大的规则功能和监控系统都是非常给力的.) 第一步 选择 services 再点击pools 找到 Create a new Pool 部分 输入名称 通信服务器IP及端口 可以使用Use Auto-Scaling for the nodes in this pool Monitor:

Magento Block Cache Queue For High Traffic Sites

This is the initial release. It has been tested in a few production environments, but as always use with caution and keep checking the Github repo Requirements Tested Magento 1.7.0.2 Linux What does this fix? If you have a high traffic magento site t

Protect Your Website: How to Avoid SMS Traffic Flooding Attacks

Business is taking off. You are hiring new people, expanding your customer base and you have just bought a new work van to handle the recent spike in orders.  Purchasing the vehicle is a significant investment for your business, including the extra e

ats-有谁验证过traffic server 3.0.0 wccp协议支持功能吗?

问题描述 有谁验证过traffic server 3.0.0 wccp协议支持功能吗? 有哪位大神对traffic server 3.0.0 wccp协议支持的供能有了解呀,小弟最近一直被这块问题困扰,求指导

linux中安装ATS(Apache Traffic Server)

ATS(Apache Traffic Server)是高性能的HTTP代理及缓存服务器,2016年6月21日的最新版本是6.1.1. 下载地址:http://trafficserver.apache.org/downloads 编译安装ATS 安装依赖包 # yum install gcc gcc-c++ openssl-devel tcl-devel expat-devel sqlite-devel pcre-devel libdbi-devel libtool db4-devel 下载ATS

Apache Traffic Server v2.1.7发布 HTTP代理和缓存服务器

Apache Traffic Server(ATS或TS)是一个高性能的.模块化的 HTTP 代理和缓存服务器.Traffic Server 最初是 Inktomi 公司的商业产品,该公司在 2003 年被 Yahoo 收购,之后 Traffic Server 一直在 Yahoo 内部使用长达 4 年,直到 2009 年 8 月 Yahoo 向 Apache 软件基金会(ASF)贡献了源代码,并于 2010 年 4 月成为了 ASF 的顶级项目(Top-Level Project). Apach

Windows Azure网站开始提供Traffic Manager服务

Azure Traffic Manager 已经推出有一段时间,这是一种跨多个区域管理网站的有效方式.您可以将访问者路由至可以提供最佳性能的区域,可以在主区域有问题时将访问者路由至辅助区域,或者将用户负载均匀分配到托管在不同区域的多个网站副本上. 最近,http://www.aliyun.com/zixun/aggregation/13357.html">Azure 网站开始提供 Traffic Manager,我将在本文中为您分步介绍如何配置两者协同工作. 第 1 步 - 在 Azure

Linux TC(Traffic Control) 简介

       众所周知,在互联网诞生之初都是各个高校和科研机构相互通讯,并没有网络流量控制方面的考虑和设计,IP协议的原则是尽可能好地为所有数据流服务,不同的数据流之间是平等的.然而多年的实践表明,这种原则并不是最理想的,有些数据流应该得到特别的照顾,比如,远程登录的交互数据流应该比数据下载有更高的优先级.       针对不同的数据流采取不同的策略,这种可能性是存在的.并且,随着研究的发展和深入,人们已经提出了各种不同的管理模式.IETF已经发布了几个标准,如综合服务(Integrated S