海运的博客

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 http://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  http://www.haiyun.me
#并发数200,持续时间10秒。

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

apt-get install apache2-utils

常用参数:

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

应用示例:

ab -c 100 -n 1000 http://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
分类
最新文章
最近回复
  • K: 好的,谢谢,我去试试!
  • 海运: 可以试试3proxy
  • daha: PHP的怎么使用???
  • 海运: 换回了5.3内核,5.8用5.3 dtb虽然能开机且负载正常,但也有其它问题,不建议使用。
  • shangyatsen: 后面的内核高精度计时器的问题使用5.4或者5.3的dtb会正常吗?我也发现有这个日志出现。感觉...
  • 海运: 缺少相应模块?
  • lee: 你好,我执行这条语句 iptables -t mangle -A PREROUTING -m ...
  • 海运: 只更新rootfs,不更新内核,我在用5.3配19.10,懒得再升最新版了,很稳定。 注意:更...
  • lyly168: 这是手动挂载吧,请问自动挂载要怎么弄?
  • swswsw1: 请问升级后,内核更新了吗?听说N1只有在5.0.2的内核下才稳定,怕升级了之后功耗太高