I need to do several things before the second semester, all of which are in the hopes of making the SystemOne server performance better.
Here are my constraints: I can’t scale vertically because well, there is no money for it, I can’t ask for additional server RAM because from last time the 2GB memory wasn’t maxed out. The current settings are still OK in that the Apache Web Server did not need to do paging, I still need to see though after we recompile it to increase max connections if we need larger memory. The other thing would be budget constraints, our development motto ever since its conception was to work with what we have and what we have is not much but we can make do.
The above scenario would also mean we can’t scale horizontally (i.e. have another server, ergo a server farm), because well the goal is to save money. It would be nice if we had a load balanced setup, we could cater to more users at the same time. I hear the other campus had four servers for enlistment services, I read from a reply to a blog somewhere, Zeon servers I believe. Of course that makes me a bit envious, they even employed/paid programmers to do their thing. We’ll they started paying me about a year and a half ago, P36K per year as a Project Development Assistant, you take off 20% for tax, and divide by 12 for the monthly rate (or was it 36 divide by twelve minus some random amount of tax?). And the work is to help develop the process (more of an analyst work) and the software not necessarily do the programming itself, but then, from the start we have had this sense of volunteerism in doing this so I will stop talking about the money.
I don’t think however that money would be a problem, it is the process of acquiring things that we NEED. I mean, we have allotted less than 200K (i don’t remember exact figure) for the server that we have now, but we waited for two failed bids and then the third and final step of finding the best deal just to get what we want. Yes, it’s the bidding that kills. Everything procured in government agencies (UP included) go through a bidding process. You announce that you need SOMETHING (through the media), and hope that suppliers take up the challenge of giving the product cheap and acceptable to the agency. Bidding fails if no one takes up the challenge of bidding or there are too few bidders.
So what happens is, you tell people what you need, then you wait two months OR MORE for the first bidding. It fails because apparently suppliers who cater to the government are either crazy enough OR desperate to sell. So it fails the first time and then you reissue the bidding a second time and then wait two months OR MORE again to gather prospective bidders, only to find out that again it fails and so you resort to the last step which is to find the best deal that you can have. The SystemOne server was procured in that way, we waited for at least a year to have it and we had to use standard desktop PCs for servers for the meantime. By the time it arrived, a new model was out with basically the same price. Arrgg. When it arrived though, I made myself content with the fact that we can move on for real.
This system makes us as a government and as a people shortsighted. I mean, the purpose of the bidding is to get the cheapest and not necessarily the best deal. We are so adamant on trusting our lives to the lowest bidder. Sometimes the lowest bidder runs away from the deal without completing it, just like what happened to the PhySci ICS wing/extension, perhaps awakened from the fact that there was no profit in the deal. It is no wonder then that one time I made one of my students do something on the whiteboard, he stumbled and fell through a termite eaten plywood floorboard. I would imagine that wouldn’t have happened if we invested enough for our safety and peace of mind. It will be of no wonder to me if the server we procured or any of the materials we procure through this system will suddenly fail when you need them the most.
But I digress.
Much of the performance tweaks and activities I will do would be on the software used and the module codes:
- Server software tweaks. Need to research on performance optimization of three servers namely Apache Web Server, Apache Tomcat and the database server. I wonder if I can request UP to purchase an enterprise application server like WebSphere so I can replace the first two servers with one? It defeats the goal of developing and deploying cheaply though, but I’d like to install something bought and not freely downloaded and used for a change
. - Apache Web Server recompilation. Increase max clients to 512, it says somewhere 256 max is hardcoded so what you do is change the source code, modify one of the constants to 512 and recompile. I would think this would need more memory though so I’ll see where I can “borrow” one if need be.
- Paul (our net admin) has setup OR is to setup a dedicated database server (for general purpose), so I think it be a good idea to have the SystemOne database server hosted at that host.
- Research more performance optimization on the Tomcat app server. Perhaps there’s a book I can buy on this one.
- Research advanced MySQL database server setup and performance tweaks. Perhaps there’s a book also. Or is it high time to migrate to, say, PostgreSQL? I think Oracle would have been great, but too costly, I mean “academic license” might not apply to SystemOne.
- For some reason, the subject conflict resolution service (web service)/algorithm failed for certain data, esp. classes scheduled on Tues-Thursday but not all. Both subjects being checked for conflict have laboratory classes, the laboratory class of subject A should be in conflict with the lecture class of B but is detected as no conflict. Now if I could just remember which former student I can bang this Mace of Face Disruption +5….
- I need to do extensive testing to all services, not only for the bug above, but all algorithms used in SystemOne web services.
- Compile the response times of each requested service from the logs and identify services that need performance boost. Tools in the shed include database query optimization and some other clever ways to make things go faster [like changing them totally >:) ]
- Update the fees database. The Assessment feature of the OCM failed because it had like data from years ago. Also, the assessment computation service need to be updated because 2007-xxxxx guys have a new rate.
- Apparently, during their time, the first SystemOne web programmer-students, they weren’t taught about the beauty of NOT using HTML IDEs and having clean and not too verbose HTML code. I was only interested on having their code working so I didn’t put much weight on supposedly good practices of scripting/programming. I didn’t even check if their Java code followed the usual conventions. I acted the “usual” client and based my evaluation on what I saw as “working”. I come to regret that oversight. SO now, I have to clean up after them. I believe they know what they should have done, almost all of them are in the industry now where they are paid to code cleanly and efficiently, but then again, why would I have pressured the “unpaid” volunteers? I only pressured them so they can graduate. Performance wasn’t the issue back then, proof of concept was all it was.
- Chop the “big” web pages into separate pages, redo some of the graphics so response time is lessened. In fact, I have this want of updating the look and feel of the SystemOne webpages. AJAX ringing my bell.
- Add a more “secure” security layer to the web services. Ok, this will slow things a bit but I think I have avoided this issue long enough already.
- Create new applications to manage and monitor data. I have always relied on the bare necessities (i.e. console programs, SQL queries etc.), I think I should make my life and the one who will take over [if ever] much easier. A warning when I login that Math courses with recitation are “overenlisting” would be a nice jolt.
- Design the Recommended-Courses-For-Next-Semeste-Application so we can preprocess recommended courses before hand with input from the student. This will make the enlistment process lesser headache next time.
SO aside from my long overdue thesis I will do those [makes me think twice].
How One Can Help:
Some people have already come forward, eager to have their hands on this monster and I am very thankful. Almost all of them want to help on the technical side though so I think when I want a new feature done, I can ask them to do it for me.
If any of our alumni can donate, say a new server [*wink wink starry eye], or books that can help or enterprise server software [*wink wink starry eye], that would be good.
Or someone who can donate a generator. They told me a generator will be on standby in case of power failure. WHERE WAS IT? Now I remember I have an axe to grind.
Or someone who can donate a better UPS, say a dedicated UPS for the SystemOne server that can last say an hour during power failure.
Or if you know someone who owns something and want to “advertise” in SystemOne and wants to “pay” the volunteers to do their stuff [*wink wink including me wink wink] or buy the things we think we need, that would be nice also.
If you are not any of the above, you can do the following:
- Report any errors/bugs immediately.
- Give useful suggestions, relay good ideas that you think will be beneficial to all students in their usage of SystemOne applications.
- Not turn to a much older person (say your female parent) to come and b*tch up on us when we’re trying to solve problems unless you’re 16 years and below and too young to understand the ways of the real world.
- Not forget your password.
- Make sure you’re records are up to date. I mean you shouldn’t trust your own record to be handled well by two or three people in a chain.
- Be part of the solvers in any way you can. I won’t stop you though if you want to be a brat like some people I know. UP students should consider the opportunities and the possibilities of and from the things we do.
June 25, 2007 at 2:35 pm |
Congrats! (for seeming quite so relaxed) =p
Keep it up! =)
June 27, 2007 at 2:25 am |
“Now if I could just remember which former student I can bang this Mace of Face Disruption +5….” — kami ba yan, sir?! Haha. Sorry po. Pwede pa rin naman po kme tumulong..