Getting high "choke" in games

Ovreel

Limp Gawd
Joined
Apr 23, 2008
Messages
292
Hey guys, I know there's a general gaming forum here but I'm not really getting any answers there. So here's the story.

I recently had to reinstall TF2 and used to play between 50-100fps at all times, rarely dropping to 40. And since the reinstall I'm getting roughly half the FPS I used to, and according to the net_graph function, there are certain points where I'm losing FPS.

Here's a link to a net_graph example. http://developer.valvesoftware.com/wiki/Image:Net_graph_annotated2.jpg
What I'm noticing is that when the "In" spikes up (which is very often) the "Choke" spikes along with it, and my FPS sputters and usually drops below 30.

Does anyone know what to do about choke and maybe limiting the "In" values? (if that's the correct way to put it)
 
your playing on a server in a different continent :S In CS 1.6 we whine when our pings above 80, but above 200? Human reaction time is around 200ms (0.2 seconds), if your pinging 220 (.22 seconds), your not going to be the quickest guy on the block.

Choke has to do with your internet setup, but when the source engine is expecting info and its not getting it your fps drops. Choke means someone somewhere isn't getting the data they're expecting. The easiest thing to do is to start tinkering with your cl_updaterate and cl_cmdrate. If they're too high you can start to choke. 101 is what is generally used for both in high-performance servers (read:not pubs), but if that doesn't work start lowering it, generally cl_cmdrate should be higher than cl_updaterate. If you start lowering it to the point where you start getting "loss" it means your too slow and as such are actually losing information. Valve recomends cl_updaterate 20, and cl_cmdrate 30, but on high performance servers your going to start losing packets with rates that slow. Also you want your rate (not cl_rate just your rate) to be no lower then 5000, valve recomends 7500 but again, good servers will get you up to 25000 before you get choke.

ok so type in console the following:
Code:
rate 15000
cl_updaterate 101
cl_cmdrate 101

then set the 101s to 80 and see if your choke goes down, if it does continue to lower them until you see either the choke is gone or you start to see "loss" rise.

heres a link to steams support thread on the issue:
https://support.steampowered.com/kb...29;♥♥♥♥4166-TYSC-9690
edit oh wtf steams got me on secure sockets.... weird...
here we go:
https://support.steampowered.com/kb_search.php?searchwords=rates
first result: "setting client rates".

Also, don't do anything anybody in any of the servers tells you to do ever. They're all idiots.
Seriously, not a single one of em knows what interp is but they all turn it off and then whine about the problem the interp engine was designed to fix. Its just messed up. Not a single one of em knows what choke or loss or in or out or even ping actually is, but they all spew advice out their butts. Its just strange.
 
oh that isn't a SS of my personal net graph, just a net graph in general. My ping is usually >150 in the servers I play on.

But like I said, when the "In" spikes the Choke follows and the FPS plummets.

My CFG file right now is

//cl_commands
cl_forcepreload "1" // This will preload all the game content at once, instead of loading it on an as-need basis which can cause stuttering or slow downs.

//misc_commands
fps_max 101 // This will prevent your FPS from being capped, 300 is max.

//optimal netcode_settings
cl_cmdrate "101"
cl_interp "0.01"
cl_lagcomp_errorcheck "0"
cl_lagcompensation "1"
cl_smooth "1"
cl_updaterate "101"
rate "25000"

And my Dxdiag readout is:
------------------
System Information
------------------
Time of this report: 8/10/2008, 03:18:17
Machine name: ERIC-DESKTOP
Operating System: Windows Vista™ Ultimate (6.0, Build 6001) Service Pack 1 (6001.vistasp1_gdr.080425-1930)
Language: English (Regional Setting: English)
System Manufacturer: Gigabyte Technology Co., Ltd.
System Model: P35-DS3L
BIOS: Award Modular BIOS v6.00PG
Processor: Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz (2 CPUs), ~2.0GHz
Memory: 4094MB RAM
Page File: 1897MB used, 6516MB available
Windows Dir: C:\Windows
DirectX Version: DirectX 10
DX Setup Parameters: Not found
DxDiag Version: 6.00.6001.18000 32bit Unicode

------------
DxDiag Notes
------------
Display Tab 1: No problems found.
Sound Tab 1: No problems found.
Sound Tab 2: No problems found.
Input Tab: No problems found.

--------------------
DirectX Debug Levels
--------------------
Direct3D: 0/4 (retail)
DirectDraw: 0/4 (retail)
DirectInput: 0/5 (retail)
DirectMusic: 0/5 (retail)
DirectPlay: 0/9 (retail)
DirectSound: 0/5 (retail)
DirectShow: 0/6 (retail)

---------------
Display Devices
---------------
Card name: NVIDIA GeForce 8800 GT
Manufacturer: NVIDIA
Chip type: GeForce 8800 GT
DAC type: Integrated RAMDAC
Device Key: Enum\PCI\VEN_10DE&DEV_0611&SUBSYS_C8023842&REV_A2
Display Memory: 2289 MB
Dedicated Memory: 497 MB
Shared Memory: 1791 MB
Current Mode: 1680 x 1050 (32 bit) (60Hz)
Monitor: Dell E228WFP
Driver Name: nvd3dumx.dll,nvd3dum,nvwgf2umx.dll, nvwgf2um
Driver Version: 7.15.0011.7519 (English)
DDI Version: 10
Driver Attributes: Final Retail





I usually play in public 24-32 man servers, 32 man dustbowl server more often than not. It's in high traffic areas that I really see the FPS drop, but either way I'm still running about half as well as before the reinstall.


Either way, should I still start by adjusting the cl_updaterate and cl_cmdrate both to 80? Then maybe lower by 10 until I find a good spot with low choke? Should I be able to do this all through the console in game?

Thank you for the quick response already by the way!
 
Well I tried adjusting my rates, and I was still getting numbers like this.

(Sorry about the watermark, I don't know where to find a free TGA converter program. You can still see the necessary information)

FPS is 16 (rarely dropped below 40 before reinstall)
In: is 735, and often goes over 1000
Choke is 59, which was rare to get any choke over 5 before the reinstall.

cp_dustbowl0000.jpg


I don't think I mentioned before, I'm on wireless and always have been. I can't remember the adjustments that I made when I first had this problem, but I think this is where I got the answers to the problem.
 
I'm told the numbers on the far right should both be at least 66. Although I don't know how to get that. Anyone know?
 
Choke is whenever your system is not sending/recieving the same amount of updates as the servers tick. I cannot see from the screenshot how much choke your getting in that frame but as your FPS is low, that will be the cause and not your network/internet connection.

FPS affects choke, for instance if your playing on a 66tick server then you need to be able to generate 66+ FPS at all times, this is so that the game world is updating 66times a second and so you can send 66updates back to the server......if you do not send 66updates because of your network connection you will get choke.....if you cannot render 66fps then your machine will not be able to send 66updates to the server a second and you will get choke.

Choke does not affect FPS, for instance if your generating 200+ fps, but your internet connection/rates/server rates is stopping you getting all 66updates per second, then you will get choke.......however your FPS will not alter.

In: is 735, and often goes over 1000

In the screenshot you posted i cant see all the information but if it helps the in/out lines are as follows

Packet Size (realtime) / Data in Kbit per second / updates per second

But in the screenshot your biggest problem is FPS at 16, means you can only ever send approx 16 updates per second as your computer cannot generate any more frames than this (obviously it changes all through the game).

Also lets say that you even get 40fps, then your still going to get choke in the game as your missing 26 updates every second to sync with the game world. You can change the amount of updates you send to the server via command line to say 40, in this case it will show 0choke........however for all intents and purposes your still missing 26updates per second, so your still choking.....it just wont show it on your netgraph.
 
I'm told the numbers on the far right should both be at least 66. Although I don't know how to get that. Anyone know?

You need to receive 66updates a second from the game server
You need to be able to generate 66fps at all times
You need to be able to send out 66updates a second to the game server

If one of the following is not met then you will receive choke. Typically its FPS that let people down here, you can decrease resolution/texture quality etc etc etc to bump the FPS up.
 
The system your playing on is just not strong enough im afraid or something is configured very badly. If you really want to play on that server with 0 choke then you must up your FPS by lowering your resolution or reducing texture detail etc, so that your FPS is 66+

You can reduce your rates so that you only recieve 20 and send 20 and you should see 0 choke........however for all intent and purposes your game will not change at all and you will still be missing those updates to the gameworld.
 
def. need to take this issue to another section. thats horrible fps for an 8800gt
 
The system your playing on is just not strong enough im afraid or something is configured very badly. If you really want to play on that server with 0 choke then you must up your FPS by lowering your resolution or reducing texture detail etc, so that your FPS is 66+

You can reduce your rates so that you only recieve 20 and send 20 and you should see 0 choke........however for all intent and purposes your game will not change at all and you will still be missing those updates to the gameworld.


The system is definitely strong enough. Like I said, I had the same problem when I first installed the game on this comp. I just can't remember what I had to do to fix it. I play on wireless, I've always played on wireless. I've always had high settings on this computer... an 8800GT should be PLENTY for tf2 on (mostly) high settings.

Cheetoz, where do you suggest I take the issue? I'm not finding the right fix anywhere it seems. I can play in a game with only 6-8 people without any problems at all, but when trying to play in a 24+ person server, my choke skyrockets and my FPS goes to hell.

What really frustrates me is that CSS will play just fine, along with every other game. TF2 is the only one that is giving me problems with choke.
 
Cheetoz, where do you suggest I take the issue? I'm not finding the right fix anywhere it seems. I can play in a game with only 6-8 people without any problems at all, but when trying to play in a 24+ person server, my choke skyrockets and my FPS goes to hell.

Your right the 8800 should be good enough, but the choke your getting is coming from the lack of FPS, its nothing to do with your network settings in game or anything else. You need to look at dropping AA/AF/Resolution/Texture quality etc etc etc.
 
Just tried it, didn't fix anything. FPS still dropped to 15-22 in high traffic spots. And even in low traffic I was still getting ~30 choke. I'm pretty sure it has nothing to do with the visual settings
 
My own experiences with choke. The following may not specifically apply to you.

Increasing rate generally decreases the potential for choke. On my 2.5mbit down/768kbit up connection, I generally tend to use a "high" rate of 30000. This is a typical number that servers may restrict the rate to anyway.

cmdrate has very little impact on choke in my experience. Many 100 tick servers restrict this value to 100, which works out fairly well for me.

updaterate has the most potential to influence choke in my experience. Setting this value to 100 -- which is what most server admins will request that you do -- ends up producing an obscene amount of choke for me (beyond 30). I keep updaterate between 50 to 60 depending on the server and server load.
 
if it is based on the number of players in the server, then it becomes a CPU issue.

I get choke due to my slow CPU- changing the graphics from low DX7 to full detail dx9 doesn't help, still bad on a high player server (until everyone dies, then I'm good, lol)
 
My own experiences with choke. The following may not specifically apply to you.

Increasing rate generally decreases the potential for choke. On my 2.5mbit down/768kbit up connection, I generally tend to use a "high" rate of 30000. This is a typical number that servers may restrict the rate to anyway.

cmdrate has very little impact on choke in my experience. Many 100 tick servers restrict this value to 100, which works out fairly well for me.

updaterate has the most potential to influence choke in my experience. Setting this value to 100 -- which is what most server admins will request that you do -- ends up producing an obscene amount of choke for me (beyond 30). I keep updaterate between 50 to 60 depending on the server and server load.

Well I remember in the days of 1.6, the rate was capped out at either 20,000 or 25,000. I'm not sure if that is the case with Source, but setting it at 30,000 may not be doing anything at all.
 
I just did a speed test, and I have 5.2 download speed, and ~550 kb upload. Not sure if this helps at all but I figured I'd share!
 
Try going into your advanced graphics options and turning some stuff down.

edit: and if that doesn't work, search around for an fps config
 
Been through this already, it's not the graphics settings. It's something in the networking that I can't figure out.
 
firstly, whats the PSU driving the 8800GT?

2nd lets see how your connection to your ISP is doing:

go to start, run, type in CMD and hit run, then type in:
tracert www.google.com
you can hit ctrl + c (cancel) after the 3rd hop as all were interested in is the 2nd one.

there should be a list of a maximum of 30 items (if you just let it go without stopping it), assuming your on a home network (which you are if your wireless) the first "hop" should be 192.168.1.blagh or something along those lines, the IP listed for the 2nd hop can be anything. Thats the IP of the router your ISP has put you on. I want to test the connection between you two.

in the CMD window, type in:
ping [the ip given on the 2nd hop] -t
the -t modifier will mean that it wont stop pinging until you tell it to, so after 50 or so pings hit ctrl and C.

In this big long list of pings, are there any abnormally long times or TTLs? are there any "destination host uncreachable"s or "ping request timed out"s?

if so it means packets are getting lost between you and your ISP. If you have found a scroll back up and find the IP for the first hop which is your router. type in:
ping 192.168.[XXX].[XXX] -t. Again let it go for 50 or so runs. Are there any anomalies?

If not it means you've gotta give your ISP a call and tell em to bring a line tester out to find out if some jackass has spliced something he shouldn't have.

If you've got a virus on your system thats eating all your bandwidth killing your TF2, it would probably kill your CPU first, but, you can check your network activity by typing, in CMD:
netstat -anb
A is a modifier for all, N asks for the IP of the other guy connected and B gets the name of the app thats running on that port. Its up to you to look em all up. Shields UP from GRC.com is a good place to start.
 
PSU is the Corsair TX750.

I did the ping (IP) -t
And ping (IP) -l 1024 and -n 10 all packets were sent fine, average of 54ms and none lost.

Pinging my own IP only 1 packet spiked above 100, all others were 1-3 ms (out of 25 packets), none lost.

After doing the netstat -anb, there's a lot of information here, but I'm seeing a lot of "Windows Sockets Initialization Failed: 5"

What's the next step in this process MrWizard?
 
Been through this already, it's not the graphics settings. It's something in the networking that I can't figure out.

I know you dont believe its the visual/graphic settings, but it really is. Choke is only the amount of updates in/out that you are missing from the game server, it has absolutely no bearing on FPS at all.

If you dont believe me then join an unpopulated server and set your rates down to the very very minimum, you will be on the server and probably sending 10 updates and recieving 20 updates, getting loads of choke, but your FPS will remain as high as your system will allow lets say 80-100fps. Showing that massive choke, does not affect FPS.

However like i mentioned if your FPS is lower than the servers tick you will be missing updates to the server and will choke. Its the FPS you need to concentrate on.

My guess is its the way source renders models in game, when i used to play CSS i could get 140fps at some points, but on a 32man server where it would show a lot at the start it could drop to 40fps, it had nothing to do with the network as you could clearly see in the netgraph and playing on a LAN meant no outside interference.

As a test why not just play against bots and bring the netgraph up, i bet it also shows the huge drop in fps at certain points
 
Well I adjusted the graphics settings, FPS stays above 30 now, but choke is still high and a new problem popped up.

Every few seconds (in high traffic areas) I lock up completely for a second or two. And the most recent time the game completely froze up and I had to end the task.
 
Well I adjusted the graphics settings, FPS stays above 30 now, but choke is still high and a new problem popped up.

Most good servers will have a tick rate of 66. To get 0 choke, you must produce 66+ FPS at all times, if your FPS drops below 66 (even for a second) you will choke just from the fact your system isnt capable of keeping up with the game world, regardless of your network settings.

Im not sure what graphic settings you changed, but if you want to continue trying to solve the problem, your going to have to drop them more :(
 
Back
Top