No.3

一、查看httpd进程数(即prefork模式下Apache可以处理的并发请求数):html

ps -ef | grep httpd | wc -l

返回结果示例:
  1388
  表示Apache可以处理1388个并发请求,这个值Apache可根据负载状况自动调整前端

 二、查看Apache的并发请求数及其TCP链接状态:mysql

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表示处理完毕,等待超时结束的请求数。ios

三、网站访问太慢,可能性有哪些nginx

1、网络问题
  1、双线机房或分布式部署,动态DNS,须要考虑成本   2、客户端和机房所在网络状况 2、前端问题   1、浏览器太烂   2、页面设计不佳(dom太多、js有问题等) 3、服务端问题   一、负载,CPU, 网络,内存,磁盘空间等使用状况,日志切割。若是单台服务器性能受限,考虑调整为分布式架构,如nginx转发,DB分库分表等   二、用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操做,合并写入 4、其余问题 1、http请求过多 二、Keep-Alive 三、图像过大,没有通过压缩

 

四、http的keep-aliveweb

  http://www.javashuo.com/article/p-sqsgpppe-bd.htmlsql

 

五、后端

文件以下:
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

 

六、nginx工做原理和优化 api

  http://blog.csdn.net/hguisu/article/details/8930668浏览器

相关文章
相关标签/搜索