|
SYS-CON Magazines
|
Top Three Links You Must Click On
Migration Is Linux Enterprise Ready?
Making the move
By: Rudi Leibbrandt
Mar. 28, 2006 11:00 AM
No doubt this topic has been debated to death; however, as I have a different perspective on this issue, I reckon it's worth writing down.
Why the Move? As a DBA, you tend to get involved with all sorts of issues, mainly because in the case of a reasonably large or busy application, the database is normally the first thing that takes the blame in the case of a performance dip. On one of my investigations, I found that the database had trouble sending data back to the client applications (network waits). The networking guys were just laughing at me and said that the database shouldn't send so much data back. (!?!) There were some variables involved: all of the servers (application, Web, database, mail) were hosted at a different site, and all traffic (including Web traffic) was being routed to (through) the offsite location (a local ISP). My theory was that some people were misusing the Web, as my investigation pointed out that HTTP traffic was extremely high. This was really the first case in which I could implement Linux with a direct business benefit. After numerous consultations with the client (a Windows-only type), I decided to take an older PC that was sitting around in the storeroom, slap some SCSI drives into it, and install Mandrake Linux on it. My reasoning here was that Mandrake is a pretty friendly O/S for a Windows-skilled "LANnie" to pick up. I then went for Squid proxy and installed a Web reporting tool (squint) onto the "proxy server," as it was called. This allowed us to report, per user, the amount of time spent on Web sites, the amount of data downloaded, site details, etc. We could basically pinpoint exactly who was surfing, for how long, and what sites they were viewing. We had to change some of the client browser settings to point to the proxy (you change firewall rules to allow only HTTP traffic from the proxy server, and point all client browsers to the proxy). We gathered statistics for two or three days, and our first report proved that my hunch was correct. Some guy in the admin department was using up a lot of our much-needed bandwidth by downloading, well, porn; some other people were using the Web for audio streaming, and others were downloading MP3s and games, etc. Now, in South Africa, bandwidth is expensive and slow. We only have one provider of leased or other telco lines (changing in 2006), and 3G isn't what it should be (yet). We blocked some sites; the client issued some final warnings; and, by the next day, the system was flying again. I started using our "proxy server" for more things, to see how much we could get out of a simple PC (about 128MB RAM, 40GB disk space, 1 GHz Pentium, 3 CPU). We implemented CVS, an open source version control tool. We gave users in the operations department a home directory to back up documents. We set up some print queues. The CIO was pretty happy with what we managed to squeeze out of the PC. The key thing to realize here is that Linux could significantly benefit the business by doing small things very well, at a low cost. The question was: Could it take over critical operations in the enterprise system? To me, the best place for Linux today is with the most "invisible" part of the business: the data. A database should do one thing very well: store data and provide easy and efficient access to it. It doesn't need fancy GUIs. It doesn't need wizards, graphs, reporting, and other things associated with client applications. The database is a storage engine (with a few twists). Linux on the desktop hasn't been successful so far for many reasons, which I'll address in my next article. But for database, application, Web, and mail servers? If configured correctly (on any operating system), they tend to run in lights-off mode most of the time, or they should. One of the issues in the environment was that you had to reboot the Windows servers pretty regular, especially the database server. The database engine uses a lot of resources and was pushing the box to the limit. I felt that a Linux O/S would be a better database server than Windows could be; you have more flexibility in tuning Linux, and I perceive the Linux O/S to be more stable than Windows, after years of working with both environments, especially for a RDBMS. While we were contemplating the shift, the Windows O/S did its best to help us make a decision. One night, I received a call at 3 a.m. from the network admin and was told that they couldn't boot any of their servers. A virus had managed to corrupt the ntoskernel.dll file (or something like that), and the O/S had to be recovered. (At least backups were complete....) Something went wrong on the recovery. By the time I arrived on site, I was told that the O/S had to be trashed and we would have to revert to backup. We lost about four days, due to wait time for hardware and O/S configuration. After that, the writing was on the wall - we were going Linux, wherever we could. As a matter of fact, we already had two Linux servers in the rack: our integration server and a server that was responsible for client communications (generated PDF documents and mailed it out). Even before this happened I presented a greater Linux strategy to the customer. Here is a high level:
1. Move the database servers to Linux.
2. Move the Web server (IIS) to Apache or Tomcat.
3. Move the application server to Linux.
4. Convert all remaining client/server apps to thin client, browser-based apps. Even better, you probably don't need the "enterprise" version of Linux at the desktop level, meaning that the O/S won't cost you a cent. Now, calculate this for an organization with 500 users. And remember to add up Office and any other Windows license, etc.
5. Desktop Linux, where it makes sense.
6. Mail servers. The customer was ready for phases one, two, and three. When we started strategizing the Linux shift, an interesting question came up, and it's one that comes up quite a lot now: While we're doing this move, how about investigating 64-bit architecture? Surely this will also make a massive difference? Our initial test showed that we would get a 10-15% performance increase by using our same hardware, but that's fairly insignificant. Sooner or later we would run into hardware limitations. The Linux shift would extend the use of the current hardware to about eight months, and this seemed to be a short-sighted strategy. The customer asked what was needed for a "significant" performance improvement at the database level, and how can we ensure that our hardware lasts us for the next five years? The key thing about a database is that it's only as fast as the amount of I/O requests it can process. Generally, disk writes and reads are very expensive and slow I/O operations. To offset this, you throw RAM at the problem and increase the database cache so that it doesn't have to do as many direct disk reads and writes. There's a lot more to this, but that's the basic rule. This is especially true if you are sure that the database engine has been properly configured to use the machine resources efficiently, and that all of the queries thrown at the server are optimized. Reader Feedback: Page 1 of 1
Subscribe to our RSS feeds now and receive the next article instantly!
Subscribe to the World's Most Powerful Newsletters
|
|
||||||||||||||||||||||||||||||||||