OLIO > Index > Frequently Asked Questions (FAQ)
Added by Shanti Subramanyam, last edited by Shanti Subramanyam on Jan 26, 2009  (view change)

NOTE: This FAQ is currently being constructed. Please feel free to provide us feedback on what you'd liketo see added by sending an email to olio-dev at incubator dot apache dot org.

The web application connects to api.maps.yahoo.com. In a test environment, how can I avoid this ?

The event page, when viewed from the browser, is accessing maps.yahoo.com. This is not configurable. So you will see a delay in the browser. The browser has the responsibility of pulling the maps. Since in the workload we simulate the browser, our workload actually does not go out to maps.yahoo.com. Therefore, that part of the delay is not measured. In other words, we provide browser-side mashups in the application, but that is excluded from the workload. This is intended behavior.

What is the recommended configuration for running Olio/PHP ?

This obviously depends on what scale you want to test. To start with, it is okay to run the entire application (web, cache, database) on a single system but we recommend a minimum of 3 systems : one for the driver (4-8 GB memory) , one for apache/php and one for the database and memcached. With caching included, the load on the database is significantly less, so it is possible to combine these tiers. If running apache in pre-fork mode, you will need substantial memory - our rule of thumb is 10MB per connected user. CPU utilization is also heaviest on the web tier.

How do I specify different locations for JAVA_HOME for the different machines (driver, webserver etc.) ?

The JAVA_HOME env on all machines should be the same, if possible. The agent in daemon mode supports different JAVA_HOME values. It will fall back to the JAVA_HOME the agent was started with, if the JAVA_HOME in the config file is not available. This is described in the faban install and config guide: http://faban.sunsource.net/0.9/docs/install.html

It takes a very long time to load the database even for a small number of users. Why ?

This is usually due to a mis-configuration of the MySQL parameters. We recommend running the latest version of MySQL 5.x. Please use the parametes from the my.cnf included with Olio. This file is located in the etc sub-directory of the application for the PHP version.

 Is there a formula for the relationship between the number of concurrent users and the number of connections to the web server (apache+php) and MySQL ?

1. The number of connections to the web server is close to the number of concurrent users, provided keepalive is on. Each simulated user will make it's own connection.

2. Apache, if run using mpm-prefork (typical configurations for php)  will result in each httpd process having a connection to MySQL. Given one connection mapping to one httpd process (roughly), this implies one MySQL connection for each process. As caching comes into play, some processes may not ever need to connect. So the MySQL connections may be slightly less.

3. There will be one connection from each httpd process to a memcached server.

 As I scale up, runs start to fail, usually because the AddPerson and AddEvent response times are very high. How do I fix this ?

These operations are the heaviest in Olio and typically depend on both the response of the file store and the database. If either of these is a bottleneck, they may have to be tuned. Monitor the cpu, memory, network utilizations of the systems running the filestore and database. If using a local filestore on the webserver box, remember that you not only need sufficient memory for the webserver processes, but also for the file system.