• RSS订阅
  • 交换链接
  • 首页

Jeffrey’s Blog

Web&P2P系统架构及优化


linux服务器优化笔记

February 27th, 2007

作者: Jeffrey
出处: http://blog.zhangjianfeng.com/article/538

++推荐的分区策略

partition.gif

++不使用atime属性,例需为/data设置notime,可修改/etc/fstab如下:
/dev/sdb1         /data          ext3    noatime        0 0
#mount -o noatime,remount /dev/sdb1 

++ext3 不执行任何形式的数据日志记录以提供最佳的 ext3 性能
添加data=writeback 于fstab,或在mount时加 -o data=writeback

++调整默认的同时可打开最大文件数以及i-节点数
 # echo ‘8192′ > /proc/sys/fs/file-max
 # echo ‘32768′ > /proc/sys/fs/inode-max
 #加入rc.local
 #一般最大打开文件数可设置为每4M物理内存256,即256M内存可设为16384,而最大的使用的i节点应是最大打开文件数目的3-4倍

++修改内核共享内存限制为256M,默认是32M
echo 268435456 >/proc/sys/kernel/shmall
echo 268435456 >/proc/sys/kernel/shmmax

++禁止广播和ping入
echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo “1″ > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

++sysctl一些优化
sysctl -w net.ipv4.ip_conntrack_max=655360
##解决messages suppressed报错问题
sysctl -w net.ipv4.neigh.default.gc_thresh3=4096
sysctl -w net.ipv4.neigh.default.gc_thresh2=2048
sysctl -w net.ipv4.neigh.default.gc_thresh1=1024
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=60
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=30
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=60
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1

++进程限制
ulimit -n 4096 # 将每个进程可以打开的文件数目加大到4096,缺省为1024
ulimit -m 4096 # 限制每个进程使用的内存数

++看IO数据
iostat -t 5 5
iostat -x
sar -d 2 20

++32位操作系统文件大小就是2G,for X86-64版本的EL4支持超过2G的文件++ 相关限制调高
echo “xxxx” >/proc/sys/fs/file-max #整个系统所有可打开文件 总数的限制。xxxx值可按256/4M内存计算。
ulimit -n 10000  #某一程序可打开文件 总数的限制
++ 块大小
 mkfs.exe3 -b 4096 -m 1 /dev/sdb1 #使用4k块,保留空间设为1%(default 5%)
 #大文件区可以使用较大块增加性能(但大块浪费空间)
++使用tmpfs
tmpfs 文件系统会完全驻留在 RAM 中,速度快,但重启数据将丢失.默认分区大小是系统内存的一半,可以size=1024M修改。
mkdir /dev/shm/ram
mount –bind /dev/shm/ram /RAM
++关闭不需要的tty
   vi /etc/inittab
    1:2345:respawn:/sbin/mingetty tty1
    2:2345:respawn:/sbin/mingetty tty2
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6
    把后面4个注释掉.
    init q #重新执行/etc/inittab,可以不重启生效。
 
++关闭ipv6?
   vi /etc/modprobe.conf,在文件中添加以下两行
    alias net-pf-10 off
    alias ipv6 off
++使用 cURL 度量 Web 站点的响应时间
 curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}    http://blog.zhangjianfeng.com/
 0.052:0.955:1.964
 #time_connect  建立到服务器的 TCP 连接所用的时间
 #time_starttransfer  在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
 #time_total  完成请求所用的时间
 #这些计时器要先于DNS查询。因此,在发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是 0.955-0.052=0.903 秒。客户机从服务器下载数据所用的时间是 1.964-0.955=1.009 秒。
 #Firefox 浏览器的 Tamper Data 可以在日志中记录 Web 浏览器发出的每个请求,并显示每个请求所用的下载时间
 
++硬盘读取数据性能
 hdparm -tT /dev/sda
 
++网络文件系统(NFS)
    NFS客户端可使用rsize=32768,wsize=32768,intr,noatime 挂装远程文件系统
    * 使用大的读/写块(数字指定最大块大小,在这个示例中是 32KB)。
    * 在挂起时 NFS 操作可以被中断。
    * 不持续更新 atime。
 # nfsstat -rc 命令评估客户机连接情况
 Client rpc stats:
 calls      retrans    authrefrsh  # retrans列是零,这表示系统启动后没有出现需要重新传输的情况。
 1465903813   0          0            #如果这个数字比较大,就应该考虑增加 NFS 内核线程,如运行rpc.nfsd 128
++网卡做Bonding
见http://blog.zhangjianfeng.com/?p=177
 
++WEB服务器优化
| 客户端 | ===> |负载均衡器| ===> |反向代理/缓存| ===> |WEB服务器| ===> |数据库服务器|
   -             Nginx/LVS             Squid           Apache,PHP        MySQL/ORACLE
 * eAccelerator/memcache
++ Apache部分特性控制
    AllowOverride None #禁止寻找.htaccess,加快响应.
    Options FollowSymLinks #不检查相关文件是不是符号连接,加快响应.
    MaxKeepAliveRequests 50 #一次持续长连接最多允许接收几次请求,如太大会消耗更多内存
    KeepAliveTimeout 5 #长连接在无活动后等待多久自动关闭,太小会导致频繁创建新的进程,太大会占连接
 <IfModule worker.c>
  ServerLimit 20  #服务器允许配置的进程数上限
  ThreadLimit 200 #每个子进程可配置的线程数上限
  StartServers 5  #服务器启动时建立的子进程数
  MinSpareThreads 50  #最小空闲线程数
  MaxSpareThreads 250 # 设置最大空闲线程数
  MaxClients 2000  # 同一时间最大接入请求数量(ServerLimit乘ThreadsPerChild的值)
  ThreadsPerChild 100 #每个子进程建立的常驻的执行线程数,子进程在启动时建立这些线程后就不再建立新的线程了
  MaxRequestsPerChild 10000 ##每个进程只响应xxxx次,超过此数后关闭自身并启用新的进程
 </IfModule>
 Timeout 300 #客户程序和服务器连接的超时间隔
 KeepAlive On #用于支持HTTP 1.1版本的一次连接、多次传输功能
 MaxKeepAliveRequests 100 #一次连接可以进行的HTTP请求的最大请求次数。其值为0时为不限制
 #ExtendedStatus On  #服务器提供运行状态信息。
 #ServerAdmin you@your.address
 KeepAliveTimeout 15 #一次连接中的多次请求传输之间的时间,超过定义值后,服务器就断开连接。
–找相对低端的机器处理图片和 HTML 页面,使用squid或设置KeepAlives off ,来减少断开连接的时间。
–将图片与页面服务器进行分离,因图片传输需要的时间更长,传输需要花很大开销在建立连接上,apache并发性能肯定会下降
–Web目录中文件数不要太多(超过1000),文件越多花费在定位上的时间也越多.
++其它
 对于 PHP 脚本而言,主要的瓶颈是 CPU ,对于静态页面而言,瓶颈是内存和网络。
   3、Apache 处理 PHP 脚本的速度要比静态页面慢 2-10 倍,因此尽量采用多的静态页面,少的脚本。
  4、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。
 
 
  [第三方软件优化]
  18、如果喜欢从修改 Apache 源码入手,可以安装 lingerd。在页面产生和发送后,每个 Apache 进程都会浪费一段时光在客户连接上,Lingerd 能接管这项工作,让 Apache 迅速服务下一个客户请求。
  19、如果你足够勇敢的话,还可以采用 Silicon Graphics 的 Accelerated Apache 补丁。这个工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。
  安装一个 PHP 缓冲产品能提升 25-100% 的性能。
++Test  Web server’s compression support
http://www.port80software.com/products/httpzip/compresscheck

++APACHE优化原则
1点击/秒以下,可以不优化apache与系统的接口
1点击/秒以上,需要优化apache与系统的接口

++buffer 设置
/proc/sys/net/core/rmem_default & /proc/sys/net/core/wmem_default

++性能瓶径值
CPU >80%
vmstat 中r(run)<5,b(behind)≈0,
IBM RS/6000: 好  坏  糟糕 
CPU: user% + sys%< 70%  user% + sys%= 85% user% + sys%=90%+
磁盘: iowait % < 30% iowait % =40% iowait % = 50%+
内存: 无pagein pageout 每个CPU 达到10 page/秒 更多的pagein pageout
网络 < 30% 网络带宽    
运行队列(Run Queue)  < 2 * CPU个数  

一般来说vmstat的性能指标为:wa不超过25,us+sy多用户情况下不超过80%,r和b不高于5,pi和po基本为零,fr:sr 接近1:1(当然都为零最好),fre一般不要底到120.

++IO调整优化
 cat /sys/block/sda/queue/scheduler #确定正在使用的是哪个 I/O 调度程序
在grub.conf的相应启动选项里加入elevator=deadline,如:
kernel /vmlinuz-2.6.6 ro root=/dev/sda6 elevator=deadline
#Deadline的I/O调度器,在数据吞吐量非常大的数据库系统中表现得更有优势。

++各瓶径判断方向
用iostat、sar、tprof检测是否是CPU原因
用vmstat、svmon检测是否是内存原因
用filemon、iostat检测是否是硬盘原因
用netstat 、nfsstat检测是否是网络原因
++一些概念
Pageout 指的是磁盘上内存页从物理内存到 Swap 空间的转移
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作

Last modified at: Wednesday, May 21st, 2008 07:00:40 pm
Trackback URL: http://blog.zhangjianfeng.com/article/538/trackback

给本文打分: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Tags: linux, 优化, 服务器, 笔记
2007/02/27 | 阅读全文 | 电脑网络, 系统管理 | Email This Post | Print This Post | 1,629 views |
收藏到网摘: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

Related Post

  • Sunday, April 15th, 2007 -- linux日志服务器配置笔记
  • Sunday, March 11th, 2007 -- Cygwin安装配置笔记
  • Thursday, December 27th, 2007 -- ext3日志记录选项和写等待时间
  • Saturday, December 22nd, 2007 -- suse 学习笔记
  • Sunday, December 16th, 2007 -- ubuntu7.10 gutsy笔记
  • Friday, October 19th, 2007 -- Red Hat Enterprise Linux在IBM xSeries服务器上的调优(五)
  • Friday, October 19th, 2007 -- Red Hat Enterprise Linux在IBM xSeries服务器上的调优(四)
  • Friday, October 19th, 2007 -- RedHat Enterprise Linux在IBM System x服务器上的调优(三)
  • Friday, October 19th, 2007 -- RedHat Enterprise Linux在IBM System x服务器上的调优(二)
  • Friday, October 19th, 2007 -- RedHat Enterprise Linux在IBM System x服务器上的调优(一)

0 Responses to “linux服务器优化笔记”


  1. No Comments

Leave a Reply

  • :em04:
  • :em18:
  • :em17:
  • :em10:
  • :em01:
  • :em05:
  • :em15:
  • :em07:
  • :em03:
  • :em13:
  • :em09:
  • :em12:
  • :em11:
  • :em06:
  • :em16:
  • :em14:
  • :em02:
  • :em08:

« 推荐一个工具,微软正版认证离线包,可以通过微软的正版认证
实用小经验--如何提高有线电视的画面质量 »

    最新文章

    • Subversion的用户自助修改口令实现(linux测试通过)
    • SLES10-SP1+Apache-2.0.63+SVN-1.4.6安装配置笔记
    • [音乐欣赏]A place nearby
    • 不错的firefox插件---鼠标手势mouse gestures
    • 一些相克食品
    • oracle一次数据迁移笔记
    • 不错的vi-vim键盘图(中英文双版)
    • xen安装及配置笔记
    • Multiple network cards and bridges in Xen[zz]
    • 从LiveJournal后台发展看大规模网站性能优化方法[zz]

    评分最高文章

      • 今天下载的一个CHM文件,打开时右边的内容看不到,提示“该页无法显示”。
      • linux日志服务器配置笔记
      • Legato networker学习笔记(杂)
      • linux tips 技巧笔记
      • [BT下载]2006韩剧-葡萄园的那小伙儿
      • 我家的金吉拉
      • 卡巴斯基病毒库离线更新方法
      • 忽悠姐妹花主题曲下载
      • 轻轻松松把 Apache 配置安全
      • 北京IDC机房介绍

    随机文章:

    • 用户组的管理
    • Optimizing host.conf and sysctl.conf
    • mount 一台windows2003的共享文件时出错
    • Sharepoint portal 网站目录安全性设置错误导致无法Sps无法访问的解决
    • 食物相克表
    • windows2003的VPN服务,占用DHCP10个IP地址问题(RAS)
    • 半夜偷偷下载禁片 被老婆撞个正着
    • 搬家后,ping 原域名不通,但nslookup能解析,已解决过程
    • 神州行网上详单查询 可查三个月内信息
    • pmsgr.exe和cisrv.exe的清除

    最新评论

    • very good :em02: ,I like very much !!...
    • :em03: :em13: :em15: :em07...
    • 北京电信通有四个机房1惠普机房 2中...
    • :em04: :em18: :em17...
    • 结婚的好日子啊8月10...
    • c2950-1-1(config)# snmp-server trap-source FastEt...
    • :em16: :em16: :em16: :em16: :em16: :em16: :...
    • :em01: :em07: :em04: :em17: :em10: :em18: :...
    • 我是天称座 :em14: :em15: :em03: :em02: :...
    • [...] 前面一段:1.3.6.1.4.1. 可以查看这...


    邮件订阅  
  • Categories

    • 个人日志 (15)
    • 休闲娱乐 (79)
    • 应用服务 (86)
    • 影音娱乐 (10)
    • 电脑网络 (78)
    • 站点日志 (19)
    • 系统管理 (242)
    • 英语学习 (15)
    • 衣食住行 (41)
    • 资料共享 (28)
  • 工具网址

    • 天气预报
    • 常用电话
    • 疾病查询
    • 在线翻译
    • Alexa排名查询
    • IP信息查询
    • 邮箱图标生成
    • 我的Firefox插件
  • 友情链接

    • linuxの飘扬
    • winter的平凡生活
    • 伤感星星的天空
    • 回忆未来[张宴]
    • 存储部落
    • 扶凯Blog
    • 沐宇春风
    • 爱MySQL中文网
    • 狗.车.志
    • 非礼勿视
  • Tags

    • 下载 优化 使用 免费 北京 升级 学习 学习笔记 安装 工具 技巧 日志 最新 服务器 笔记 英语学习 菜谱 视频 解决 调优 软件 运程 配置 配置文件 食物 2007 apache blog dreamhost freebsd Legato linux mysql networker oracle php RAID5 RedHat sendmail shell squid suse Ubuntu windows wordpress

Jeffrey's Blog is powered by WordPress 2.3.1 and Unnamed 1.22
Entries (RSS) and Comments (RSS) Admin 京ICP备06038449号

Podcast Powered by podPress (v8.8)