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
随机推荐
- awk、nawk、mawk、gawk的简答介绍
awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出(即管道).它支持用户自定义函数和 动态正则表达式等先进功能,是linu ...
- Docker 系列二(操作镜像).
一.镜像管理 1.拉取镜像 docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] -- Docker 镜像仓库地址 :一般是 域名或者IP[:端口号 ...
- 将Hexo博客部署到云主机
摘要: 在云主机上搭建一个git裸仓库,然后使用nginx作为网页服务器,就可以轻松将Hexo博客通过git部署到云主机上. 这是一个忧伤的故事 我的博客KiwenLau之前部署在Coding Pag ...
- 去除bootstrap默认的input和选中时的样式
input默认样式除border外, 还有一个阴影效果box-shadow:选中时同样有阴影效果. input,input:focus{ border: none !important; box-sh ...
- Java 导出 Excel 列号数字与字母互相转换工具
package test; /** * Deal with Excel column indexToStr and strToIndex * @author * @version 2015-7-8 * ...
- jQuery效果之jQuery实现图片的依次加载图片
css代码: ;;} ul#portfolio li{float: left;margin:0 5px 0 0;width:250px;height: 250px;list-style: none;} ...
- TeamViewer试用期满转免费版本方法
TeamViewer安装完企业版以后,当试用期结束,到期后,无论你卸载.重装了多少次,都无法无法成功安装个人版,从网上搜索来得到的解决办法就是:安装TeamViewer的时候与你的电脑以及网卡地址进行 ...
- Android udp json+数组 --->bytes发送数据
Android json支持五种数据类型 String / int(float)/bool / null / object 今天说 object : json = new JSONObject( ...
- Android通过Chrome Inspect调试WebView的H5 App出现空白页面的解决方法(不需要FQ)
本文系博主原创,未经许可不得转载.如未经本人同意,私自转载或盗取资源提供下载,本人保留追究其法律责任的权利. 调试基于WebView的Hybrid App最舒服的工具当然是Chrome自带的开发者工具 ...
- celery 任务队列 + redis
Celery 是一个“自带电池”的的任务队列.它易于使用,所以你可以无视其所解决问题的复杂程度而轻松入门.它遵照最佳实践设计,所以你的产品可以扩展,或与其他语言集成,并且它自带了在生产环境中运行这样一 ...