No.3
1、查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):
- ps -ef | grep httpd | wc -l
返回结果示例:
1388
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整
2、查看Apache的并发请求数及其TCP连接状态:
- netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数。
3、网站访问太慢,可能性有哪些
- 一、网络问题
- 1、双线机房或分布式部署,动态DNS,需要考虑成本
- 2、客户端和机房所在网络情况
- 二、前端问题
- 1、浏览器太烂
- 2、页面设计不佳(dom太多、js有问题等)
- 三、服务端问题
- 1、负载,CPU, 网络,内存,磁盘空间等使用情况,日志切割。如果单台服务器性能受限,考虑调整为分布式架构,如nginx转发,DB分库分表等
- 2、用Xdebug,Webgrind等调试工具调试源码
- 检查webserver日志中的响应时间
- 如果服务器整体负载不高,但PHP的数据返回时间过长,在PHP代码中分段输出处理时间
- 如果是高访问量的在线调试,一般选取一定比例记录日志,防止日志过多带来的额外系统开销
- 调试指导思想:逐步缩小范围,定位、优化
- 平常开发原则:
- 编写代码注重效率,尽可能占用更少的资源
- 缓存复杂和耗时运算的结果
- 用apc或者xcache等缓存PHP的opcode
- 能异步处理的任务不要马上处理,如发邮件
- 依据资源情况对FastCGI配置合适的参数
- 负载均衡器设好阀值,不要无限制的给后端压力
- 接口api设置过期时间,1秒内等
- 3、读取慢
- 检查:慢查询日志;
- show processlist 查看当前DB状态,看哪些请求停留较多
- top查看mysql进程的开销
- 代码中记录SQL和执行时间
- 解决:
- 手动执行可疑SQL(注意排除query cache的影响),用explain,profile等工具分析SQL性能
- 再考虑是否优化索引,或者分库分表,或者增加缓存
- 写入慢
- 检查:除读取慢的检查方法外,还有
- iostat 检查磁盘IO
- 查看mysql binlog的写入速率
- 解决:增加缓存,分库分表,优化索引,从业务逻辑上考虑减少DB操作,合并写入
- 四、其他问题
- 1、http请求过多
- 2、Keep-Alive
- 3、图像过大,没有经过压缩
4、http的keep-alive
https://www.cnblogs.com/freefish12/p/5394876.html
5、
- 文件如下:
- a,b,c,d,1,2,3
- e,f,g,h,2,3,4
- 1,2,3,4,3,4,4
- 4,5,5
- b,d,1,2,3
- ...
- 计算倒数第三列的累加值:
- awk -F ',' '{a+=$(NF-2)}END{print a}' 1.txt
6、nginx工作原理和优化
http://blog.csdn.net/hguisu/article/details/8930668
随机推荐
- Swap file ".BranchModel.class.php.swp" already exists!
在 Linux 下的 vim 编辑过程中,由于某种原因异常退出正在编辑的文件,再次编辑该文件时,会出现如下提示: 1.解决方法:直接 ll -a -a 列出目录下的所有文件,包括以 . 开头的隐含文件 ...
- Android Studio添加Activity时Resolved versions for app (21.0.3) and test app (25.4.0) differ.
将以下代码添加到gradle(module) dependencise中 androidTestCompile 'com.android.support:support-annotations:xx. ...
- 【vue】使用vue构建多页面应用
先了解一些单页面和多页面的区别 mm 多页应用模式MPA 单页应用模式SPA 应用构成 由多个完整页面构成 一个外壳页面和多个页面片段构成 跳转方式 页面之间的跳转是从一个页面跳转到另一个页面 页面片 ...
- 唯一索引的一种使用情景【有则U无则I】
这个知识点是最近一位面试老师问我的,当时对这种方法不了解,所以只能说那个中效率低的方法了,也就是先进性select判断,然后在执行更新或者插入操作,显然这种是很麻烦的,也自我反思一下,确实有很多的知识 ...
- Android6.0 源码修改之屏蔽系统短信功能和来电功能
一.屏蔽系统短信功能 1.屏蔽所有短信 android 4.2 短信发送流程分析可参考这篇 戳这 源码位置 vendor\mediatek\proprietary\packages\apps\Mms\ ...
- (网页)JavaScript周末总结(一)
本周学习的内容总结: 1. 2章在html中使用javascript. 2. 3章Javascript的基本概念. 3. 4章变量,作用域,内存问题. 1-1:2章以下内容: 1.包含javascri ...
- 新的 Centos 服务器初始化配置
当你初次创建新的 Centos 服务器的时候, Centos 默认的配置安全性和可用性上会存在一点缺陷(运维人员往往会有初始化的脚本).为了增强服务器的安全性和可用性,有些配置你应该尽快地完成. 这篇 ...
- 使用Visual Studio Team Services敏捷规划和项目组合管理(六)——VSTS仪表盘的使用
使用Visual Studio Team Services敏捷规划和项目组合管理(六)--VSTS仪表盘的使用 仪表盘使团队能够看到项目的状态和监控项目的进展.简单来说,不必深入到团队项目站点的其他部 ...
- 基于cifar10实现卷积神经网络图像识别
import tensorflow as tf import numpy as np import math import time import cifar10 import cifar10_inp ...
- Linux中对逻辑卷进行扩容与缩小
一.在扩容之前,先查看自己逻辑卷,卷组,物理卷的信息:(在上一篇的基础上:Linux中对逻辑卷的建立) 查看物理卷: # pvdisplay /dev/sdc1 查看卷组: vgdisplay /de ...