Linux网络配置文件
一般来说,数据库都位于内网,DBA 对于网络/交换机的操作很少,会一些基本的网络操作/配置即可。网络流量很多时候不成为瓶颈。除非是优化的非常好的大业务,这个时候网络才可能成为瓶颈,大多数业务,由于代码/架构的问题,早在网络瓶颈出现之前就暴露出问题了。
日常操作主要做到是修改IP地址,配置DNS服务,偶尔需要修改下路由。
/ect/hosts 配置主机名(域名)和IP地址的对应 这里注意要配置下域名,否则sendmail会起来很慢,导致重启很慢。
/etc/sysconfig/network 配置主机名和网关 一般选择在这里配置网关即可,也可以在网卡专门的配置文件内设置的
/etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推。 这里注意了,不要在这个目录下放备份文件,可能也会加载。如需要备份/etc/sysconfig/network-scripts/下的文件,请备份到其他目录。
/etc/resolv.conf [……]
Read more
大一些的公司,可能有完善的性能模型,尽可能的进行容量/性能 预测。 而小公司,可能更多信任第三方的监控机制,并没有做到很好的性能规划。随着公司不断发展,容量模型是需要逐步建立的, 至于起到的效果几何,也需要有明晰的认识。切记,不要在容量/性能的高度压力下考虑优化,先扩容,把症状降低下来,然后考虑优化,往往是更靠谱的。
确保网络可用,网络在应用层软件和数据库软件的下一层,网络的不可靠,将直接影响到数据库/应用服务器的稳定和性能, 由于网络的复杂性,也必将导致应用软件的复杂,对此应该有清晰的认识。
不要因为解决问题,而在你的架构中引入“新的我问题“ 。对于核心架构/算法 的调整,往往导致异常,”回归测试“可以发现一些问题,但更多依赖于研发同学对于风险的认识,尽可能的解耦,否则调整的代价太大,引入的问题较多。
MySQL网络优化
发一篇自己的笔记…
1.需要清楚自己的网络架构.了解专线的延时对性能的影响,对应用服务器做适当调整,可能需要redirect访问;
2.使用mrtg or cacti监控流量;
3.跨idc的网络完全不能和idc内网质量相比,且速度可能成为问题,国内的网络还可能出现骨干网异常;
4.应用服务尽量避免访问外部的网络资源(特别是慢速网络);
5.跨IDC做复制,其实本质上是为了安全,就是其他机房有一份数据,而不是为了实时同步,也不能要求必须是实时同步,
6.跨IDC的复制,可以启用压缩.
可能导致Mysql服务异常的网络因素:
1. 丢包 (即使1%的丢包也会导致严重性能问题) ;
2. dns服务慢(可使用 skip_name_resolve 解决) ;
3. TCP backlog 的设置,设置大点无可厚非; os参数net.core.somaxconn,net.ipv4.tcp_max_syn_backlog适当设置;
4. 流量瓶颈 . PCIe SSD IO太强,可能网络成为瓶颈, Mysql中间层也需要留意;
5.[……]
Read more
流量控制脚本
目的是限制主从之间同步复制的流量。
[code]
cat tc.sh
#!/bin/sh
prog="Traffic Control Script"
DEV="eth1"
## 最大带宽
max_speed=100k
## 单位是kbit
## 限制为5M
#SPEED=40960
SPEED=90960
SIP=11.11.11.11
SPORT=3306
start() {
echo -n "Starting $prog"
echo ""
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
tc qdisc add dev $DEV handle ffff: ingress
tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 \
match ip src $SIP match ip sport $[......]
Read more
TCP/IP通信程序设计的丰富多样性
长连接与短连接
刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程
序,据此一些人可能会认为TCP/IP编程很简单。其实不然,
TCP/IP编程具有较为丰富的内容。其编程的丰富性主要体现在
通信方式和报文格式的多样性上。
一。通信方式
主要有以下三大类:
(一)SERVER/CLIENT方式
1.一个Client方连接一个Server方,或称点对点(peer to peer):
2.多个Client方连接一个Server方,这也是通常的并发服务器方式。
3.一个Client方连接多个Server方,这种方式很少见,主要
用于一个客户向多个服务器发送请求情况。
(二)连接方式
1.长连接
Client方与Server方先建立通讯连接,连接建立后不断开,
然后再进行报文发送和接收。这种方式下由于通讯连接一直
存在,可以用下面命令查看连接是否建立:
netstat –f inet|grep 端口号(如5678)。
此种方式常用于点对点通讯。
2.短连接
Client方与[……]
Read more
网络掩码
子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。
对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。
子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做AND运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
二层交换机,三层交换机,四层交换机的区别
二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:
(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
从二层交换机的工作原理可以推知以下三点:
(1) 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端[……]
Read more
当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。
如果没有找到这样的路 由器,主机就把IP分组送给一个称为“缺省网关(default gateway)”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址。
路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。
这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了。
目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子[……]
Read more