Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Netfinity 7000 M10 Performance Issue

Status
Not open for further replies.

spacebass5000

Programmer
Nov 26, 2000
144
US
Or so I think...

We have a Netfinity 7000 M10 with the following specs:

4 Pentium II (Deschutes) 400 MHz processors each w/1024KB's of cache
2 Gigs of RAM
3 10K RPM SCSI HDD's
1 15k RPM SCSI HDD's

RedHat 9.0 kernel version 2.4.20-19.9smp

We are trying to utilize a certain PERL program that is acting as a portal (sort of) for our companies day-to-day computing needs. That is all this box is being used for. User's SSH to this box and invoke an instance of said program.

The problem is this...

This program runs a little slow... When an exact copy of this program is thrown on a plain old workstation (a box with a 450MHz cpu and maybe 128 MB's of RAM), it runs much faster than on the Netfinity. Now aside from turning off all unwanted daemons and processes, I haven't done much in the way of tuning this box.

The perl code in question lives on the 15K RPM SCSI HDD by the way...

I have done some digging around to try and figure out what the issue may be but have come up with a good deal of ambiguous info.

I am assuming, as is my boss, that there is an IO problem in relation to the disks...

Any ideas what the problem may be? Any pointers on tuning servers with respect to specific applications. I am waiting on an O'Reilly book at the moment but need to do some digging in the meantime. Care to help?

Thanks...
 
Your I/O will only go as fast as the fastest bus on the machine. The 15K drives wont make much of a difference since this is an older machine and the I/O cannot go the same speed.

What is your RAID level?

When you say that your app runs slow, in what terms is slow? Is it when a user is trying to access?
 
All four drives are at Raid level 0 and are their own array.

In an attempt at defining what I mean by slow, I should state that the program consists of a a good number of PERL scripts that get exec'd as needed. The program starts when the user ssh's to said server, starts up an Xterm on their local display and then exec's an initial wrapper script. This initial script contains a menu whose options correspond to PERL scripts that when exec'd, end up replacing the initial parent script. And as expected, there are submenus of options that exhibit the same behavior.

The "slowness" in question here is when the user switches between menus. I am assumming their is some sort of IO bottleneck upon reading/compilation of each script.

I do not believe that the network is an issue here... When I performed the intial test with my workstation versus the server, the same network was used and dramatic results were observed.

I am leaning towards some issue in the disk IO. I am just too green (with respect to Systems Admin issues relating to server tuning) to have a firm grasp on how to resolve this issue.

I hope this helps explain what I am dealing with. I apologize for not initially explaining this to the best of my knowledge.

Thanks for the help!
 
Based on your comparison, it sounds like the executable is not memory intensive. However, it also sounds like it has not been written as a multiprocessor-aware application. If it isn't, then logically, it would run faster on a single 450MHz processor than a multi-400MHz processor system. One way to check would be to see where the threads for each user (subprocesses) are going. If they all reside with one processor, then the problem is the program, not the server. To confirm it's not an I/O problem, you can test something outside of the program (like large file transfers) to the disks. If you don't suspect the network, the transfers can be local or remote.
 
Let me preface this reply by stating that I was just given some info that would lead me to believe that this is NOT in fact an IO problem. *sigh*

The "workstation" in question has a 1.2 GHz CPU. I was lead to believe it was a 450MHz box.

But anyhoo... I still need some numbers to show the folks who sent me down this road so here goes.

This is what I did...

For the two machines I executed the following commands:

rm -f test.*; time dd if=/dev/zero of=test.zero bs=1M count=100 (command number 1)

rm -f test.*; time dd if=/dev/zero of=test.zero bs=512 count=100000 (command number 2)

time dd if=test.zero of=test.new bs=1M count=100 (command number 3)

time dd if=test.zero of=test.new bs=512 count=100000 (command number 4)

3 times each, and took the average for each command...

Here is what I got (in seconds):

"The Meager Workstation"

1. 1.556
2. 5.273
3. 1.383
4. 2.038

"The Server"

1. 2.092
2. 3.783
3. 4.836
4. 5.274

Can I assume that commands 1 & 3 can be viewed as "writes" while commands 2 & 4 can be viewed as "read and writes"?

If so, this would yield:

"The Meager Workstation"

5.273 - 1.556 = 3.717
2.038 - 1.383 = 0.655

"The Server"

3.783 - 2.092 = 1.691
5.274 - 4.836 = 0.438

Which would paint a picture of the server reading data faster than the workstation.

Does this logic work?

Thanks for your help by the way!

 
######################### EDIT ###########################
I needed to edit the last reply but for some reason I am not allowed to. :mad:

The edited post is below...
######################### EDIT ###########################

Let me preface this reply by stating that I was just given some info that would lead me to believe that this is NOT in fact an IO problem. *sigh*

The "workstation" in question has a 1.2 GHz CPU. I was lead to believe it was a 450MHz box.

But anyhoo... I still need some numbers to show the folks who sent me down this road so here goes.

This is what I did...

For the two machines I executed the following commands:

rm -f test.*; time dd if=/dev/zero of=test.zero bs=1M count=100 (command number 1)

time dd if=test.zero of=test.new bs=1M count=100 (command number 2)

rm -f test.*; time dd if=/dev/zero of=test.zero bs=512 count=100000 (command number 3)

time dd if=test.zero of=test.new bs=512 count=100000 (command number 4)

3 times each, and took the average for each command...

Here is what I got (in seconds):

"The Meager Workstation"

1. 1.556
2. 5.273
3. 1.383
4. 2.038

"The Server"

1. 2.092
2. 3.783
3. 4.836
4. 5.274

Can I assume that commands 1 & 3 can be viewed as "writes" while commands 2 & 4 can be viewed as "read and writes"?

If so, this would yield:

"The Meager Workstation"

5.273 - 1.556 = 3.717
2.038 - 1.383 = 0.655

"The Server"

3.783 - 2.092 = 1.691
5.274 - 4.836 = 0.438

Which would paint a picture of the server reading data faster than the workstation.

Does this logic work?

Thanks for your help by the way!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top