首页 技术 正文
技术 2022年11月18日
0 收藏 510 点赞 2,201 浏览 2385 个字

  LNMP优化LNMP优化从系统安全,系统资源占用率,及web服务并发负载这三个方面体现,并 且主要体现在web服务并发负载这一方面。  1:首先进行linux优化加固 Linux优化加固最好的办法就是提升硬件配置,比如提高CPU运算能力,增大内存 容量,提高硬盘吞吐率等。本文谈的Linux优化加固是在不提升硬件配置的情况下,通过优化内核配置,从而 提高linux服务效率,从三个方面进行:安全加固、内核调优、优化网络,本文主 要讲解内核调优及网络优化。 a):优化linux 启动项使用ntsysv工具将不需要的服务关闭,进行优化,默认启动服务可以只保留以下六 项必要服务:iptables sshd crond syslog network messagebus.同时也要保留nginx、mysql 、php默认启动 b):安全加固Linux安全加固主要针对iptables进行,控制所有INPUT数据包,除了必要的端口 打开之外,其余的端口一律关闭。禁用用户ping服务器等会更加安全  c):网络优化一般情况下,Nginx通过TCP socket来连接客户端与上游应用,默认安装的系统对 TCP有许多门限值与限制,通过内核参数来设定。这些参数的默认值往往是为一般 的用途而定的,并不能满足web服务器所需的高流量、短生命的要求。对于网络参数调优可以修改 /etc/sysctl.conf这个文件。修改完之后使用  #sysctl –p 让内核配置生效。  2 进行nginx优化修改 # vi nginx/conf/nginx.confa)增加nginx工作进程数并绑定到不同的CPU上,本文所用的硬件有4个CPU,顾开 辟4个进程,如下:worker_processes  4;worker_cpu_affinity 0001 0010 0100 1000; #绑定进程和CPU对应 b) 增加每个进程打开文件句柄数,理论值应该是最多打开文件数(ulimit -n) 与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持相当。       worker_rlimit_nofile50000;   c)采用epoll 模式,并增大每个进程连接数限制:    events {    use epoll;  //异步非阻塞I/O模型    worker_connections 204800;}   d)设置客户端请求头部缓冲区大小为系统分页大小的整数倍,可以用命令查看系 统分页大小:# getconf PAGESIZE 。如果经常出现 400错误,则和值有关,调大 即可。    http{client_header_buffer_size   4k;        large_client_header_buffers  44k;} e)打开请求文件缓存    http{    open_file_cachemax=102400 inactive=60s;    说明:打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和 打开文件数一致,inactive 是指经过60s时间文件没被请求后删除缓存。    open_file_cache_valid80s;说明:80s 检查一次缓存的有效信息。open_file_cache_min_uses 1;说明:文件使用次数,判断有效与否。inactive 时间内一次没被使用,它将被移 除。} 3:进行mysql优化提升mysql性能需要从三个方面着手,首先是硬件,提升硬件配置效果最明显;其次是mysql参数配置优化;还有数据读写架构优化。主要讲mysql参数配置优化,顺便解释一下硬件配置和程序中使用mysql架构优化问题。对于硬件配置这不用说,任何服务都是基于硬件之上的,提升硬件配置,原则上会提升服务效率,比如使用更大内存,使用磁盘高级raid,数据分区使用固态IO卡,使用xfs文件系统等。对于mysql架构设计优化,这个非常重要,sql语句优化,表存储引擎(MyISAM,InnoDB)选择,使用索引,增加redis或者memcached缓存层等。将传统web服务的 2层架构(webserver+db)变成三层架构(webserver+cache+db)甚至四层架构 (webserver+logicserver+cache+db),由cache来承担分流大并发读写操作。 对于存储引擎选择有2个原则:第一个原则,大量读少量写 选用MyISAM,大量写 少量读选用InnoDB。针对不同的需求使用不同的存储引擎。第二个原则,能不用 InnoDB尽量不用InnoDB。总之,如果你想追求99.9%的稳定性,方便的扩展性和高 可用性还是尽量用MyISAM吧。至于为什么呢?1  MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就 对应提高了不少。能加载更多索引,而InnoDB是索引和数据是紧密捆绑的,没有 使用压缩从而会造成InnoDB比MyISAM体积庞大不少。2 InnoDB的行级锁是相对的,那个只有where主键时是有效,非主键的都会锁全表的。如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “�a%” 3 MyISAM相对简单所以在效率上要优于InnoDB。小型应用使用MyISAM是不错的选择。另外,MyISAM表是保存成文件的形式,在跨平台的数据转移很方便。总之,尽量不使用InnoDB,InnoDB主要用于需要外键,事务等企业级支持,代价是速度比MyISAM有倍数的下降。 取自牛人博客地址(详细参考):http://blog.csdn.net/yybjroam05/article/details/19074389   

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,086
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,561
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,410
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,183
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,820
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,903