Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1413650
  • 博文数量: 269
  • 博客积分: 3602
  • 博客等级: 中校
  • 技术积分: 4536
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-17 21:13
文章分类

全部博文(269)

文章存档

2014年(8)

2013年(139)

2012年(122)

分类: 系统运维

2013-04-03 10:14:09

 LAMP这个词的由来最早始于德国杂志“c't Magazine”,MichaelKunze在1990年开始 把这些项目组合在一起缔造 了LAMP的缩写字。这些组件固然 并不是开起头就计划 为一起应用 的,但是,这些开源软件都可以很利便 的随时得到 并免费得到 。这就导致了这些组件常常 在一起应用 。在已往 的几年里,这些组件的兼容性不绝 完美 ,在一起的操纵环境变得非常普便。为了改善 差别 组件之间的协作,已经创建 了某些扩张功能。如今,险些 在全部 的Linux公布 版中都默认包孕 了“LAMPstack”的产物 。这些产物 构成 了一个壮大 的Web操纵措施平台
  LAMP 平台由四个组件构成 ,呈分层结构。每一层都供给 了所有软件栈的一个关键部分 :
  Linux:Linux 处在最低层,供给 操纵 体系 。其他每个组件实际 上也在 Linux 上运行。但是,并不肯定 范围 于 Linux,如有须要 ,其他组件也可以在 Microsoft? Windows?、Mac OS X 或 UNIX? 上运行。
  Apache:次低层是 Apache,它是一个 Web 做事器。Apache 供给 可让用户得到 Web 页面的机制。Apache是一款稳定的、支持 关键义务 的做事器,Internet 上高出 65% 的网站都应用 它作为 Web 做事器。PHP 组件实际 上是在 Apache中,动态页面可以通过 Apache 和 PHP 创建 。
  mysql:MySQL 供给 LAMP 体系 的数据存储端。有了MySQL,便可以得到 一个非常壮大 的、适宜 运行大型繁杂 站点的数据库。在 Web操纵措施中,全部 数据、产物 、帐户和其他范例 的信息都寄放 在这个数据库中,通过 SQL 语言可以很轻易 地查询这些信息。
  PHP:PHP 是一门大略 而有效 的编程语言,它像是粘合剂,可以将 LAMP 体系 全部 其他的组件粘合在一起。您可以应用 PHP 编写能拜访 MySQL 数据库中的数据和 Linux 供给 的一些特性 的动态内容。
  [检测器材]
  为了得到完备 的调试结果,提议你采用 ApacheBench 可能 httperf之类的软件。假如 你对非 LAMP架构的做事器测试有乐趣 的话,提议你采用 微软的免费软件: Web Application Stress Tool(必要 NT 可能 2000)。(其余做事器测试器材)
检测 Apache ,采用 top d 1 表现 全部 进程 的 CPU 和内存情况。其它,还采用 apachectl status 下令
  [硬件优化]
  1、升级硬件的一样平常 正直 :对付 PHP 脚本而言,重要 的瓶颈是 CPU ,对付 静态页面而言,瓶颈是内存和网络。一台 400 Mhz 的平凡 飞跃呆板 所下载的静态页面就能让 T3 专线(45Mbps)饱和。
  2、采用 hdparm 来优化磁盘,一样平常 能晋升 IDE 磁盘读写性能 200%,但是对 SCSI 硬盘也有效 果。(差别 范例 的硬盘比较 )
  [计策优化]
  3、Apache 处理 赏罚 PHP 脚本的速率 要比静态页面慢 2-10 倍,因此只管 采用 多的静态页面,少的脚本。
  4、PHP 脚本假如 不做缓冲,每次调用都必要 编译,因此,安装一个 PHP 缓冲产物 能晋升 25-100% 的性能。
  5、假如 你采用 了 Linux 体系 ,提议升级内核到 2.4,由于 静态页面由内查究 事 。
  6、其它一项缓冲能力 是把不常批改的 PHP 页面采用 Html 缓冲输出。
  7、不要在 Web 做事器上运行 X-Windows ,关掉没有须要 运行的进程 。
  8、假如 可以或许 用文本就不要用图像,只管 减小图片的尺寸。
  9、分散负载,把数据库做事器放到其它的呆板 上去。采用 其它低端的呆板 做事图片和 HTML 页面,假如 全部 的静态页面在其它一台做事器洗 恚 梢陨柚?httpd.conf 中的 KeepAlives 为 off ,来镌汰 断开毗连 的工夫。
  10、以上全部 的行动 都是针对单机而言的,假如 你感觉体系 照样 不足快,可以采用 集群,负载均衡 ,缓冲能力 。采用 Squid 作为缓冲,设置 Squid 的行动 。
  [编译优化]
  11、把基于文件的会话切换到基于共享内存的会话。编译 PHP 时采用 --with-mm 选项,在 php.ini 中设置 set session.save_handler=mm 。这个大略 的批改能让会话管理 工夫收缩 一半。
  12、采用 最新版本的 Apache ,并把 PHP 编译此中 ,可能采用 DSO 模式,不要采用 CGI 行动 。
  13、编译 PHP 时,提议采用 如下的参数:
         --enable-inline-optimization --disable-debug   [设置 优化]
  14、批改 httpd.conf :
  # 封闭 DNS lookups,PHP 脚本只拿 IP 所在
  HostnameLookups off
  15、假如 网络拥挤,CPU 资源不足用,采用 PHP 的 HTML 紧缩 功能:
  output_handler = ob_gzhandler
  PHP 4.0.4 的用户请不要应用 ,由于 存在内存透露 题目 。
  16、批改 httpd.conf 中的 SendBufferSize 为你最大的页面文件的巨细 。加大内核的 TCP/IP 写缓冲巨细 。
  17、采用 数据库的恒久毗连 时,不要把 MaxRequestsPerChild 设置得太大。
  [第三方软件优化]
  18、假如 喜好 从批改 Apache 源码入手,可以安装 lingerd。在页面发生 和发送后,每个 Apache 进程 都市 浪费一段韶光 在客户毗连 上,Lingerd 能吸取 这项事变 ,让 Apache 敏捷 做事下一个客户哀求。
  19、假如 你充足 勇猛的话,还可以采用 Silicon Graphics 的 Accelerated Apache 补丁。这个工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。
  安装一个 PHP 缓冲产物 能晋升 25-100% 的性能。
  [Linux体系 优化]
  1.清理做事器磁盘碎片:
  岂论 Linux文件体系 采用 什么文件技俩(ext3、JFS、XFS、ReiserFS )、何种范例 的硬盘(IDE、SCSI),随着工夫的推移文件体系 都市 趋向于碎片化。ext3、JFS等高等 文件体系 可以镌汰 文件体系 的碎片化,但是并没有撤销。在忙碌 的数据库做事器中,随着工夫的已往 ,文件碎片化将低落 硬盘性能,硬盘性能从硬盘读出或写入数据时手法留意 到。工夫长了会创造每个磁盘上确凿 积累了非常多的垃圾文件,开释 磁盘空间可以赞助 体系 更好地事变 。Linux最好的摒挡 磁盘碎片的行动 是做一个完备 的备份,重新技俩化分区,然后从备份规复 文件。但是对付 7×24小事势 情 关键义务 做事器来说是比拟 费力 的。Kleandisk是一个高效的磁盘清理器材,它能把磁盘上的文件分成差别 的"组",比如 把全部 的"core"文件归成一组(Group),如许 要删除全部 core文件时只要删除这个组就行了。core文件是当软件运行堕落 时发生 的文件,它对付 软件开拓职员 比拟 有效 ,对付 其他用户(比如 电子邮件做事器)却没有任何意义。因此,假如 没有软件开拓的必要 ,见到core文件就可以将其删除。
  2、开启硬盘DMA
  如今 应用 的IDE硬盘根本 支持 DMA66/100/133(直接内存读取)但是Linux刊行 版本安装后一样平常 没有打开,可以/etc/rc.d/rc.local 最後面加上一行: /sbin/hdparm -d1 –x66 -c3 -m16 /dev/hda如许 以后每次开机,硬盘的 DMA 就会开启,不必每次手动设定。添加前后你可以应用 下令 :hdparm -Tt /dev/hda 来测试比较 一下。
  3、调度 缓冲区革新 参数
  Linux内核中,包孕 了一些对付 体系 运行态的可设置参数。缓冲洗 新的参数可以通过调度 /proc/sys/vm/bdflush文件来完成,这个文件的技俩是如许 的: # cat /proc/sys/vm/bdflush 30 6464 256 500 3000 60 0 0
  每一栏是一个参数,此中 最重要 的是前面几个参数。第一个数字是在"dirty"缓冲区到达 几何 的时间 逼迫 唤醒 bdflush进程 革新 硬盘,第二个数字是每次让bdflush进程 革新 几何 个dirty块。所谓dirty块是必需 写到磁盘中的缓存块。接下来的参数是每次允许bd flush将几何 个内存块排入空闲的缓冲块列表。 以上值为RHEL 4.0中的缺省值。可以应用 两种行动 批改:
  (1)应用 下令 # echo "100 128 128 512 5000 3000 60 0 0">/proc/sys/vm/bdflush
  并将这条下令 加到/etc/rc.d/rc.local文件中去。
  (2)在/etc/sysctl.conf 文件中介入如下行: vm.bdflush = 100 128 128 512 5000 3000 60 0 0
  以上的设置加大了缓冲区巨细 ,低落 了bdflush被启动的频度,VFS的缓冲洗 新机制是Linux文件体系 高效的缘故起因 之一。
  4、优化输入输出
  I/O措施对Linux体系 性能也是相等重要 的,网络硬件I/O对做事器尤其重要 。如今 大多数Linux做事器应用 10/100Mb以太网。假如 有较重的网络负载,则可以思量 千兆以太网卡。假如 没有手段 购买千兆网卡的话:可以应用 多块网卡假造 成为一块网卡,具有相同 的IP所在。这项能力 ,在Linux中,这种能力 称为Bonding。Bonding在Linux2.4以上内核中已经包孕 了,只必要 在编译的时间 把网络装备 选项中的Bonding driversupport选中见图1。固然 操作Bonding能力 设置 双网卡绑定的条件 条件是两块网卡芯片组型号相同 ,并且 都具备独立的BIOS芯片。
  然后,重新编译核心 ,重新起动打定机,推行 如下下令 :   #ismod bonding #ifconfig eth0 down #ifconfig eth1 down
#ifconfig bond0 ipaddress#ifenslave bond0 eth0#ifenslave bond0 eth1
  如今 两块网卡已经象一块一样事变 了。如许 可早年进集群节点间的数据传输.bonding对付 做事器来是个比拟 好的选择,在没有千兆网卡时,用两块100兆网卡作bonding,可大大前进做事器到交换机之间的带宽.但是必要 在交换机上设置毗连 bonding网卡的两个子口映射为同一个假造 接口。编辑 /etc/modules.conf文件,介入如下内容,以使体系 在启动时加载Bonding模块。   alias bond0 bondingoptions bond0 mode=0
  “mode”的值表示事变 模式,共有0、1、2和3四种模式,这里设定为0。Bonding事变 在负载均衡 (Load Balancing(round-robin))行动 下,即两块网卡同事势 情 ,这时理论上Bonding能供给 两倍的带宽。Bonding运行在网卡的殽杂 (Promisc)模式下,并且 它将两块网卡的MAC所在批改为一样的。殽杂 模式就是网卡不再只经受 方针硬件所在是自身MAC所在的数据帧,而是可以经受 网络上全部 的帧。
  5、镌汰 假造 终端机的数量 。
  Linux安装后体系 默认是6个假造 终端机,也就是CTRL+ALT F1~F6 那六个,作为做事器应用 可以关掉此中 四个,只留下 CTRL+ALT F1~F2,约莫 省下 4 Mbytes的内存,但是如许 一来,X-Window 会从本来 的 CTRL+ALT F7 变成 CTRL+ALT F3 。 批改 /etc/inittab中,将 mingetty 3 ~6 整个 加上 # 字号 。
6. 封闭 一些不消 的做事   Linux做事器在启动时必要 启动很多 体系 做事,它们向内地 和网络用户供给 了Linux的体系 功能接口,直接面向操纵措施和用户。供给 这些做事的措施是由运行在靠山的守卫进程 (daemons)来推行 的。守卫进程 是生存期长的一种进程 。它们独立于独霸终端并且 周期性的推行 某种义务 或等待处理 赏罚 某些发生的变乱 。他们常常 在体系 指示 装入时启动,在体系 封闭 时住手。linux体系 有很多 守卫进程 ,大多数做事器都是用守卫进程 实现的。如Web做事http等。同时,守卫进程 完成很多 体系 义务 ,比如 ,作业方案进程 crond、打印进程 lqd等。有些册本 和原料 也扼守 护进程 称作:“做事”。封闭 做事行动 请查察 笔者的文章:深入 相识 Linux守卫进程 。
  7.其余优化列表
  [MySQL优化]
  优化文章列表:
      MySQL优化实例
      Mysql优化合集
      MySQL中SQL优化和架构计划 的一些大略 想法
  [PHP优化]
  优化文章列表:
  PHP做事器安详设置
  [Apache优化]
阅读(734) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~