1.Cgi
CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,将web服务器和网页的执行程序连接到一起,其程序须运行在网络服务器上,apache调用时需每次都激活一次cgi,并且这种模式php不与服务器一起启动
2.Fastcgi
是一个可伸缩架构的cgi开放扩展,可以应用于各种编程语言,用来管理php的cgi进程,可以将cgi放置于内存中,不需要每次都激活cgi进程,提高解析性能,这种模式php与服务器一起启动
3.Php-fpm
Php fastcgi 的进程管理器,可以根据访问压力动态唤起和销毁cgi进程,有效利用内存,可以平滑重载php配置php的进程管理如果php是汽车,打个比方:php-fpm就是车队,其中一个进程就是调度员,负责分配每辆车的任务。
参考:http://www.nowamagic.net/librarys/veda/detail/1319
4.Zendopcache
用于缓存php编译后的文件,比php自带的APC等缓存插件性能更加优异,使用它可以极大的提升php性能。原理:对php编译后的文件进行缓存,之后的调用直接调用缓存不必编译
5.Rpm
Rpm是一款软件包管理工具,类似于360软件管理,它可以升级,卸载,安装管理软件,rpm包则是可执行的二进制文件,类似于windows下的.exe文件
6.Yum
基于RPM包管理的软件包管理工具,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
7.Lvs
Linux系统自带的虚拟服务器集群系统,用于服务器集群中配置负载均衡,其技术是利用ip负载均衡技术(ipvs)为核心的基于内容分发请求为主,工作在网络的传输层,其三种模式分别为:nat dr tun ,具有可靠,易伸缩,易管理的特点,缺点是不支持正则就不可以实现动静分离
网络中发起一个请求以及回应流程参考:
http://blog.csdn.net/kunlong0909/article/details/6765564
8.Ipvsadm
用于管理运行在Linux上提供负载均衡的ipvs技术(基于内容分发请求的ip负载均衡技术)的软件,使用命令管理lvs的配置
9.Keepalived
一款检测web服务器集群中服务器的状态的软件,可以将宕机的服务器从集群中剔除,待其正常后再自动加入到集群中,用于lvs负载均衡服务器中,提升系统稳定性
10.Mysqld_safe
mysqld_safe用于开启mysql服务,相对于msyqld命令其增加了一些安全性,可以监听mysql运行情况,并在mysql出错时记录原因重新启动mysql
11.Rsync
是Linux、Unix系统自带的远程文件同步工具,用于在不同服务器间同步文件数据,其同步数据第一次是所有文件全部同步,之后便是对更改的文件进行同步
12.Inotify
一种实时监测文件动态的时间通知机制,当文件被修改、增加、删除时会立刻通知应用程序,配用rsync实现文件实时同步
13.Mongodb
介于关系型数据库与非关系型数据库之间的面向文档数据库,优点在于其高性能,易部署,存储数据方便,以空间换取效率,而且支持复制和故障恢复,语法类似于面向对象的语法。其原理是面向集合(数据分组存储)存储数据,适用于:实时更新、查询的地方,其缓存可以防止下层数据源过载,伸缩性强,以文档形式存储数据,相对于关系型数据库查询数据不需要联表联查
缺点:不支持事物操作,分配空间大,没有一个成熟的维护工具
14.Squid
高性能的代理缓存服务器,缓存用户请求的信息(网页),再次访问直接调用,提升网站响应速度
15.Cacti
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。可以对网站运行进行监测及时的提供数据以及报警。
16.Memcacheq
分布式消息队列服务,采用队列先进先出的原则来实现在高并发情况下对请求排序,以加速网站响应,提升网站性能,适用于秒杀等环节
17.Memcached
Memcached是高性能的分布式缓存系统,其自身没有分布式功能,主要在客户端确定键值的存取位置来达到分布式功能,lru删除机制是其处理内存占满时的方法(删除最近最少使用),分布式缓存的优点:可供不同主机多个用户同时访问,提升访问效率
Memcached算法:
1、根据余数计算:这种算法在增加或者减少一台memcached服务器时会导致得到的键出现非常大的变化,命中率下降80%,使数据库服务器压力增大
2、哈希环:计算出每个服务器节点的哈希值映射到一个2^32的圆上,通过这种方法确定每个服务器上存储的值,这样即便有服务器出现问题也只是一段出现暂时不可访问,最大限度的减少了键的重新排列,不会对数据库造成过多压力
18.Haproxy
配置服务器集群时用于负载均衡调度,支持虚拟主机,工作在网络的传输层或者应用层,在负载性能上从服务器十台以下时性能优于lvs,但是十台以上从服务时性能没有lvs强,算法比较多
19.Redis
一款可基于内存或者转存磁盘的日志型、key-value的高性能非关系型数据库,通常被认为是数据结构服务器,存储方式两种:全量数据(读入磁盘)和增量数据(替换内存数据),通过五种数据结构存储数据,通过命令查询数据。优点:速度快,持久化,自动操作,快速主从复制
比起memcached它支持的数据类型更丰富,m为多线程,r是单线程,m不支持数据持久化,r支持将数据复制到磁盘
参考:http://www.cnblogs.com/ceecy/p/3279407.html
20.Loadrunner
21.Node.js
Node(node.js的简称)是一个允许开发人员使用 JavaScript 语言编写服务器端代码的框架。是服务器端javascript的解释器,基于Google V8 JavaScript引擎,代替了服务器程序以及服务器语言,最大优点在于可以帮助程序员编写能够同时处理数万条请求到一个服务器的代码,解决并发高的问题(采用事件触动响应)
22.memcache,redis,mongodb区别
性能:三者都比较高,整体比较redis和memcache会高于mongodb,在达到一定数量时才会有此比较
操作:memcache数据结构单一,redis有5种,mongodb支持丰富的数据表达,索引,最类似关系型数据库,相对于前两者的使用命令操作数据mongodb的查询语言更多
内存与数据:memcache针对使用不频繁的早期数据会清理,redis也有对内存数据过期处理,可以移至磁盘存储,mongodb则占用内存很大,利用空间换取效率,一般不与其他服务放在一起,适合大数据量的存储
可用性(单点问题):redis自身不能实现增量的主从复制,只能全部复制,一般使用自己定义的方式实现主从的增量复制和数据备份;memcache本身没有数据冗余机制,通过求余数或者哈希环算法解决单点故障(数据或者应用服务器的单一造成的服务不可用),mongodb支持主从复制,副本集,支持故障恢复
可靠性:redis可以将内存中的数据转存在磁盘,memcache不支持数据持久化,mongodb本身数据就存储在磁盘中以文件形式
数据一致(事务):memcached用cas(check and set)保持一致性,cas相当于svn的版本库,在对数据执行操作时会对版本进行判断,版本不同则写入失败;redis事务比较弱,只能保证事务中每个操作的连续执行;mongodb不支持事务
应用场景:memcached用于缓解数据库压力,存储数据库数据;redis用于实时更新的数据;mongodb用于海量数据操作。
23.Magent
管理memcached缓存服务器集群,memcached自身集群存储数据时会通过客户端程序决定这个数据存到哪台服务器上,magent缓存代理可以解决memcached自身集群可能出现的单点故障,通过增加备份服务器可以让memcached缓存集群更加的稳定
张志强 - 转载请标注