17

It could be that you just have a dodgy rendering that is running on every page and is then cached for that page; to see if this is the case you can profile Sitecore pages. You can investigate this by clicking on the "Debug" option and scrolling to the bottom of the page to see the speed of renderings: From here you can either optimise the code, or check ...


12

Possible answers to 1,2,3... Sounds like you need to do a bit of tuning on your caches. Sitecore has a number of "admin" pages which help you diagnose problems such as this - you can use the cache admin page to monitor the current size, configured size and vectors of the individual caches, include prefetch. To access this page, browse to http:///sitecore/...


7

I'd recommend learning and using Apache JMeter. Yes, it's a technically a load testing tool, but in reality it's a highly configurable and very powerful tool to script simple and complex HTTP (and other) requests against one or many destinations. We use it for both load and stress testing. You can build up a suite of requests that cover a good ...


6

I have some code to offer to start the node process(es) with custom arguments, e.g. --prof. However, I'd first like to highlight the following bits of information about GraphQL and JSS that might provide some insight. Sitecore GraphQL includes some built-in diagnostics features that can help diagnose API performance issues: https://jss.sitecore.com/docs/...


5

Ran into a similar situation in a project, wanted to just 'smoke test' things towards the end both locally (Resharper test runner) and in CI/deployment (VStest task). Ended up creating another 'Test' project in the same solution and followed an example Selenium project online: https://github.com/atosorigin/SeleniumExample. From there, I picked out a few ...


4

This ended up being a DNS issue; the site name was not being resolved properly. I took @maz's advice and called [System.Net.Dns]::GetHostEntry("siteHostName") in PowerShell (I didn't have Sitecore PowerShell Extensions installed, so I just called it from PowerShell on the server). It took about 4-5 seconds and then the call would error out, and that was ...


3

I have tried enabling pipeline profiling in production and there was no noticeable performance penalty, as long as CPU measurements (Pipelines.Profiling.MeasureCpuTime) were off. With CPU timings measured, the overall page load time was increased by something like 3% (a rough estimate). I know this is anecdotal evidence, but I don't believe anyone has ...


3

Depends on what you mean by "safely". If you are investigating performance issues or metrics on your production environment - go ahead and enable it. It will add overhead, but so will any other form of performance measurement. I would not recommend you leave it running indefinitely however. Switch it on to get your data, then switch it off again. ...


2

One way is to use Selenium. They have a .NET driver which you can use to write your own script. See the getting started guide for examples on how to use Selenium. This makes it possible to randomize stuff, fill in and post forms, navigate and so on.


2

You could write some scripts using Casper.js which is an automation tool for Phantom.js to exercise the site. Won't cost you anything but a bit of time and Phantom.js already ships with Sitecore.


1

I looked how Sitecore timers for debug mode are implemented, and modify my code: public class SomeTypeModelBinder : IModelBinder { public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { Tracer.Info("Starting BindModel for SomeType"); Tracer.Indent++; Profiler.StartOperation("BindModel ...


1

Figured it out. Looked in /sitecore/admin/showconfig.aspx to see the fully merged configuration and saw that the working site had additional attributes on the site node. I added the following attributes to the other site nodes: allowDebug="true" enableDebugger="true" Apparently I was doing a case-sensitive search when I was grepping for "debug" in the ...


1

We were facing the same problem every day because of our nightly release cycle. It seems like our application pool went to sleep and had to be woken up before we could use it. What helped us, was change a setting in IIS to make to application pool react much faster. If you go to your application pool and right click the particular pool. Choose Advanced ...


1

Have you tried Selenium? It is easy to use and you can customize your tests if you are looking for specific sections where things may go wrong(like form submitions, 404 links, regression tests not performed properly, etc).


1

There are loads of tools and techniques, it all depends on what you really want to test. So stress and load test, to do it properly you'll have to use paid services. In regards to functional testing we use Specflow, easy straight forward to use and to write UI acceptance tests. In regards performance I use Sitecore tracer and performance monitor, where you ...


Only top voted, non community-wiki answers of a minimum length are eligible