skip to main |
skip to sidebar
Friday, April 12, 2013
Thursday, October 6, 2011
Why every employee is important, every employee.
For a successful product to be launched the key ingredients are
- Passion
- Brand
- Innovation
- Technology
- Care
and the most important and commonly ignored one is
- EVERY employee
I'm not going to expand on the other terms, as the words are self-explanatory.
Let me share an incident that happened to me recently-the reason behind writing this blog. I recently planned to buy a headphones, and quite excited from the reviews went ahead to buy it from a mall near by. From the brand value, I expected a warm welcome to the valuable customer, who is about to buy their innovation. My apparel was casual and hence I was blaunt and did not make a great impression for a warm welcome or at least welcome. There were two sales men and both of them were talking to a customer-a well dressed old man. I could make from his body language that he is not going to buy the product-ofcourse not my job. I waited for ten minutes and requested for an attention.
One sales man came to me after five minutes and I requested for a demo for the product I am going to buy. He shuffled the products that he had and left. For a second, I was feeling like Dr. Malcolm Crowe in Sixth Sense, unnoticed. I asked him twice and he did not mind to give an attention.
The moral, "every employee is important" and I walked away. Sales men are not the only ones, every employee is important. Just think of situations where your friends working for an organization gives a bad review on how it treats employees, where a person annoys you in an interview, a single 404 page during a transaction (referring to the employee who is responsible for it), a new joinee give a bad review of the previous employer, etc.
So, even if every employee gives their best for the product and one employee does anything bad, customers walk away.
| Reactions: |
Wednesday, June 1, 2011
Site performance tuning using jMeter and jVisualVm
I recently had to work on a requirement where I had to support (response time less than 5 seconds) for 500 concurrent users, with 10 million users in database and a single server. I tried going through many forums and open source tools, from which I finalized on jMeter for performance testing and jVisualVm for finding bottlenecks.
This was my approach:
- Make sure that the server (hardware can be as per the staging/production requirements) has no other installations that can affect the performance.
- For setting up the users in DB, a procedure can be used and can be called as a part of jmeter test plan.
- Install jmeter on a separate machine, so that jmeter won't affect the performance.
- Create a test plan in jmeter (as shown in the figure 1) for all the uri's, with response checking and timer based requests.
- Take the initial benchmark, using jmeter.
- Check for the low performance uri's. These are the points to expect for bottlenecks.
- Try different options for performance improvement, but focus on only one bottleneck at a time. Some of them can be
- Database index. Use the DB server logging to find the slow queries, use explain plan and improve the sql statements.
- Check the configuration parameters for any third party tools.
- Check if there are any dead locks (can be checked with jVisualVM as shown in Figure 2).
- Profiling the application using jVisualVm(can be checked with jVisualVM as shown in Figure 3).
- Data structures, algorithms and loops.
- UI components, try advices from YSlow. Try streaming, caching, etc.
- Read the hardware configuration and try for any options like cpu cache, jvm tuning, paging, etc. This step does not include hardware scaling.
- Check for memory leaks using jVisualVm.
- Try any one fix from step 6 and then take an benchmark. If there is any improvement commit the changes and repeat from step 5. Otherwise revert and try for any other options from step 6.
- The next step would be to use load balancing, hardware scaling, clustering, etc. This may include some physical setup and hardware/software cost. Give the results with the scalability options.
jMeter test plan
![]() |
| Figure 1: jMeter test plan |
jVisualVM run for a sample deadlock program.
![]() |
| Figure 2: jVisualVM shows Thread 1 and 2 waiting for the monitor |
![]() |
| Figure 3: jVisualVm showing profile results for memory |
Results:
In the end it is better to prepare a complete report from the benchmarks and finally define the performance with details of the hardware, software, maximum db load, maximum number of concurrent users supported(users active every 2 seconds), maximum number of sessions, changes made and the improvement achieved. Any unimplemented changes can be suggested for improvement, so that the effort to find the bottleneck is improved.
| Reactions: |
Subscribe to:
Posts (Atom)
Blog Archive
About Me
- TechMaddy
- My job: 80% of my time, I suck data out of database, show it to the user, and let them change it. Again, the remaining 20% is Artistic. Eat low. Code smart. Cycle fast. Recycle past. I am: A Simple Abstraction of the complication within and I am extermely Polymorphic. My belief: I believe in action rather than words. My love: I love the nature, so add me or contact me for any green initiatives. I am a Simple Abstraction of the complication within and I am extermely Polymorphic. My belief: I believe in action rather than words.



