What Happens When A User Does Lot’s Of Clicks
21 March, 2011
Hi Support,
I have say 10 DashBoards
And on some Dashoards I have 2-3 reports
Say each DashBoard takes normally a minute to load
So user clicks on Dash01 and it says "Loading Report"
User then clicks on Dash02 it says "Loading Report"
User then clicks Dash03 it says "Loading Report"
Then Dash04, then Dash05 etc
The first few users have been given access to YellowFin
In the last few days
Customers IT Department rings me
Asking me what am I doing
Order entry / invoicing etc is running like a dog
Obviously suggesting the new install / YellowFin / The DashBoards
Are causing the performance problem
And this is likely to be correct (I think)
DataBase is Progress
In your experience
What does / is happening
When users go merrily clicking away
From my own experience
I know if I go clicking away / too far ahead
It can cause problems
And eventually mean I have to restart YellowFin
Or kill the port / or whatever
Your thoughts please
Thanks - Grant
I have say 10 DashBoards
And on some Dashoards I have 2-3 reports
Say each DashBoard takes normally a minute to load
So user clicks on Dash01 and it says "Loading Report"
User then clicks on Dash02 it says "Loading Report"
User then clicks Dash03 it says "Loading Report"
Then Dash04, then Dash05 etc
The first few users have been given access to YellowFin
In the last few days
Customers IT Department rings me
Asking me what am I doing
Order entry / invoicing etc is running like a dog
Obviously suggesting the new install / YellowFin / The DashBoards
Are causing the performance problem
And this is likely to be correct (I think)
DataBase is Progress
In your experience
What does / is happening
When users go merrily clicking away
From my own experience
I know if I go clicking away / too far ahead
It can cause problems
And eventually mean I have to restart YellowFin
Or kill the port / or whatever
Your thoughts please
Thanks - Grant
Hi Grant,
When clicking on many things, while other things are loading simply adds the new task to the list of tasks already waiting to complete.
So effectively slowing things down, and may give Tomcat an 'out of memory error' which means you will need to restart Tomcat.
The post below discusses server configuration that could increase performance:
http://www.yellowfinbi.com/YFForum-Server-is-hanging-?thread=89741
Though in saying this, waiting 1 minute for a dashboard to load is quite excessive and we would like to trouble-shoot this further.
Have you looked at view/report caching to help increase the running time of reports?
Regards,
David
When clicking on many things, while other things are loading simply adds the new task to the list of tasks already waiting to complete.
So effectively slowing things down, and may give Tomcat an 'out of memory error' which means you will need to restart Tomcat.
The post below discusses server configuration that could increase performance:
http://www.yellowfinbi.com/YFForum-Server-is-hanging-?thread=89741
Though in saying this, waiting 1 minute for a dashboard to load is quite excessive and we would like to trouble-shoot this further.
Have you looked at view/report caching to help increase the running time of reports?
Regards,
David
Hi Support,
All excellent suggestions and will check them all out
Also
How can I (I am not technical)
As a YellowFin user logged into YellowFin
See this
"List of tasks already waiting to complete"
How can I watch a list / queue
And see how many there are still to go
And when each one completes etc
Thanks - Grant
All excellent suggestions and will check them all out
Also
How can I (I am not technical)
As a YellowFin user logged into YellowFin
See this
"List of tasks already waiting to complete"
How can I watch a list / queue
And see how many there are still to go
And when each one completes etc
Thanks - Grant
Hi Grant,
There is a way to see what is running via 'info_threads.jsp'.
E.g. http://localhost:80/info_threads.jsp
Though it may be extremely hard to decipher what it all means.
It will however show you just how many tasks are running.
Regards,
David
There is a way to see what is running via 'info_threads.jsp'.
E.g. http://localhost:80/info_threads.jsp
Though it may be extremely hard to decipher what it all means.
It will however show you just how many tasks are running.
Regards,
David
Hi David,
Your right - Very hard to decipher
A Couple More Questions
Each click on a DashBoard is starting a new task
Is there someway of limiting this
Eg user cannot have more than 4 tasks in the queue
If they keep clicking, No more will start
Server is a Linux Box and I am running top
You probably already know this but looking at top
I do 4 clicks
And I can see 4 times _sqlsrv2
Each using so it says say 90% of the CPU
They all run around for a few minutes and finish at present
The tasks do not appear to be in a queue
They all seem to be running at the same time
We did up the pools on this server
And the memory had been cranked a while ago
So I think I know how I can see if there is a heap
of YellowFin / Java tasks / SQL / JDBC tasks running around
Do all these _sqlsrv2 tasks make sense to you
Thanks - Grant
Your right - Very hard to decipher
A Couple More Questions
Each click on a DashBoard is starting a new task
Is there someway of limiting this
Eg user cannot have more than 4 tasks in the queue
If they keep clicking, No more will start
Server is a Linux Box and I am running top
You probably already know this but looking at top
I do 4 clicks
And I can see 4 times _sqlsrv2
Each using so it says say 90% of the CPU
They all run around for a few minutes and finish at present
The tasks do not appear to be in a queue
They all seem to be running at the same time
We did up the pools on this server
And the memory had been cranked a while ago
So I think I know how I can see if there is a heap
of YellowFin / Java tasks / SQL / JDBC tasks running around
Do all these _sqlsrv2 tasks make sense to you
Thanks - Grant
Hi Grant,
You change the number of connection threads via a setting in the server.xml :
<Connector port="8050" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain"
/>
Though I don't believe this is going to sort your issue. This may help free up the CPU a little, but it will not increase YF performance.
You could try changing the data source connection pool, to a lower number like 1 or 2. Though this means only 1 connection can be opened at a time to the data source.
Unfortunately the _sqlsrv2 doesn't mean a whole log, and we would need to use a database profiler to trace what is actually occurring.
I still think we need to home in on the reports/dashboards taking a while to load. Is there 1 particular report/data source that is slow etc..
Regards,
David
You change the number of connection threads via a setting in the server.xml :
<Connector port="8050" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain"
/>
Though I don't believe this is going to sort your issue. This may help free up the CPU a little, but it will not increase YF performance.
You could try changing the data source connection pool, to a lower number like 1 or 2. Though this means only 1 connection can be opened at a time to the data source.
Unfortunately the _sqlsrv2 doesn't mean a whole log, and we would need to use a database profiler to trace what is actually occurring.
I still think we need to home in on the reports/dashboards taking a while to load. Is there 1 particular report/data source that is slow etc..
Regards,
David
Hi David,
Reading with interest and noting all your suggestions.
The Summary Table Has 400,000 Records
It used to have lot's of joins
This was very slow
Table now has only one join to our Date Table
Sales by customer and style by month for the last few years
Used to have 10 years history by month
Now it only has since 1/1/2009
To help reduce the number of records
So 400,000 records at midnight takes a few seconds
During the day when 50 users are logged on doing order entry etc
It takes a minute
Above info FYI and some background
Thanks - Grant
Reading with interest and noting all your suggestions.
The Summary Table Has 400,000 Records
It used to have lot's of joins
This was very slow
Table now has only one join to our Date Table
Sales by customer and style by month for the last few years
Used to have 10 years history by month
Now it only has since 1/1/2009
To help reduce the number of records
So 400,000 records at midnight takes a few seconds
During the day when 50 users are logged on doing order entry etc
It takes a minute
Above info FYI and some background
Thanks - Grant
Hi Grant,
Thanks for that info.
If you were to get the SQL used for these reports, and run it directly against the database, do you get the same run time?
Also these reports could take longer if generating a chart.
Regards,
David
Thanks for that info.
If you were to get the SQL used for these reports, and run it directly against the database, do you get the same run time?
Also these reports could take longer if generating a chart.
Regards,
David
Hi David,
You asked earlier
Have you looked at view/report caching to help increase the running time of reports?
No I have not and am now about to do so
Any helpful clues / tips
Many of my views are static
Eg - Rebuilt each night and do not change during the day
Hence
Reports / graphs coming from those views will not change during the day
So any
Tips / manual pages / what to read suggestions etc
Greatly appreciated
Thanks - Grant
You asked earlier
Have you looked at view/report caching to help increase the running time of reports?
No I have not and am now about to do so
Any helpful clues / tips
Many of my views are static
Eg - Rebuilt each night and do not change during the day
Hence
Reports / graphs coming from those views will not change during the day
So any
Tips / manual pages / what to read suggestions etc
Greatly appreciated
Thanks - Grant
Hi Grant,
Did you end up running the query used for these reports directly against the database and seeing if they take a while to bring back data?
It seems you could benefit from report/view caching.
Though before recommending any of these we really need to see if the query itself runs quite slow against the database.
Regards,
David
Did you end up running the query used for these reports directly against the database and seeing if they take a while to bring back data?
It seems you could benefit from report/view caching.
Though before recommending any of these we really need to see if the query itself runs quite slow against the database.
Regards,
David
Hi David,
I click on a DashBoard and say 40 seconds later it is done
My DataSource is writable No
I have cached certain views
Eg made them 10 Hours (This data is refreshed overnight)
Click on a DashBoard 1st Time - 40 Seconds later all done
Click same DashBoard a second time
And less than 5 seconds
So this is good
Must be caching in the Yellowfin DB ?
How could I say at 7AM every day
Cache all these DashBoards
So the first user of the day
Does not have to wait the 40 seconds plus
For each of the 30 DashBoards
Thanks - Grant
I click on a DashBoard and say 40 seconds later it is done
My DataSource is writable No
I have cached certain views
Eg made them 10 Hours (This data is refreshed overnight)
Click on a DashBoard 1st Time - 40 Seconds later all done
Click same DashBoard a second time
And less than 5 seconds
So this is good
Must be caching in the Yellowfin DB ?
How could I say at 7AM every day
Cache all these DashBoards
So the first user of the day
Does not have to wait the 40 seconds plus
For each of the 30 DashBoards
Thanks - Grant
Hi Grant,
Yes, it does use actual memory, though rest assured the in-memory database is cleared after each Tomcat reboot.
It will use the allocated amount of memory previously set for the Java (so this can always be changed).
Unfortunately, there is no way to automatically cache these dashboards without actually opening them.
We have discussed this previously and are thinking of ways this can be improved.
Though I don't believe any changes will be made in the next update.
Regards,
David
Yes, it does use actual memory, though rest assured the in-memory database is cleared after each Tomcat reboot.
It will use the allocated amount of memory previously set for the Java (so this can always be changed).
Unfortunately, there is no way to automatically cache these dashboards without actually opening them.
We have discussed this previously and are thinking of ways this can be improved.
Though I don't believe any changes will be made in the next update.
Regards,
David
Hi David,
I click on a DashBoard and say 40 seconds later it is done
My DataSource is writable No
I have cached certain views
Eg made them 10 Hours (This data is refreshed overnight)
Click on a DashBoard 1st Time - 40 Seconds later all done
Click same DashBoard a second time
And less than 5 seconds
So this is good
Must be caching in the Yellowfin DB ?
How could I say at 7AM every day
Cache all these DashBoards
So the first user of the day
Does not have to wait the 40 seconds plus
For each of the 30 DashBoards
Thanks - Grant
I click on a DashBoard and say 40 seconds later it is done
My DataSource is writable No
I have cached certain views
Eg made them 10 Hours (This data is refreshed overnight)
Click on a DashBoard 1st Time - 40 Seconds later all done
Click same DashBoard a second time
And less than 5 seconds
So this is good
Must be caching in the Yellowfin DB ?
How could I say at 7AM every day
Cache all these DashBoards
So the first user of the day
Does not have to wait the 40 seconds plus
For each of the 30 DashBoards
Thanks - Grant
Hi David,
Your Comments
Though in terms of the dashboard taking up to 40secs when first logging in, this cannot be changed at the moment.
As this dashboard will cache all the data only after being opened.
So if your caching is to refresh every day, then every day the dashboard will need to be reloaded into cache.
We are thinking of ways to automatically cache these dashboards, though I believe this will take some time, as this would be a major change.
David, be good if DashBoards could be automatically cached every morning
Thanks - Grant
Your Comments
Though in terms of the dashboard taking up to 40secs when first logging in, this cannot be changed at the moment.
As this dashboard will cache all the data only after being opened.
So if your caching is to refresh every day, then every day the dashboard will need to be reloaded into cache.
We are thinking of ways to automatically cache these dashboards, though I believe this will take some time, as this would be a major change.
David, be good if DashBoards could be automatically cached every morning
Thanks - Grant