| Line 5: | Line 5: | ||
=== Test Method === | === Test Method === | ||
| - | * The way to get "Rate" is straightforward. In each test case, sending specified number of workflows(such 3000, 20000...) to BOSS then record the start and end time. Then it's easy to get the "Rate" for that test case. | + | * The way to get "Rate" is straightforward. In each test case, sending specified number of workflows(such 3000, 20000...) for on shot or iteratively to BOSS then record the corresponding start and end time. Then it's easy to get the "Rate" for that test case. |
=== Test Environment === | === Test Environment === | ||
| Line 21: | Line 21: | ||
=== Test Cases === | === Test Cases === | ||
* Test Case Set 1 | * Test Case Set 1 | ||
| - | In this case set, we | + | In this case set, we executed following cases: |
| - | * | + | * Request 5000 workflows repeatly(send another 5k workflows to engine after previous 5000 finished); |
| - | [[File: | + | Repeat 20 times(100k workflows will be handled totally) |
| - | + | [[File:boss_performance_test_5kx20.PNG]] | |
| - | + | * Request 1000 workflows repeatly(send another 1k workflows to engine after previous 1000 finished); | |
| - | [[File: | + | Repeat 100 times(100k workflows will be handled totally) |
| + | [[File:boss_performance_test_1kx100.PNG]] | ||
From above results, we can find some interesting things: | From above results, we can find some interesting things: | ||
| - | * Rates are decreasing | + | * Rates are almost NOT decreasing(for 1k or 5k, they are both around "25") |
* CPU/DISK is at high rate during testing | * CPU/DISK is at high rate during testing | ||
* Memory is still taken after workflow finished. It looks like "memory leak" but it may not be if considering the "warm cache(or GC)" in Ruby/Python like language | * Memory is still taken after workflow finished. It looks like "memory leak" but it may not be if considering the "warm cache(or GC)" in Ruby/Python like language | ||
| - | * | + | * NO workflow losing |
| - | * | + | * NO engine crashing |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Issues Found Summarized=== | === Issues Found Summarized=== | ||
| - | * | + | * Bug: https://projects.maemo.org/bugzilla/show_bug.cgi?id=197739 |
| - | * | + | This bug fix the channel closing issue, and solved following issues found before(http://wiki.meego.com/User_talk:Pennymax): |
| - | * | + | * Crash |
| - | * | + | * Workflow losing |
| + | * Performance decreasing after running a while | ||
* Memory leaking: memory used by engine was keeping even all workflows finished | * Memory leaking: memory used by engine was keeping even all workflows finished | ||
| - | |||
=== TODO === | === TODO === | ||
This page is to talk about the way of BOSS performance testing.
Contents |
We created the test suit(http://gitorious.org/boss-performance-test) including:
In this case set, we executed following cases:
* Request 5000 workflows repeatly(send another 5k workflows to engine after previous 5000 finished); Repeat 20 times(100k workflows will be handled totally)
* Request 1000 workflows repeatly(send another 1k workflows to engine after previous 1000 finished); Repeat 100 times(100k workflows will be handled totally)
From above results, we can find some interesting things:
* Rates are almost NOT decreasing(for 1k or 5k, they are both around "25") * CPU/DISK is at high rate during testing * Memory is still taken after workflow finished. It looks like "memory leak" but it may not be if considering the "warm cache(or GC)" in Ruby/Python like language * NO workflow losing * NO engine crashing
This bug fix the channel closing issue, and solved following issues found before(http://wiki.meego.com/User_talk:Pennymax): * Crash * Workflow losing * Performance decreasing after running a while