MENU

Category: 性能&稳定 »

H3C 交换机链路聚合与服务器bond0负载均衡设置

配置bond0上联网络设备也需要做捆绑,如果是冗余的bond则上联不用配置

H3Cs5560交换机

interface Bridge-Aggregation 1
    port access vlan 10
#创建聚合口,划入vlan
int g 1/0/1
    port link-aggregation group 1
#聚合的两个物理口都加入集合组
int g 2/0/1
    port link-aggregation g 1

服务器

bond0配置cat ifcfg-bond0

DEVICE=bond0
BOOTPROTO=static
IPADDR=10.0.0.126
NETMASK=255.0.0.0
GATEWAY=10.0.0.1
ONBOOT=yes
USERCTL=no
TYPE=Ethernet

Read More

查看Linux服务器当前性能以及故障定位

dstat

dstat -ndy --top-mem --top-cpu --top-io  -t #查看关键io

system:int、csw

查看运行时间

who -b

uptime

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"

系统基础命令

top -Hp pid   # 看具体线程负载
top   --> m #内存
top   --> 1   #cpu
uptime --> #负载

服务器并发连接查看

netstat -an | awk '/^tcp/ {print $6}'|sort |uniq -c|sort -n
ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}'
#查看当前TCP连接状态


ss -an|awk '{print $5}'|awk -F: '{print $1}'|sort|egrep -o '[0-9]{1,3}(\.[0-9]{1,3}){3}'|uniq -c|sort -nr|head -n 10
#查看并发最多的独立IP,取其前10个;sort排序 参数nr中n是按照排序大小,r是反向排序。uniq -c计数显示

netstat -n|grep TIME_WAIT|awk  '{print $5}'|awk -F: '{print $1}' |sort|uniq -c|sort -rn|head -n5
#查看后端TIME_WAIT主机

tail  -1000 /var/log/httpd/access_log |awk '{print $NF}'|sort |uniq -c|sort -n
#sort -k1n,k1是第一列;列出1000行域名出现次数

web访问统计

web服务并发

watch 'netstat -an | egrep -w "80|443"|grep ESTABLISHED |wc -l'

输出指定时间段日志

awk '$4 >="[04/Apr/2017:12:25:00" && $4 <="[04/Apr/2017:12:26:00"' blog.log 
#过滤第四列的项,输出大于等于25分,小于等于26分的访问日志

故障定位

java OOM,全称“Out Of Memory”

内存用完了

内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请者不用了,而又不能被虚拟机分配给别人用。
内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出。

参考:
http://369369.blog.51cto.com/319630/792732/

性能测试工具汇总

服务器带宽测试

iperf测试带宽

wget -c  https://codeload.github.com/esnet/iperf/tar.gz/3.1.6 
tar zxvf  3.1.6
cd iperf*
yum install gcc

./configure --prefix=/usr/local/iperf
#指定安装路径
make &&make install
#编译安装
ln -s /usr/local/iperf/bin/iperf3  /usr/local/sbin/iperf
#建立软连接

操作实例

服务端(需要测试的主机):

iperf -s -B 115.236.73.xxx
#使用-B参数可以绑定本机上一个ip地址,-P 参数用来指定端口

客户端:

iperf -d -t 600 -P 10  -c  目标主机
#(-d参数同步测量双向带宽-t 参数传输时间10分钟 -P参数 发起10个连接线程 )

跑48M带宽例子:

iperf.png

补充

UDP 模式 (默认tcp模式)
服务器端 iperf -u -s
客户端 iperf -u -c 192.168.1.1 -b 100M -t 60
在udp模式下,以100Mbps为数据发送速率,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒。
iperf -u -c 192.168.1.1 -b 5M -P 30 -t 60
客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率。
iperf -u -c 192.168.1.1 -b 100M -d -t 60
以100M为数据发送速率,进行上下行带宽测试。

speedtest测试带宽

wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py && chmod  +x speedtest.py && ./speedtest.py

服务器硬盘io测试

dd命令

dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync
#dd命令执行到最后会真正执行一次“同步(sync)”操作,得到的是读取这128M数据到内存并写入到磁盘上所需的时间,比较符合实际推荐使用。

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
#这种方法是最严格的,可以模拟数据库的插入操作,所以很慢

web服务器压测

wrk

git clone https://github.com/wg/wrk
make
# 编译


./wrk -t12 -c400 -d30s http://10.0.1.4
# 测试
Running 30s test @ http://10.0.1.4
  12 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    34.31ms   39.50ms 513.77ms   82.26%
    Req/Sec     1.62k   474.14     6.51k    74.75%
  581189 requests in 30.09s, 129.70MB read
Requests/sec:  19315.33
Transfer/sec:      4.31MB

ab

yum install -y httpd-tools
ab -c 10 -n 100  http://10.0.1.4/
#其中-n表示请求数,-c表示并发数

jmeter

待整理

LoadRunner

待整理