高性能Linux服务器构建实战笔记

时间:2022-12-21 19:41:49

一、            web应用篇

1           HTTP服务器Nginx

1.1          性能上、功能上、安装上与Apache对比

l  性能上占用系统资源少,支持并发高

l  功能上正反代理服务器和负载均衡服务器

l  安装、配置简单

1.2          Nginx的优势

l  Web服务器:处理静态文件、索引文件、自动索引效率高

l  实现无缓存的反响代理加速

l  负载均衡

l  高并发(50000vuser)且占用内存很低

l  安全性Nginx保持10000个没用活动的连接(占2.5M内存)针对DOS攻击

l  热部署配置升级无需重新启动

1.3          正向代理与反向代理的区别

l  正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。

l  反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。

1.4          性能优化

l  取消debug模式(18页)

Nginx源码解压后,修改auto/cc/gcc文件

#debug

CFLAGS=”GFLAGS -g”

注释或删除这俩行,即取消debug模式

l  TCMalloc

相关文章:http://www.linuxidc.com/Linux/2013-04/83197.htm

l  Nginx内核参数优化(21页)

相关文章:http://www.linuxidc.com/Linux/2013-04/83198.htm

1.5                搭建Nginx + Java 环境(32页)

l  一静一动

将静态请求交给Nginx,动态请求交给后端Tomcat

l  负载均衡

Nginx自带负载均衡功能进行多台tomcat服务器负载均衡

2           HTTP加速器Varnish

2.1          Varnish的优势

l  反向代理服务器和HTTP加速器

基于内存缓存,重启后数据消失

利用虚拟内存方式,IO性能好

0-60s精确缓存时间

VCL配置管理灵活

32G最大缓存2GB

强大的管理功能(top stat admin list)

状态结构清晰

二叉堆管理缓存文件

2.2          与squid对比

l  都是开源反向代理服务器

l  Varnish稳定性高于squid

l  Varnish访问速度更快,直接从内存中

l  支持更多并发连接,TCP连接释放比squid快

l  通过管理端口使用正则表达式批量清除部分缓存

l  缺点:高并发CPU/IO/内存开销高于squid

l  Varnish进程一旦挂起、崩溃或者重启,缓存数据完全释放,此时所有请求都会被发送到后端服务器,对后端服务器造成很大压力。

2.3          Varnish优化

l  Linux内核优化 (58页)

l  系统资源优化  (59页)

Ulimit

l  Varnish参数优化(61页)

3           Memcached应用

二、            运维监控与性能优化

1         运维监控利器Nagios

1.1       Nagios特点

l  成本低、结构简单、可维护性强

l  可运行在Linux、Unix平台,同时提供web界面监控多台主机或服务运行状态

l  可监控本地、远程主机资源(内存、进程、磁盘等)

l  可监控网络服务资源(HTTP/PING/FTP/SMTP/POP3等)

l  允许用户编写自定义插件来监控特定服务

l  异常报警(邮件、短信)

l  自定义事件处理程序,当主机或服务出现故障时自动调用指定处理程序

 

1.2       下载安装nagios (http://yunpan.cn/cgEJDs6uvetyn  提取码 7ad9)

安装包:nagios-3.2.0.tar   (217页)

插件  :nagios-plugins-1.4.14.tar    (218页)

汉化  :nagios-cn-3.2.0.tar    (218页)

Apache:httpd-2.0.63.tar       (219页)

PHP   :php-5.3.2.tar            (219页)

./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/ local/libxml2

 

待续 .....