海运的博客

Linux服务器内核网络参数优化

发布时间:November 8, 2012 // 分类:系统调优 // No Comments

由于TCP协议缺陷被恶意利用Syn-Flood攻击,Linux内核调整这些参数可缓解这类攻击:

net.ipv4.tcp_syncookies = 1
#启用syncookies
net.ipv4.tcp_max_syn_backlog = 8192
#SYN队列长度
net.ipv4.tcp_synack_retries=2
#SYN ACK重试次数

Linux服务器作为网关或代理时TIME-WAIT较多,可通过以下参数优化调整:

net.ipv4.tcp_fin_timeout = 30
#主动关闭方FIN-WAIT-2超时时间
net.ipv4.tcp_keepalive_time = 1200
#TCP发送keepalive消息的频度
net.ipv4.tcp_tw_reuse = 1
#开启TIME-WAIT重用
net.ipv4.tcp_tw_recycle = 1
#开启TIME-WAIT快速回收
net.ipv4.ip_local_port_range = 1024 65000
#向外连接的端口范围
net.ipv4.tcp_max_tw_buckets = 5000
#最大TIME-WAIT数量,超过立即清除
net.ipv4.tcp_syn_retries = 2
#SYN重试次数

其它一些参数优化:

net.ipv4.tcp_rmem = 4096 87380 4194304
#TCP接收缓冲大小,对应最小、默认、最大
net.ipv4.tcp_wmem = 4096 16384 4194304
#TCP发送缓冲大小,对应最小、默认、最大
net.core.rmem_max = 16777216
#最大发送套接字缓冲区大小
net.core.wmem_max = 16777216
#最大接收套接字缓冲区大小
net.core.netdev_max_backlog = 262144
#当网络接口接收速率比内核处理快时允许发到队列的数据包数目
net.core.somaxconn = 262144
#最大连接队列,超过导致连接超时或重传

Linux禁止atime提高IO性能

发布时间:July 17, 2012 // 分类:系统调优 // No Comments

Linux服务器当访问文件或目录的时候会同步更新atime,如果服务器业务较大会给磁盘带来很大的负担,可以修改挂载参数不写入访问时间。

cat /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults,noatime,nodiratime        1 1

重新挂载磁盘分区:

mount -o remount /

查看当前挂载参数:

 mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw,noatime,nodiratime)

Linux/Centos下多种方法查看系统block size大小

发布时间:June 24, 2012 // 分类:系统调优 // No Comments

1.用tune2fs查看block size大小:

tune2fs -l /dev/sda1 |grep "Block size"
Block size:               1024

2.用stat查看block size大小:

stat /boot/|grep "IO Block"
Size: 1024          Blocks: 2          IO Block: 1024   目录

3.用dumpe2fs查看block size大小:

dumpe2fs /dev/sda1 |grep "Block size"
Block size:               1024

Linux下Web服务器压力测试工具

发布时间:May 12, 2012 // 分类:系统调优 // No Comments

1.Webbench,安装:

wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz 
cd webbench-1.5/
make && make install

常用参数:

-t 测试时间
-c 并发连接数

应用举例:

webbench -c 1000 -t 300 https://www.haiyun.me/
#模拟1000并发数,测试时间300秒。

2.Http_load,安装:

cd /usr/local/src/
http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
tar zxvf http_load-12mar2006.tar.gz 
cd http_load-12mar2006/
make && make install

常用参数:

-p 并发访问进程数
-f 总的访问次数
-r 每秒的访问频率
-s 总的访问时间

应用示例:

http_load -p 100 -f 1000 url.txt #总访问1000次,并发100。
http_load -r 100 -s 300 url.txt #持续300秒,每秒100次访问。

3.Siege,安装:

wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
tar zxvf siege-latest.tar.gz 
cd siege-2.72/
./configure 
make 
make install
siege.config 

常用参数:

-i 多个url,随机访问
-c 并发用户数
-r 重复次数
-t 测试时间
-l 输出测试日志

应用示例:

siege -c 200 -t 10  https://www.haiyun.me
#并发数200,持续时间10秒。

4.ab,apache自带的一款功能强大的测试工具,debian下单独安装:

apt-get install apache2-utils

常用参数:

-n 请求总次数
-c 并发请求数,不能大于-n

应用示例:

ab -c 100 -n 1000 https://www.haiyun.me/index.html
#并行发送100个请求,执行1000次。

Linux/Centos修改最大文件数限制

发布时间:May 7, 2012 // 分类:系统调优 // No Comments

查看系统最大文件数限制:

cat /proc/sys/fs/file-max 

查看系统当前已打开的文件数:

cat /proc/sys/fs/file-nr 

调整系统最大文件数限制:

echo "fs.file-max=65535" >> /etc/sysctl.conf
sysctl -p

查看特定进程限制:

cat /proc/1526/limits

查看指定进程已打开的文件数:

ls /proc/1526/fd/|wc -l

修改进程方面限制:

ulimit -HSn 65535 #只对当前用户有效

修改永久限制:

#centos6 /etc/security/limits.d/90-nproc.conf 
cat >>/etc/security/limits.conf<<EOF 
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF

如不能保持:

cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF

Centos7下修改/etc/security/limits.conf文件只在用户登录后打开的进程有效,系统服务或通过rc.local启动的无效,系统服务修改文件/usr/lib/systemd/system/SOME_SERVICE.service添加:

[Service]
LimitNOFILE=65535

rc.local启动进程前添加:

ulimit -SHn 65535
分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...