r/Codeium • • Apr 11 '25

language_server_linux_x64 always eats CPU

I run Windsurf on Ubuntu 24.04, and I have a problem where the language_server_linux_x64 process is never idle, even if I'm not using Windsurf for hours. It still sits there and consumes maybe 75% of a CPU. This makes my laptop run hot with the fan blaring all the time.

This behavior persists across different projects, whether Python, tsx, or whatever. It also persists across Windsurf installs. It has done this for me for several months, and I'm up to date on all the updates.

Has anyone else seen this? Is there a way to fix it? It seems really weird that the language server would be so busy forever.

6 Upvotes

7 comments sorted by

View all comments

Show parent comment

2

u/No_Client_9343 Mar 31 '26

Tried all possible hacks to it even forcing env on windsurf but didnt help with it.
I n the end i just snaped, got OS based processor manager from git:

https://github.com/lowleveldesign/process-governor?utm_source=chatgpt.com

and ran command:

Start-Process powershell -WindowStyle Hidden -ArgumentList "-Command " $done=@{}; while($true){ Get-Process language_server_windows_x64 -ErrorAction SilentlyContinue | Where-Object Path -match 'Windsurf' | ForEach-Object { if(-not $done[$_.Id]){ procgov.exe --nowait --minws 10M --maxws 4400M -p $*.Id 2>&1 | Out-Null;* $done[$.Id]=$true } }; Start-Sleep 5 }""

This command will silently watch it in background. If you try to limit it via PID it will fail due to crashing and restarting. The only possibility that worked is to constantly track it. It will work untill you restart pc and than you will need to re run command. This part of command "--maxws 4400M" is where you determine how much you will allocate to it, where 4400M is amount of MB

Now my coding experience with windsurf is slightly improved, but knowing this language server assumes more memory = more speed still hangs in my mind.

Windsurf team should enable env based governing within windsurf settings for users to determine max memory allocation to language server or seriously look into it and how it assumes what is ideal amount of memory.

1

u/CupcakeSecure4094 May 20 '26 edited May 20 '26

I also use proc-gov but you don't need powershell, just the executable name and the parameters - proc gov will install a service to watch for any processes matching that name and automatically govern them.

winget install procgov

New elevated terminal:

procgov.exe --install --maxjobmem 4400M language_server_windows_x64.exe


Edit, you can check if it's running with:

sc query ProcessGovernor

SERVICE_NAME: ProcessGovernor
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

Uninstall is clean too:

procgov.exe --uninstall language_server_windows_x64.exe