网络

使用 iperf 检测主机间网络带宽

背景介绍:
在调试网络时,经常需要检测两台主机间的最大带宽,我一直使用iperf命令,效果很好很准确,但发现有一些运维朋友并不知道有这个工具,于是打算写篇文章简单介绍一下。

具体操作:

1
2
3
yum -y install epel-release
yum update
yum -y install iperf

服务端

服务器端需要开启 tcp 5001端口

启动iperf -s

客户端 iperf -c IP地址

macOS

brew install iperf3

参考资料:**

http://heylinux.com/archives/3825.html

https://blogs.oracle.com/mandalika/entry/measuring_network_bandwidth_using_iperf

Vagrant 使用

Vagrant

安装

1
2
brew cask install vagrant
brew cask install virtualbox

ubuntu 镜像下载地址

Ubuntu Cloud Images 18.04 LTS Daily Build

1
vagrant box add bionic-server-cloudimg-amd64-vagrant.box --name ubuntu/bionic64

Vagrantfile

1
2
3
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
end

管理

挂起

将当前的虚拟机挂起,以便下次恢复。

1
vagrant suspend

恢复

恢复虚拟机的上次状态。

1
vagrant resume

注意:我们每次挂起虚拟机后再重新启动它们的时候,看到的虚拟机中的时间依然是挂载时候的时间,这样将导致监控查看起来比较麻烦。因此请考虑先停机再重新启动虚拟机。

重启

清理虚拟机。

1
2
vagrant destroy
rm -rf .vagrant

###

应用

本地分布式开发环境搭建(使用Vagrant和Virtualbox)

https://github.com/ovwane/kubernetes-vagrant-centos-cluster.git

1
git clone https://github.com/ovwane/kubernetes-vagrant-centos-cluster.git

参考

ubuntu/bionic64

WebStorm 配置

快捷键

这里快捷键选用的是Mac OS

格式化

command + shift + L

快速定位变量、函数、模块声明源

command + 鼠标左键

多行光标

option + 鼠标左键

收藏代码某一行

收藏快捷键:将光标移动到目标行,按快捷键 F3
跳转至收藏的行: command+F3

高级
给收藏处标序号:option + F3

跳转到某行

command + L

打开某个文件

command + shift + o

查找和替换

  • 查找:command + f
  • 替换:command + r

全局查找和替换

  • 查找:command + shift + f
  • 替换:command + shift + r

插件

.ignore

.ignore插件忽略不必要提交的文件

Rainbow Brackets

彩虹颜色的括号 看着很舒服 敲代码效率变高。

参考

WebStorm“奇技淫巧”

Docker 配置Shadowsocks-go

CentOS7 Shadowsocks-go

1
2
3
4
5
6
7
8
9
10
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
1
yum install -y yum-utils device-mapper-persistent-data lvm2
1
2
3
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1
2
3
yum list docker-ce --showduplicates | sort -r

yum install docker-ce-18.06.1.ce

启动 docker

1
2
3
systemctl enable docker

systemctl start docker

安装shadowsocks-go

1
docker pull cloverzrg/shadowsocks-go

获取ip

1
2
3
IP_ADDR=$(ip a|grep "inet "|awk -F\  '{print $2}'|awk '{print $1}'|grep -v '127.*'|grep -v '172.*'|awk -F/ '{print $1}')

echo $IP_ADDR
1
docker run -d --name shadowsocks-go -p $IP_ADDR:443:8373 -e PASSWORD=meiyoumima -e METHOD=chacha20 --restart always  cloverzrg/shadowsocks-go

参考

shadowsocks-go-docker

CentOS7 开启BBR

CentOS7 开启BBR

安装kernel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
yum remove -y kernel-headers kernel-tools kernel-tools-libs

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

yum -y install grub2

#kernel-ml-4.17.9-1.el7.elrepo.x86_64
yum --enablerepo=elrepo-kernel install -y kernel-ml kernel-ml-headers kernel-ml-devel
yum --enablerepo=elrepo-kernel install -y kernel-ml-doc kernel-ml-tools kernel-ml-tools-libs perf python-perf

ls -l /boot/vmlinuz*

mkdir /boot/grub

grub2-mkconfig -o /boot/grub/grub.cfg

rpm -qa | grep kernel

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
#egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

shutdown -r now

yum remove -y kernel

shutdown -r now

开启BBR

1
2
3
4
cat >>/etc/sysctl.conf << EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
1
2
3
4
5
6
7
sysctl -p

sysctl net.ipv4.tcp_available_congestion_control

sysctl net.core.default_qdisc

lsmod | grep bbr

参考

Linode CentOS7开启Google TCP-BBR优化算法

一键安装最新内核并开启 BBR 脚本

,