its the servers fault. choke means that you want to have more packets than the server is able to send you. i always have choke on bad public servers. on pcw servers its always 0 :)
try lower cl_cmdrate until you dont get any choke. if you get loss, lower updaterate. and they spike because you either play on a bad server or have a bad connection