P*******b 发帖数: 1001 | 1 a website is very slow, how do you trouble shoot it? |
p********7 发帖数: 549 | 2 Sever:
1.Enable gzip to decrease the transfer data size.
2.Add web cache between severs and between sever and clients.
Client:
3.Limit roundtrips to minimal.
4.make use of ajax
以前有人总结的 |
q******8 发帖数: 848 | |
P*******b 发帖数: 1001 | 4 thanks!
【在 p********7 的大作中提到】 : Sever: : 1.Enable gzip to decrease the transfer data size. : 2.Add web cache between severs and between sever and clients. : Client: : 3.Limit roundtrips to minimal. : 4.make use of ajax : 以前有人总结的
|
c*b 发帖数: 3126 | 5 这个算是improve web performance的措施
跟trouble shooting还不是一回事吧
网页速度慢的原因有很多,比如被DDOS,比如web服务器磁盘IO有问题了。。
【在 p********7 的大作中提到】 : Sever: : 1.Enable gzip to decrease the transfer data size. : 2.Add web cache between severs and between sever and clients. : Client: : 3.Limit roundtrips to minimal. : 4.make use of ajax : 以前有人总结的
|
s*****n 发帖数: 5488 | 6 they will have lots of performance monitors. check memory, process usage in
the backend servers. check other performance monitors. check logs. etc...
【在 P*******b 的大作中提到】 : a website is very slow, how do you trouble shoot it?
|
s*****n 发帖数: 5488 | 7 this answer should be failed. it is how to improve not how to trouble shoot.
【在 p********7 的大作中提到】 : Sever: : 1.Enable gzip to decrease the transfer data size. : 2.Add web cache between severs and between sever and clients. : Client: : 3.Limit roundtrips to minimal. : 4.make use of ajax : 以前有人总结的
|
n*******9 发帖数: 1017 | |
y*********e 发帖数: 518 | 9 假设是传统的3-tier架构的服务器,也即有数据层,逻辑层,还有表现层。
整个数据的流量是 数据层 -> 逻辑层 -> 表现层 -> 用户Browser。
每一个环节都可能出问题。
注意此题,是 "trouble shoot",而不是 "improve"。
1、数据层的问题:
是用数据库吗?若是用数据库,是Single Query还是Join Query?
Query用到了Index吗?Index是否broken(重建Index)?
Join Query是否可以rephrase(查看Query Optimizer)?
是否存在IO瓶颈(做Table Partition)?
检查逻辑,是否需要提取如此规模的数据?可否用Cache(比如LRU)?
可否使用Weak Reference?可否用Object Pool?
是只有一个Cache Server还是有好几个?
如果有多个Cache Server,如何Invalidate Cache?
2、逻辑层的问题:
是否有Bug导致无限循环?或者Busy Loop(即空循环)?
是否某个关键的逻辑的复杂度太高(一般的,10%的功能会占据到90%的
时间复杂度),重点检查哪个10%的功能?如何检测该函数使用的时间?
写入日志文件?Debug版本的日志?可否Profile逻辑层的类库?
3、表现层的问题:
对于每次用户的请求是否每次都重复的Rendering HTML?可否只
Render一部分(使用AJAX)?
4、用户Browser:
是否有Javascript导致了无限的死循环?或者效率极其低下?可否Debug
Javascript函数?网页是否调用了外部的死链接Javascript?
其他方面的问题:
1、服务器的CPU是否100%的被其他进程占据?
2、服务器的disk是否满了?或者disk出现坏道?
3、服务器上行网络带宽是否被不明占据?是否受到DDOS攻击?
可否remote login到服务器检查?能否调用服务器日志?
暂时就想到这么多。:)
【在 P*******b 的大作中提到】 : a website is very slow, how do you trouble shoot it?
|
s*****n 发帖数: 5488 | 10 very good one.
some to add:
unexpected user input triggers a bug.
ddos.
gabarge collection too late.
not release resource determinstically.
log eats almost all disk space
etc.
【在 y*********e 的大作中提到】 : 假设是传统的3-tier架构的服务器,也即有数据层,逻辑层,还有表现层。 : 整个数据的流量是 数据层 -> 逻辑层 -> 表现层 -> 用户Browser。 : 每一个环节都可能出问题。 : 注意此题,是 "trouble shoot",而不是 "improve"。 : 1、数据层的问题: : 是用数据库吗?若是用数据库,是Single Query还是Join Query? : Query用到了Index吗?Index是否broken(重建Index)? : Join Query是否可以rephrase(查看Query Optimizer)? : 是否存在IO瓶颈(做Table Partition)? :
|