Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.
Please consider supporting us by disabling your ad blocker.
Search the Community
Showing results for tags 'cpu spike'.
Found 1 result
As most of you know, I've been on a quest lately to reduce as much as possible the lag that many of us experience while playing Battlefield 3 multiplayer. This post is one example. The good thing about this relentless pursuit of lag reduction is that many of its underlying principles can be applied to virtually any game, so the gamer's experience benefits as a whole. As a quick review, here are some of the things you can do to reduce all kinds of lag/stutter and enjoy a better overall online gaming experience. Some I'm still working on, some I don't have the required hardware to do. This isn't a complete list, but the more of these things you can do, the better off you will be. - Ensure you have a solid network hardware installation - Latest firmware on your router - Disable uPNP on both your router and in Windows - All PC drivers (including chipset drivers from your mobo vendor) are current - Limit your games' FPS to one or two FPS below your monitor's refresh rate (anything else is a waste) - Prevents wide swings in FPS and the stuttering that can cause - Helps your CPU and GPU run cooler - Reduces/eliminates screen tearing (that always happens when FPS exceeds monitor refresh rate) - Have your keyboard and mouse on one USB controller, and have all other devices on a separate USB controller - Have your OS and games installed on separate physical HDDs and have those drives on separate HDD controllers - Disable useless Windows services (Black Viper has a great website, google him) - Stuff that causes crazy stuttering on my rig: - Intel Speed Step (crying in my beer over this one) - All of the "C" reports in UEFI related to CPU throttling (C1E, C7, etc.) There are many more, but that list should give you some things to consider. Now, on to teh main topic of this post. In my earlier post (linked above), I said that Punkbuster (PB) was not to blame. Well, that is only partially true. At the time, I was chasing another sort of lag and while PB had nothing to do with that particular flavor of lag, testing did indeed reveal that PB can cause a significant amount of lag under the right conditions (i.e. on my rig :( ). How did I learn about this, you ask? Well, I did a lot of research and experimenting and I was lucky enough to blunder onto a tool called Latency Monitor. There are others out there, but this one worked well for me. Using Latencymon, it was pretty obvious that pnkbstrb.exe was creating a significant amount of writing to disk (hard page faults). Some background is in order here. This topic focuses mainly on lag (latency) that originates inside your PC. Lag has two major root causes: 1) bad drivers or hardware (causes Deferred Procedure Call latency), and 2) processes that cause hard page faults (they can degrade system performance by causing excessive writing to disk). The one process on my rig that causes hard page faults (other than essential Windows process that I can do nothing about) is pnkbstrb.exe. Since PB is essential to most online gaming, I simply can't get rid of it and documentation is very sparse on how to deal with it. Well, the first thing one should do if PB is suspected of causing a problem is to make sure PB is updated via Evenbalance's website... which I did. Next, I played about 30 minutes on a non-PB server and did not see the ringing lag spike even once while in game. I also disabled both PB services in game (on a server that uses PB) after observing the spikes, and did not see the spikes reoccur before being kicked by PB. Given these things, I felt pretty confident that I had isolated the ringing lag spike... my own personal White Whale. What does a ringing lag spike look like? Well, here that bastard is... in all its naked glory. This waveform is very distinctive and is separated from normal (Internet) lag spikes by the trailing "ring" that always follows it. A normal lag spike lacks the distinctive sawtooth ringing. This particular lag spike is caused by pkbstrb.exe (on my system, anyway). Ok, now that I've isolated the ring, what can I do about it? Well, not much except pat myself on the back for a job well-done. Since uninstalling PB isn't an option, and documentation for tweaking PB is damn-near nonexistent, one's options are pretty limited. Fortunately, that doesn't mean that there is NOTHING that can be done. In fact, I feel that what little I've been able to do has made a significant impact on this lag spike, and now I'm going to share what I know with you. Digging into the PB manual and doing some research online has revealed some interesting information. PB does extensive scans of a PC's memory in order to root out hackers. By default, the PB client on your PC performs this scan every 20ms (.02 sec) and it captures screenshots which it writes to disk as well as transmits back to its server. On my system, this means that 1 of every four frames is scanned for hacks. On my screen, I see this particular lag spike every 3-5 seconds... sometimes it's just a single, sometimes it comes in trains of 2-3 spikes, then a 3-5 second gap, then the cycle repeats itself. These lag spikes don't make the game unplayable by any stretch, it's just that the brief stuttering they cause is damned annoying. That scan every 20ms is no small amount of overhead, my friends and fortunately there are changes you can make to PB's config file (pbsys.cfg) that can help reduce the impact of this lag somewhat. The tweaks for BF3: - Create a text file called pbsys.cfg in this folder: C:\Users\UserName\AppData\Local\PunkBuster\BF3\pb\ (don't forget to change the file's extension from .txt to .cfg just as you would for BF3's user.cfg file. - Feel free to use the text of my pb.cfg file. After I made the changes and rebooted, I played for over an hour on an ADK PB-enabled server without a problem. pb_MsgPrefix "PunkBuster Client" //[PB Message Prefix] pb_Sleep 500 //[# of Milliseconds (default=20)] pb_LogToFile 0 //[0=No, 1=Yes (default=0)] pb_SsLog 0 //[0=No, 1=Yes (default=1)] pb_SsSave 0 //[0=No, 1=Yes (default=0)] pb_SsOptions 640 480 50 50 1 //[- Set local PB screenshot options, default = native screen resolution] * Explanations of these variables and what they do can be found here. On my system, the net effect of adding the pbsys.cfg file and installing the variables shown was to decrease the frequency of the ringing lag spikes from every 3-5 seconds to about every 30-40 seconds. Not the ideal solution, but I will take it over getting hammered every 3-5 seconds. Well, that's about it for this chapter. If anyone has cracked this particular nut better than I have, please PM me or reply to this thread. I wanna learn at your feet, Mr. Hero. Until next time, war