Solved

Load Balancing

Posted on 2014-12-29
8
40 Views
Last Modified: 2015-09-26
Hi , We are planning to have few servers having quite a few windows services and they all are connected to an oracle Database.

All these services read input records from the database and process it further.

Is there anyway to assign fixed number of input records to each server ? We have F5 as the load balancer.

For example  : If there are 3 servers and 100 input records then Server 1 gets 33 Server 2 gets 33 and Server 3 gets 34 records to process.

Your advice would be helpful.
0
Comment
Question by:Satyakam Acharya
  • 2
  • 2
  • 2
  • +2
8 Comments
 
LVL 78

Expert Comment

by:David Johnson, CD, MVP
ID: 40522544
That is not how things will work, you will have to manually split the requests.  Load Balancing goes from 1 to many not many to one.

If you have the Oracle server going to the load balancer to the servers it will connect to 1 (one) server only
0
 
LVL 23

Expert Comment

by:David
ID: 40522556
Obviously 100 records is just an example, but it's hard to comment without facts.  Enterprise Oracle, presumably.  Are the servers on the same rack, or in different countries?  Are you running Oracle clustering (RAC)?  Are you running 11i or 12c?  Was this question not considered by the data architect before acquiring the hardware????

You specifically asked for a fixed number of records to be pre-assigned -- what happens when your input load unexpectedly goes from 100 to 10,000?
0
 
LVL 13

Expert Comment

by:Alexander Eßer [Alex140181]
ID: 40522564
In general I'd agree with David, but if you take a RAC cluster as some kind of load balancing, then there would be several Oracle (RAC) instances dealing with e.g. 1 SQL statement....
0
 
LVL 34

Expert Comment

by:Mark Geerlings
ID: 40522592
Where is the load balancer in relation to the users, the Windows servers and the Oracle database?  Is it between the users and the Windows servers?  Or, is it between the Windows servers and the Oracle database?  Is the database on a single server?  Or, is the database clustered onto multiple machines?

Also, is this a purchased application that may come with some server and/or hardware recommendations?  Or, is this a custom application that you are building from scratch?  Do you have some current data to work with like: number of user connections, numbers of transactions or queries per hour or per day, etc.?  Or, is this a new system that you are estimating load on?
0
Too many email signature updates to deal with?

Do you feel like you are taking up all of your time constantly visiting users’ desks to make changes to email signatures? Wish you could manage all signatures from one central location, easily design them and deploy them quickly to users? Well, there is an easy way!

 

Author Comment

by:Satyakam Acharya
ID: 40523225
Am sorry my bad the application was handed over to me yesterday. So here are the details and statistics
There is no load balancer as of now
The application is currently having one active server and one passive server each running the same set of windows services in batch/scheduled mode.

The services read records from the oracle DB and then process the records and the update the DB accordingly.

Currently as of now, the application gets around 30,000 records to be processed which takes around 2 hrs to process.
Now we want to improve the performance of the same. We found the CPU of the current server is nearly maxed out  and hence we were thinking of couple of new servers. Hence we are thinking is there any way to balance the load for these batch service based on the number of records to be processed ?
0
 
LVL 34

Expert Comment

by:Mark Geerlings
ID: 40523531
Are your Windows servers separate from the Oracle database server(s)?  Or, is the Oracle database also on the Windows servers?

What kind of processing of these records do the application servers do?  Is it possible to move that processing to PL\SQL (or possibly Java) procedures inside the database instead?
0
 
LVL 23

Expert Comment

by:David
ID: 40523616
Is the current server physically maxed out, one cannot add CPU, RAM, etc.?  Cheaper than adding more servers.  How many processors?  Are the processes running with PARALLEL enabled and tuned?

What is the SPECIFIC data flow?  Does record processing mean simple ETL such as datapump or bulk inserts, or more like specific data manipulation and computation.

Is the system and the database tuned?  Are the cost-based optimizer (CBO) statistics kept up to date after each load cycle?
0
 
LVL 78

Accepted Solution

by:
David Johnson, CD, MVP earned 500 total points
ID: 40525483
Memory  SQL likes lots of memory for itself 16G+,and lots of available IOPS you need fast disks (SSD) .. Putting the database on a RAID 1 SSD array will greatly improve things.. My preference is (a) don't put database files on the system disk or any disk with a pagefile.
(b) put database / logs on different physical drives.
without changing anything just using the 2 above suggestions will improve things tremendously
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

I'm a big fan of Windows' offline folder caching and have used it on my laptops for over a decade.  One thing I don't like about it, however, is how difficult Microsoft has made it for the cache to be moved out of the Windows folder.  Here's how to …
This article offers some helpful and general tips for safe browsing and online shopping. It offers simple and manageable procedures that help to ensure the safety of one's personal information and the security of any devices.
This video explains at a high level about the four available data types in Oracle and how dates can be manipulated by the user to get data into and out of the database.
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now