English 中文(简体)
Site slows for individual users, but they can switch browsers?
原标题:

I ve tried searching for this but it s pretty difficult to put into words.

Basically, our site will run fine for most users without any issues. Sometimes though, those of us who use the site pretty heavily all day will suddenly get completely bogged down. Everything just spins in place. The site itself is still fine - everyone else can still get to it, but the individual user is stuck. In fact, restarting the browser entirely doesn t generally fix the issue, even if you explicitly clear your cookies.

You can, however, generally open the site just fine by switching to a different browser. If you re bogged down in Firefox, you can usually open it up and continue working just fine in IE. This can happen both ways (you can bog down IE, and switching to firefox works).

Does this make any sense at all? It s like there s something breaking with the session, but I don t know what would cause this and the session should reset by restarting the browser and clearing cookies and whatnot.

Any ideas?

[Editing to clarify, sorry, should have included this to begin with] Server is a very basic LAMP stack on RedHat with Apache 2.2.3, PHP 5.2.11, MySQL 5.0.45 (we ve considered upgrading MySQL but I don t think this is the issue here). It s a standard configuration for Rackspace, so I don t think we re doing anything exotic besides maybe the Zend Optimizer.

We re using a lot of javascript/jquery but it s all pretty standard stuff and I wouldn t expect a memory leak to not affect the other browser, though I may be wrong.

Also, our server s CPU and memory usage have never broken the 25% margin, even in spikes, and the spikes don t seem to correlate with this phenomenon.

最佳回答

Sounds pretty much like you have some sort of session locking issue. You state that even removing cookies doesn t help, which makes session locks seem less plausible, but I don t have any details on your implementation so it s still possible.

I have two questions i d need answered to gain some insight into the problem.

  1. Do you have a session open while streaming content and attempting to read from or write to the session on a different request?

  2. Have you ve implemented your own sessions?

If you re answering yes or maybe to question 1, that s probably the root of your problem then.

If you re answering yes to question two, does the problem persist if you switch session management to standard php? You could have a bug in your session handling.

问题回答

G day,

It sounds like you re persisting some sort of info on the server side on a per-session basis.

Are you persisting session id s or user id s on the server? Maybe adding more and more information to some persisted data with each subsequent incoming request?

Maybe the incoming User Agent string is also involved which is why changing browser types works, where simply restarting a session in the same type of browser doesn t work?

Have you seen if stopping and restarting a session across a time boundary, e.g. the hour, or midnight, when using the same browser also resets the problem? Maybe try spoofing the UA string to see if that also resets the problem.

BTW What Apache modules are you running in your server? Also 2.2.3 is quite an old version have you considered upgrading?

It s look like to me that it is a Memory Leaks that your javascript creates. Check your process list and see how much memory browser consume in begining and after half an hour of browsing and reloading your website. If if memory consumption is significantly more than it suppose to be thats meen that you have to review your javascript code for any unreturned methods, unbreaked loops and so on. Usualy it helps.

Interestingly no one has suggested advertisements as the cause (Nazariy s answer could be adopted to those though).

Basically check the advertisements shown on your site, there s a ton of crap in those things and they re always based on user recognition which would explain why restarting the browser doesn t help.

This has happened to me too, frequently, in fact. Completely stateless site, lot s of AJAX requests, after a while the site just becomes unresponsive. It s especially annoying during debugging. Here are some things you have to be aware:

  • Number of JS files loaded (it includes the ones you get using script requests) (You should probably delete the script tags created if you use that method)
  • Number of CSS files (for example, on IE, there is a hard limit of 31, I think)
  • Sometimes the browser can lock into a DNS resolution request
  • Some browsers have limits on the number of requests to domains (IE has 2) so if there is a request not fulfilled, all the others to that domain will have to wait

All this of course doesn t explain why it keeps hanging after you restart the same browser - though you haven t mentioned clearing your cache, so maybe there is a failed request that is sitting in your browser cache or some intermediate cache or proxy, so you can try to see if this happens if you completely turn caching off in your browser. (On Firefox this can be easily done using the Web Developer toolbar, for example.)

You should also see what requests hang, use Fiddler and Firebug to see that.

Memory leaks caused by javascript affect the browser, because it s all client side. Jquery compress or min you can t be sure where the problem is, and it is likely to be the cause problems, or the script using it.





相关问题
why the session in iis automatically log out?

I used iis6, and when i called a function Directory.delete(), the all the session relate this website will be logged out. and i debugged the website, i found no exception. any one have ideas on this ? ...

Check session from a view in CodeIgniter

What is the best way to check session from a view in CodeIgniter, it shows no way in their user guide, otherwise I will have to make two views on everything, which is kinda weird...still a newbie to ...

Can I get the size of a Session object in bytes in c#?

Is it possible to get the size(in bytes) of a Session object after storing something such as a datatable inside it? I want to get the size of a particular Session object, such as Session["table1"], ...

提供严格分类的出席会议物体

提供严格分类的与会机会的最佳方式是什么? 我正计划转而选择矩阵,这正在促使汇编者抱怨我的幻觉方案拟订方法......

PHP Session is not destroying after user logout

I m trying to create an authentication mechanism for my PHP Application and I m having difficulty destroying the session. I ve tried unsetting the authentication token which was previously set within ...

热门标签