0

Taking the following issues in the count, what would be the descending order from greatest to least of bottlenecks in a computer system?

  • Network I/O
  • Disk I/O
  • RAM I/O
  • Graphics I/O
  • Processing I/O

I'm often explaining the concept of what can make a machine appear slow, and I'd like to get a good idea of what's mostly the greatest to lowest bottlenecks in a system. Considering an average computer which has a decent 7200RPM hard disk, an average 500 kilobytes per second up/down network connection, average speed RAM, a dual-core 2GHz processor, and a fairly cheap video card, what'd be the order of my list above? I'd assume it'd be the way I wrote it, but I'd like to be sure.

What are the greatest and least causes for bottlenecks in hardware and I/O?

5
  • 3
    Highly dependant on what it was going to be used for. I would take ram off the slow list :-), until some sort of storage media can get anywhere close :-) The internet is always "slow", 500k is even slower, but how nessisary it is to be fast depends on what you want to do with it. If you want to do great games, you need great graphics card, even if the cpu might be a bit weak. still , depends on the game. Cpus do a lot of amazing processing fast, but they should be 2x faster if they were moving up the same way as before.
    – Psycogeek
    Jan 8, 2012 at 16:42
  • 2
    If you want your absolute roughest bottleneck list. First off is the Disk I/O. This will affect everything from boot times, running applications and even surfing the net. If your target user is gaming then obviously it will be the graphics card.
    – kobaltz
    Jan 8, 2012 at 16:50
  • The question really does not make much sense. Since every operation or transfer will take a finite amount of time, the slowest or longest operation or transfer will probably be a "bottleneck". So are you just asking for an ordering of transfer speeds or data rates? But even the fastest (single) operation/transfer done repetitively for a long time will look like a "bottleneck"!
    – sawdust
    Jan 8, 2012 at 22:59
  • 1
    @Psycogeek: RAM should stay on the list, even though data rates for RAM are a lot faster than all peripherals. Consider that most BIOSs have a "fast boot" option that eliminates a RAMemory test: most people don't like waiting for the RAM test to finish. Do something long enough, and it becomes noticeable and a "bottleneck".
    – sawdust
    Jan 8, 2012 at 23:07
  • The question is really ill-specified. It always depends on what you propose to do. Jan 9, 2012 at 20:23

1 Answer 1

2

It depends

If what you are doing is downloading files the bottleneck in your case will be the network I/O. If they are working with word documents, network I/O is totally irrelevant.

Here is perhaps a better way of describing it:

  • If the problem is that applications are running slowly, then the bottleneck is usually CPU if there is RAM available, or because RAM is not not available, the disk (as the data was pages out to there). On the disk side there is an I/O bottleneck, if the processor is maxed out (or more likely, a core is maxed out and the application does not multi-thread) the CPU is the bottleneck, but not the CPU I/O.
  • If the problem is that games are running slowly, this can generally be fixed by getting a better graphics card. This is almost never about I/O though, this is about computation.
  • RAM speed only matters when the user is writing a lot (> 1 GB/s) to RAM. Unless the user is doing this often, or they care about millisecond differences, it almost never matters. RAM I/O is generally very fast (DDR2 can do 3200 to 8533 MB per second and DDR3 is faster) and so this is rarely a bottleneck
  • Network I/O only matters if there is a lot of data going back and forth.
  • Disk I/O matters at startup, and when copying or loading large files/applications, but generally, unless a lot of this is being done, it is not very noticeable.

Note: I/O refers to Input/Output. While this is a factor for some components (the disk for example) it is generally irrelevant for others. Many CPUs can take in 6 GB/s, as can GPUs. The time it takes them to finish a computation is generally far more a factor than how long it takes them to just read in the data and spit it out.

4
  • @TKKocheran, the dashes with the space were to make the bullets. It is generally worthwhile to check to make sure the formatting has not changed before submitting your edit.
    – soandos
    Jan 9, 2012 at 20:07
  • RAM speed (as opposed to cache speed) matters a lot when you're doing medium sized computation. I've gotten a order of magnitude on occasion just be changing a program to make better use of the cache (matrix summation is a classic example of this kind of thing). Jan 9, 2012 at 20:23
  • That is a function of latency I believe, not raw speed.
    – soandos
    Jan 9, 2012 at 21:22
  • A poorly written piece of code will stall the pipeline over and over waiting for data to arrive from RAM. Nothing is getting done while that happens, so the code takes longer to finish. It really does affect the speed of a computation. Jan 12, 2012 at 1:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .