DB Load Testing

<<

Justin Buist

Posts: 18

Joined: Mon Aug 22, 2011 9:27 pm

Post Sat Dec 17, 2011 3:33 am

DB Load Testing

I thought I'd share this with the group.

When I turned down a quote from a commercial POS vendor and told him I'd be rolling out OBPOS he expressed some concerns about the software not treating the DB nicely and overloading it with our "high" traffic -- 38 lanes, up to 8,000 potential tickets a day.

I didn't put much stock in his concerns, but thought I'd test them out anyway. So, I loaded up OBPOS/MYSQL with the product list from our existing MS RMS 1.3 database (21,000 products), built 10 lanes running Linux as the OS, exported our current record highest day of sales from a single register's 12 hour day, scripted that data out into a shell script that ran a series of 'xte' commands to simulate keyboard/mouse commands, figured out about how fast the software could respond with some extra padding (0.5 seconds between scans, 3 second delay before hitting tender, 1 second to move to the 'cash' tab, half second delay, enter $1000 as amount tendered, hit OK, wait 3 seconds then start the next order.

And then I stuck all 10 lanes running that shell script into an infinite loop. Each loop completes in about 1 hour. So that's 12 hours of actual sales compressed down to one hour. With 10 registers running that fast it's about like having 120 actual lanes with real people and real customers pushing them along. I had to reboot the registers after 36 hours, because the audio layer got mucked up (custom code, not stock OBPOS, I play a "beep" WAV every time an item scans and an "Error" WAV every time an item fails lookup) but after 5 days I had 180k transactions in the OBPOS database which is what we'll do in our 8 week busy season.

Pretty comforting to know that it can handle compressing 8 weeks of sales into 5 days and not miss a beat. Heck, the load average on the MySQL server never went above 0.30, and that silly little test box is also running DHCP/SVN/DNS/Apache.

The real kicker is that it's just a dual core Atom box, same as my registers, with a single SATA 5400RPM drive and 2GB of RAM in it. I'd probably have to scale up to simulating 300-400 lanes before even THAT thing choked.

Pretty sure the quad core Opteron@3.0Ghz with 5 15k drives in RAID-5 and 32GB of RAM I've got racked up and ready to go will handle our load just fine, but I'm going to test it anyway, because this kind of testing is fun!
<<

Gary V.

Posts: 11

Joined: Wed Oct 13, 2010 10:34 pm

Post Sat Dec 17, 2011 6:24 am

Re: DB Load Testing

Out of curiosity and if you have time, would you mind sharing what computer and peripheral hardware you are using for the POS lanes? Also are all of your lanes at the same physical location or do you have remote locations?

I’m working out the details for a 2 lane per store, 5 remote store setup. Just wondering what you are working with as I read over the impressive results you posted about.

Anyways thanks for your time and the info in your post.

Gary V.
<<

Justin Buist

Posts: 18

Joined: Mon Aug 22, 2011 9:27 pm

Post Sat Dec 17, 2011 3:17 pm

Re: DB Load Testing

All lanes are at the same physical location.

Hardware:

- Barebones Foxconn dual core Atom machine w/ a 160GB HDD and 1GB of DDR2 RAM added.
- Elo 15" touch screen (acoustic wave)
- POS-X XR520 receipt printers + some generic cash drawer that works on the Epson protocol
- DisplayLink 165 USB -> VGA Adapter for customer facing monitor
- Symbol LS4278 wireless scanner
- Heartland E3 PIN Pad
<<

Gary V.

Posts: 11

Joined: Wed Oct 13, 2010 10:34 pm

Post Sat Dec 17, 2011 9:41 pm

Re: DB Load Testing

Thanks for the reply. what linux distro and how does obpos work with the atom machines? responsive or is there any lag?

Gary V.
<<

Escartin Aurélien

Posts: 53

Joined: Wed Oct 19, 2011 6:01 pm

Post Sat Dec 17, 2011 11:24 pm

Re: DB Load Testing

Thanks for sharing.
Can you tell us what is the business of your company (I assume it's retailing, but what kind ? :) )
What was your former software ?
When do you plan to go live and what will be the total duration of the project ?

Thanks !
<<

Justin Buist

Posts: 18

Joined: Mon Aug 22, 2011 9:27 pm

Post Sun Dec 18, 2011 1:07 am

Re: DB Load Testing

I don't really get any lag on the tiny Atom processors. Maybe a 0.1 second delay here and there, but not enough for it to really bother somebody. And I think the only reason I'm seeing that is because of the particular look & feel that I chose: RavenSkin. It likes to fade the buttons and lines as they draw which I think is what's taxing the system a bit.

I could be wrong. It could also bee the promo code stuff I stuck in there (it recalculates on every item scan) and my method of re-drawing the ticket on the customer facing display might not be the best either.

Our business is the greenhouse business. We currently have about a 3.5 acre store and 17-19 checkout lanes running MS RMS 1.3.

In 2013 we're opening up a new store that'll be around 8 acres in size and we're planning on 35-40 checkout lanes there.
<<

Gary V.

Posts: 11

Joined: Wed Oct 13, 2010 10:34 pm

Post Mon Dec 19, 2011 4:52 am

Re: DB Load Testing

If I may, one more question? What DB server are you going with? The big bad one you wrote about or something else? I sounds like the one you wrote about was spec for the microsoft 1.3? If you have time how big (physical space on the HDD) did the DB get during your stress test?

Thanks again,
Gary V.
<<

Adam Richardson

Posts: 6

Joined: Mon Mar 30, 2009 4:06 pm

Post Sat Mar 31, 2012 7:45 pm

Re: DB Load Testing

I'd like to add a Fail beep to my system too. What part of the code did you change? Instead of a .wav I'd just want to use a pc speaker beep. Any suggestions on getting this accomplished would be greatly appreciated.

Return to Open Discussion

Who is online

Users browsing this forum: No registered users and 2 guests

cron
Website Terms


Designed by ST Software for PTF.