RHEL7 service和chkconfig命令整合为systemctl命令
启动一个服务:
systemctl start postfix.service
关闭一个服务:
systemctl stop postfix.service
重启一个服务:
systemctl restart postfix.service
显示一个服务的状态:
systemctl status postfix.service
在开机时启用一个服务:
systemctl enable postfix.service
在开机时禁用一个服务:
systemctl disable postfix.service
查看服务是否开机启动:
systemctl is-enabled postfix.service
查看已启动的服务列表:
systemctl list-unit-files|grep enabled
查看启动失败的服务列表:
systemctl --failed
按照如下方式解决:
tc是Linux系统中的一个工具,全名为traffic control(流量控制)。tc可以用来控制netem的工作模式,也就是说,如果想使用netem ,需要至少两个条件,一个是内核中的netem 功能被包含,另一个是要有tc 。
需要注意的是:这里介绍的流控只能控制发包动作,不能控制收包动作,同时,它直接对物理接口生效,如果控制了物理的eth0,那么逻辑网卡(比如eth0:1)也会受到影响,反之,如果您在逻辑网卡上做控制,该控制可能是无效的。(注:虚拟机中的多个网卡可以在虚拟机中视为多个物理网卡)。
查看规则队列
#tc qdisc show dev eth0
#tc -s qdisc ls dev eth0
#tc qdisc show
删除规则
#tc qdisc del dev eth0 root
# tc qdisc add dev eth0 root netem delay 100ms
该命令将eth0网卡的传输设置为延迟100毫秒发送。
更真实的情况下,延迟值不会这么精确,会有一定的波动,我们可以用下面的情况来模拟出带有波动性的延迟值:
# tc qdisc add dev eth0 root netem delay 100ms 10ms
该命令将eth0网卡的传输设置为延迟100ms±10ms(90 ~ 110 ms之间的任意值发送。
还可以更进一步加强这种波动的随机性:
# tc qdisc add dev eth0 root netem delay 100ms 10ms 30%
该命令将eth0网卡的传输设置为100ms同时,大约有30%的包会延迟±10ms发送。
# tc qdisc add dev eth0 root netem loss 1%
该命令将eth0网卡的传输设置为随机丢掉1%的数据包。
也可以设置丢包的成功率:
# tc qdisc add dev eth0 root netem loss 1% 30%
该命令将eth0网卡的传输设置为随机丢掉1%的数据包,成功率为30%。
# tc qdisc add dev eth0 root netem duplicate 1%
该命令将eth0网卡的传输设置为随机产生1%的重复数据包。
# tc qdisc add dev eth0 root netem corrupt 0.2%
该命令将eth0网卡的传输设置为随机产生0.2%的损坏的数据包(内核版本需在2.6.16以上)。
# tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%
该命令将eth0网卡的传输设置为:有25%的数据包(50%相关)会被立即发送,其他的延迟10秒。
新版本中,如下命令也会在一定程度上打乱发包的次序:
# tc qdisc add dev eth0 root netem delay 100ms 10ms
tcp_max_tw_buckets系统同时处理的最大time-wait sockets数目。如果超过这个数字,time-wait socket会被立即砍除并且显示警告信息。之所以要设定这个限制,是为了抵御那些简单的DOS攻击,千万不要人为地降低这个限制。如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)。
[root@mail ~]# netstat -pant |awk '/^tcp/ {++state[$6]}
END {for(key in state) printf("%-10s\t%d\n",key,state[key]) }'
2)查看内核参数
vi /etc/sysctl.conf
将
net.ipv4.tcp_max_tw_buckets = 5000
改为:
net.ipv4.tcp_max_tw_buckets = 10000
3)使更改的内核参数生效
sysctl -p
4)再次查看服务器网络连接情况
按照如下进行配置:
[root@larrywen yum.repos.d]#mkdir /iso
[root@larrywen yum.repos.d]# cp rhel-source.repo iso.repo
[root@larrywen yum.repos.d]# cat iso.repo
#yun源的名字,做到全局唯一不重复
[rhel-iso]
#注释信息
name=Red Hat Enterprise Linux $releasever - $basearch - Source
#yum源的路径,支持三种协议:http、ftp、file,其中file表示本地文件,/iso才是真实路径
baseurl=file:///iso
#1表示启用,0表示禁用
enabled=1
#指纹校验,为0表示不校验
gpgcheck=0
#校验参考的文件
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
本地需要挂载,使用mount命令即可
[root@larrywen yum.repos.d]# mount
/home/Wentasy/software/rhel-server-6.1-x86_64-dvd.iso /iso -o loop
可以测试是否配置成功,还可以进入iso查看是否有文件
[root@larrywen yum.repos.d]# yum grouplist|grep Devel
Additional Development
Desktop Platform Development
Development tools
Server Platform Development
mount后重启失效,要想永久生效,添加此句话
[root@localhost yum.repos.d]# echo "mount /dev/cdrom /iso" >> /etc/rc.local
[root@localhost yum.repos.d]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
mount /dev/cdrom /iso