Bottleneck
Posted: Fri May 08, 2020 2:50 pm
Bottleneck: How to detect and fix it?
A bottleneck, speaking in hardware terms, refers to the slowest device in the system. This piece is what causes the rest of the components not to perform at the level they can offer. The hard drive is a typical example. In fact, it doesn't take long until you can deliver the bits of information the CPU needs to start doing something. You have probably noticed that some of your applications take a long time to start, and most likely it is caused by a slow hard drive, but it is not always the case.
The same situation applies to all components of the team . Basically, the computer will be as fast as its slowest component, be it the central processing unit (CPU), the graphic processing unit (GPU), the RAM, or the front side BUS (FSB), etc. All of them they have to work together transmitting and processing the information at a speed that will depend to a greater or lesser extent on the other components.
Contents:
What is the bottleneck?
Explained in a very simple way, it resembles what happens in a bottle filled with a fluid or anything else. Although the body of the bottle is wide and allows the content to move very quickly, as soon as all the content reaches the neck or mouth of the bottle, everything slows down.
It is of no use that the body of the bottle is so wide, since all the content cannot come out at the same time. As the opening narrows, it will gradually come out. On the other hand, if you cut the bottle to remove the neck, you would see how when you overturn the bottle all the content comes out quickly and is empty much earlier.
This also happens to bits of information that travel between various devices or parts of your PC. That results in high load time, very low frames per second (FPS), and unstable performance.
Bottleneck: processor vs graphics
Let's focus on the problem that occurs between the CPU (processor) and the GPU (graphics card) . Many lucky people will receive a state-of-the-art game for Christmas. Some more fortunate still will also receive a new graphics card. As wonderful as it sounds, it could lead to unforeseen problems.
If your new graphics card is too fast for your processor, then it will delay your entire gaming experience. If your new graphics card is delivering information to a faster CPU, then your new GPU would be a waste of money. Again, you won't see any performance improvement.
Bottleneck in other areas
This is also due to latency and limited bandwidth for RAM and CPU. If a CPU has a high performance, but the memory is slow, then a bottleneck is generated as it cannot keep up with the CPU's demand for instructions and data that it brings from said main memory. That is why cache memory levels were invented, to act as the closest and fastest warehouses to the processing units and to speed up this work.
The same was done at the time with RAM, since the second-level memories were much slower to bring from there the instructions and data in the form of a sequence that were the software programs. So it was decided to put a buffer memory, or RAM, that could keep a good number of data and instructions that are going to be used with higher priority so as not to have to go to the hard drive for them.
Currently, with the new solid state hard drives, or SSDs, this bottleneck problem has also been greatly improved. Despite the fact that RAM “has lagged a little” in terms of performance compared to the microprocessor, but thanks to practices such as cache memory, instruction buffers, out-of-order execution, etc., it has managed to alleviate some negative performance effects.
Throughout the history of computing, you have always tried to add more buffers when high performance gaps appeared between different parts. The hard drives themselves also have small memory chips called 8, 16, 32, 64MB buffers, ... which serve to store some data to speed up access (read / write).
Something similar occurs with certain interfaces or communication buses. That is, the problem is not always something from one device or another, also from those latencies or bandwidths of the buses or interconnections that connect one component and another. For example, if a hard drive is relatively fast to communicate with RAM, but has a slow interface, it would be of little use. Or if a RAM is fast, but the bus that connects it to the CPU is limited ... it doesn't help much either.
What I'm trying to say is that the problem can be very dispersed. To reduce the bottleneck, all the elements that make up a PC should be as balanced as possible, and with similar performances. But that is complicated, and on a practical level it does not happen. On many occasions due to price problems. For example, we know that logs or cache are very fast memories. Why aren't these used instead of RAM? Very simple, the problem is the cost. You can get relatively large and cheap SDRAM memory, but you couldn't do the same with SRAM cells.
The same is true for hard drives. If a RAM is faster than an HDD or some SSDs, then? Why not create a RAM of hundreds of GB or several TB. Again the problem is the price. The price of a RAM of that size you could not afford.
How to determine who is to blame?
This question has been asked on forums and websites for years. What do I need to know if it is my processor or my graphics card that is slowing down my computer? Sometimes it seems easy but in some cases it gets complicated.
You could do an internet search to see how it combines your processor with your graphics card, but if your hardware is not very current, then finding such an item will be difficult.
To see the use of processor and graphics card it is recommended to install MSI Afterburner or Riva Tuner Statistics Server. Use the latter to limit your frames for single or multiplayer games. Use Afterburner to display them as an overlay on your favorite games. With these tools, you should be able to see if there is a bottleneck in the CPU. Additionally, Afterburner can create a log file so you can see how your entire system works at any time.
In any case, if you're looking at low FPS, turn down some of the in-game graphics settings. Take note of the changes so you can return them to their original state if necessary. Don't make all the changes at once: choose a parameter, download it and try again. It is much easier to track that way.
Simple option and without installing anything
However, this is not entirely so on some systems. So this method of deciding may not be appropriate in all cases. The best option to find out where the problem is and see how you can tackle it is to use a website where you can easily discover it simply by specifying which is your CPU and which is your GPU. The web app will calculate where the problem is.
To do this, simply follow the following steps:
You can take a look at the PC configurations of this blog to know how to choose the parts and avoid those bottleneck problems.
Vertical Sync
The vertical sync can be an adjustment included in the configuration of the game, and almost certainly will be included in the configuration of the graphics. We won't go into technical details, but basically vertical sync prevents the graphics card from sending more frames to the monitor faster than it can display. Not because it may cause a problem for the monitor, but because it can cause a lot of irritating "visual cuts" if vertical sync is turned off.
The reason we mention this is because if you have a monitor running at 60Hz, then the maximum speed you can expect in gaming is 60 FPS. The same upper limit will match the refresh rate of the monitor, be it 60, 75, 120 or even higher. The thing is, you shouldn't expect to get 80FPS on a 60Hz monitor. That won't happen with vertical sync turned on.
Conclusions
Sometimes the simplest answer may be the most difficult to find on the Internet. Although this may sound a bit strange to you, it seems to happen especially in the forums where you will receive all kinds of convoluted answers that may or may not address the original question.
Experiment with vertical sync, as having it turned on is common and disabling it in some games can help in some cases.
If you have a very slow hard drive and have extra RAM, you can try storing the game files on a RAM-Drive. This will not fix a graphics or processor bottleneck, but it will surely improve load times if there is a lot of disk usage.
Some general considerations are:
VIDEO TUTORIAL
A bottleneck, speaking in hardware terms, refers to the slowest device in the system. This piece is what causes the rest of the components not to perform at the level they can offer. The hard drive is a typical example. In fact, it doesn't take long until you can deliver the bits of information the CPU needs to start doing something. You have probably noticed that some of your applications take a long time to start, and most likely it is caused by a slow hard drive, but it is not always the case.
The same situation applies to all components of the team . Basically, the computer will be as fast as its slowest component, be it the central processing unit (CPU), the graphic processing unit (GPU), the RAM, or the front side BUS (FSB), etc. All of them they have to work together transmitting and processing the information at a speed that will depend to a greater or lesser extent on the other components.
Contents:
1. What is the bottleneck?
2. Bottleneck: processor vs graphics
2.1 Bottleneck in other areas
2.2 How to determine who is guilty?
2.2.1 Simple option and without installing anything
2.3 Vertical synchronization
3. Conclusions
4. VIDEO TUTORIAL
2. Bottleneck: processor vs graphics
2.1 Bottleneck in other areas
2.2 How to determine who is guilty?
2.2.1 Simple option and without installing anything
2.3 Vertical synchronization
3. Conclusions
4. VIDEO TUTORIAL
What is the bottleneck?
Explained in a very simple way, it resembles what happens in a bottle filled with a fluid or anything else. Although the body of the bottle is wide and allows the content to move very quickly, as soon as all the content reaches the neck or mouth of the bottle, everything slows down.
It is of no use that the body of the bottle is so wide, since all the content cannot come out at the same time. As the opening narrows, it will gradually come out. On the other hand, if you cut the bottle to remove the neck, you would see how when you overturn the bottle all the content comes out quickly and is empty much earlier.
This also happens to bits of information that travel between various devices or parts of your PC. That results in high load time, very low frames per second (FPS), and unstable performance.
Bottleneck: processor vs graphics
Let's focus on the problem that occurs between the CPU (processor) and the GPU (graphics card) . Many lucky people will receive a state-of-the-art game for Christmas. Some more fortunate still will also receive a new graphics card. As wonderful as it sounds, it could lead to unforeseen problems.
If your new graphics card is too fast for your processor, then it will delay your entire gaming experience. If your new graphics card is delivering information to a faster CPU, then your new GPU would be a waste of money. Again, you won't see any performance improvement.
Bottleneck in other areas
This is also due to latency and limited bandwidth for RAM and CPU. If a CPU has a high performance, but the memory is slow, then a bottleneck is generated as it cannot keep up with the CPU's demand for instructions and data that it brings from said main memory. That is why cache memory levels were invented, to act as the closest and fastest warehouses to the processing units and to speed up this work.
The same was done at the time with RAM, since the second-level memories were much slower to bring from there the instructions and data in the form of a sequence that were the software programs. So it was decided to put a buffer memory, or RAM, that could keep a good number of data and instructions that are going to be used with higher priority so as not to have to go to the hard drive for them.
Currently, with the new solid state hard drives, or SSDs, this bottleneck problem has also been greatly improved. Despite the fact that RAM “has lagged a little” in terms of performance compared to the microprocessor, but thanks to practices such as cache memory, instruction buffers, out-of-order execution, etc., it has managed to alleviate some negative performance effects.
Throughout the history of computing, you have always tried to add more buffers when high performance gaps appeared between different parts. The hard drives themselves also have small memory chips called 8, 16, 32, 64MB buffers, ... which serve to store some data to speed up access (read / write).
Something similar occurs with certain interfaces or communication buses. That is, the problem is not always something from one device or another, also from those latencies or bandwidths of the buses or interconnections that connect one component and another. For example, if a hard drive is relatively fast to communicate with RAM, but has a slow interface, it would be of little use. Or if a RAM is fast, but the bus that connects it to the CPU is limited ... it doesn't help much either.
What I'm trying to say is that the problem can be very dispersed. To reduce the bottleneck, all the elements that make up a PC should be as balanced as possible, and with similar performances. But that is complicated, and on a practical level it does not happen. On many occasions due to price problems. For example, we know that logs or cache are very fast memories. Why aren't these used instead of RAM? Very simple, the problem is the cost. You can get relatively large and cheap SDRAM memory, but you couldn't do the same with SRAM cells.
The same is true for hard drives. If a RAM is faster than an HDD or some SSDs, then? Why not create a RAM of hundreds of GB or several TB. Again the problem is the price. The price of a RAM of that size you could not afford.
How to determine who is to blame?
This question has been asked on forums and websites for years. What do I need to know if it is my processor or my graphics card that is slowing down my computer? Sometimes it seems easy but in some cases it gets complicated.
You could do an internet search to see how it combines your processor with your graphics card, but if your hardware is not very current, then finding such an item will be difficult.
To see the use of processor and graphics card it is recommended to install MSI Afterburner or Riva Tuner Statistics Server. Use the latter to limit your frames for single or multiplayer games. Use Afterburner to display them as an overlay on your favorite games. With these tools, you should be able to see if there is a bottleneck in the CPU. Additionally, Afterburner can create a log file so you can see how your entire system works at any time.
In any case, if you're looking at low FPS, turn down some of the in-game graphics settings. Take note of the changes so you can return them to their original state if necessary. Don't make all the changes at once: choose a parameter, download it and try again. It is much easier to track that way.
- If lowering the graphics settings has no effect on the FPS, then the bottleneck is in the processor.
- If reducing the graphics setting increases the number of FPS, the graphics card is operating at its capacity limit.
- If the video game has unexpected * and cuts and the previous two points seem to be fine, then it's your RAM problem. Think about expanding it. If you have an acceptable amount , then the problem may be the speed of it. For example, if you have a DDR2 or DDR3 etc., it would be nice if you upgrade to a DDR4 ...
- In case the problems are not in the FPS nor in the * during the game, but rather in the time it takes for the video game to load, then the problem is your hard drive. If it's an HDD type, you should think about getting an SSD .
- eye! Because if it is a multiplayer or online video game, and the performance is not going very well, the problem may be in the ping of your connection.
- And as a novelty, in the event that you are using a streaming video game platform, such as Google Stadia, NVIDIA GeForce Now, etc., and the video game does not go as expected, it is almost certainly due to your Internet connection. If you don't have decent broadband, then don't blame the hardware. In these cases, the video game runs on a remote server and you simply get the image so you can play, so your team is a simple client. In general, if you have fiber optics there would be no problem, but in other broadband networks, they should be at least 10Mbits / s. Although 20 is recommended to play 720p, and for 1080p it would be about 35, for 4K about 60Mb / s, always with a ping of less than 60ms.
Simple option and without installing anything
However, this is not entirely so on some systems. So this method of deciding may not be appropriate in all cases. The best option to find out where the problem is and see how you can tackle it is to use a website where you can easily discover it simply by specifying which is your CPU and which is your GPU. The web app will calculate where the problem is.
To do this, simply follow the following steps:
- Enter this website.
- From the CPU selection menu, choose the CPU you have mounted on your computer. If you don't know which one you have, you can use programs like Hardinfo, AIDA64, CPU-Z, etc.
- In the GPU menu do the same for the GPU model.
- Also select the amount of graphics memory you have. And the number of GPUs you have (usually 1).
- Then hit the Calculate button.
- Now it shows you your hardware report to help you see where the problem is.
- You'll see a color scale from green (no bottleneck or slight bottleneck) to red (high bottleneck). Anything above 10% is a high bottleneck.
- Below you will also see some recommendations of parts that you can buy to improve your situation. It will make suggestions for CPUs, graphics cards, or RAM so that this situation improves.
You can take a look at the PC configurations of this blog to know how to choose the parts and avoid those bottleneck problems.
Vertical Sync
The vertical sync can be an adjustment included in the configuration of the game, and almost certainly will be included in the configuration of the graphics. We won't go into technical details, but basically vertical sync prevents the graphics card from sending more frames to the monitor faster than it can display. Not because it may cause a problem for the monitor, but because it can cause a lot of irritating "visual cuts" if vertical sync is turned off.
The reason we mention this is because if you have a monitor running at 60Hz, then the maximum speed you can expect in gaming is 60 FPS. The same upper limit will match the refresh rate of the monitor, be it 60, 75, 120 or even higher. The thing is, you shouldn't expect to get 80FPS on a 60Hz monitor. That won't happen with vertical sync turned on.
Conclusions
Sometimes the simplest answer may be the most difficult to find on the Internet. Although this may sound a bit strange to you, it seems to happen especially in the forums where you will receive all kinds of convoluted answers that may or may not address the original question.
Experiment with vertical sync, as having it turned on is common and disabling it in some games can help in some cases.
If you have a very slow hard drive and have extra RAM, you can try storing the game files on a RAM-Drive. This will not fix a graphics or processor bottleneck, but it will surely improve load times if there is a lot of disk usage.
Some general considerations are:
- If your graphics card is being used at 99% of its capacity, it means that the bottleneck is created in this component.
- During games: If the CPU usage is 99-100% and the graphics card is low (50-80%), then your processor is making a bottleneck.
- If neither the use of processor nor graphics card is very high, it means that the game you are running is not very demanding that your CPU and GPU are powerful enough. See if the same thing happens with other more demanding video games that you play. Or maybe the graphics settings are too low.
- A high screen frequency (120Hz, 144Hz) in demanding games will generally require a modern i7 processor or an overclocked i5 (example: Battlefield 1).
- High resolution (1440p, 4K) will more easily cause the bottleneck on the graphics card.
- Normally 8GB of RAM is a very fair capacity for high-end AAA games. For example, if you play Battlefield with Steam and Discord also open, the RAM usage reaches 8GB. In this case, the bottleneck would be generated in this component. If you have a budget, it is recommended that you increase to 16GB.
- If you have a 144Hz monitor and are experiencing a processor bottleneck, limiting the frame rate to a lower value will help make it smoother with less sharp frame drops. This can be done with MSI Afterburner or Riva Tuner Statistics.
Watch on youtube.com