关于LNMP常见问题和性能方面的个人理解

简单整理,自己做备忘的,不为其他作任何参考~

PHP程序

 

1.开启慢日志,过滤超时时间为1s的方法,针对性优化,可以通过添加缓存方式解决。
2.过滤access日志,统计哪些请求较多较为频繁,是否合理?(研发人员在实现功能的时候只考虑效率应该很少会考虑性能问题,所以通过日志过滤在针对性的了解)
3.php工作模式的选择和进程数量的控制,小内存选择动态模式,可以伸缩性的控制进程的数量来减少内存的浪费,大内存机器可以选择静态指定进程数量,减少因动态创建而对cpu造成损耗,进程数量的指定 一般就 
  按照内存/30/2来计算即可 因为要留一些内存给其他的应用。 4.开启opcache 进行预编译缓存,这样可以大大节省服务器的负载,减少了重复的加载和解析脚本的时间。 5.当服务器同时跑着很多业务当时候,为了保障核心业务的优先性可以更改进程的nice值,这样cpu会优先处理,也会防止重要业务被oom干掉
6.上传文件等限制,post_max_size 会导致系统中上传文件等限制,同时nginx或者负载均衡也会有相关参数。 建议:当慢日志过多的时候可以优先开启opcache缓存看看是否有缓解,因为当cpu负载过高的时候很可能是由于cpu的原因导致了一些查询 接口信息等返回的较慢,而并不是程序本身就慢。  

 

nginx

gzip缓解参考: https://www.darrenfang.com/2015/01/setting-up-http-cache-and-gzip-with-nginx/ 

关注一下这几项参数,说一下关于后端web服务timeout参数,需要业务自己来定义,为什么要提及这个参数呢?在一次线上故障中发现大量的连接不释放,在紧急情况下可以改短这个参数来临时解决问题,
但有可能会出现部分连接没有交互完而被干掉,例如我们有上传大文件的需求,短时间没上传完就会被ka掉。。

gzip: 开启后会对静态文件压缩,根据设置对静态文件做处理,会有效对加快访问速度,本人亲测,将一个固定3s访问对页面增加静态文件压缩后到1s


worker_processes

worker_rlimit_nofile

worker_connections

keepalive_timeout 60;

send_timeout 60;

# 开启gzip
gzip on;

# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;

# gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 2;

# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;

# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

  

 

 

mysql

 

1.mysql 可以通过慢日志来确认哪些慢查询。
2.mysql workbench 是官方的工具,可以监控数据库执行情况,也可以帮助定位问题。

  

 

posted @ 2018-01-03 16:35  Quan7  阅读(518)  评论(0编辑  收藏  举报