This article goes over the basic components that contribute to Looker's performance. Its goal is not to provide a laundry list for troubleshooting; every performance issue is specific and we want to work closely with you to make sure you are having a good Looker experience. Instead, we lay down some basic concepts so that we can be on the same page.
Bottom line: If you are experiencing performance issues, please contact Looker. We want to help!
At a basic level, Looker is a program running on a server. Looker uses the memory and CPU of that server to run. Every company that uses Looker has their own dedicated server or cluster — there is no notion of a
global Looker server. When you log into Looker from your browser, the browser sends requests to your server for information. The server returns the desired information and your browser renders it for you.
In addition, Looker connects to your database. In this case, the Looker server asks the database for information and the database returns it to the server.
Let's say you go to your personal folder (called "Spaces" before Looker 6.20) in Looker and then open a dashboard. This is what is happening behind the scenes:
- You click on a link, that you expect will bring you to your personal folder.
- Your browser asks your Looker server for information about that folder: "Are there Looks, dashboards, or other folders in here?"
- Your Looker server returns that information to your browser: "Yes, there is dashboard A that contains Looks 1 and 2."
- Your browser shows you the contents of your folder.
- You click on the link to dashboard A.
- Your browser asks the Looker server for info about dashboard A.
- Your Looker server generates the SQL queries needed for Look 1 and 2, and sends them to the database.
- The database gives your Looker server back the result sets for those queries.
- Your Looker server sends the data it got from those queries on to the browser.
- The browser renders the dashboard using the data it got from the server.
There are three major players here: the database, your Looker server, and the browser. Each contributes to the perception of Looker performance. Let's briefly discuss the work these three components need to do to bring you your data.
It takes time for a database to process a SQL query, especially if it has several running at once. If an Explore, Look, or dashboard is taking a long time to return results, it could just be that the query is slow. You can check the Admin > Query panel or even your database console to get a better idea of database load.
Your Looker server (or Looker instance, as we sometimes call it) has a lot of work to do, serving visualizations and pages for everyone using the server. If the instance itself is under a heavy load, a symptom could be that a simple task (not involving a query) like navigating folders takes a while to load.
Finally, your browser shows you the data that Looker gives back. The amount of data modern browsers can show is limited, and it's possible to crash a browser just by opening an Explore with a large amount of data in it.
This is measured roughly by (
amount of data per cell) * (
number of rows) * (
number of columns). It is possible for a large query to be fast, and for your instance to serve the results of that query quickly, but your browser may take a long time to render those results or may crash. In this example, only users who opened that query would be affected, and no other pages in Looker would be affected.
Since Looker is a web application, every interaction with Looker is dependent on sending information through the Internet. A poor network connection will impact all three components: database, instance, and browser. If you think you might be experiencing network latency, try asking a colleague who is using Looker on a different network, or ask the Looker support team to check the same page for slowness.
Now that you have an idea of the basic performance concepts in Looker, please do not hesitate to reach out to your Looker contact, or Looker Support. We want to help you through this, to make sure you are having the best possible Looker experience. When you contact us, be as specific as possible: tell us what pages are slow and at what times. We will help get you sorted out.