• Hey Guest, we're evolving the future of TeaSpeak.
    You're invited to join the discussion here!

High CPU usage

mola19

Fanatic member
Premium User
Hi, I know this was talked about previously and it has greatly improved the use and stability, but for me consumption is still very big, I have a very large OVH game machine with 8 cores and 64Gb of RAM and CPU usage is 100% - 95% at peak times of the day when there are more connected users, which means that the servers have crashes.

I have the following divided the servers to try a greater stability:

Total 60 instances
25 servers for instance
Total 1500 servers
Total 3000 online users

I do not know if you can recommend something to me or do some optimization so that the use of the CPU is not so extreme.

Attached below a photo.

Screenshot_5.png
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Hey,
60 instances are way too much, because the task scheduling for the linux kernel gets more and more complicated the more threads you're running (also the load goes high).
I recommend to decrease some instances. I think the latest 1.2.X version is really stable, and could hold up to 1k Users / Instance (Another user has this amount on one instance).

But in conclusion 60 instances are way too much, as you already noticed on the load i guess :D
 

mola19

Fanatic member
Premium User
Hey,
60 instances are way too much, because the task scheduling for the linux kernel gets more and more complicated the more threads you're running (also the load goes high).
I recommend to decrease some instances. I think the latest 1.2.X version is really stable, and could hold up to 1k Users / Instance (Another user has this amount on one instance).

But in conclusion 60 instances are way too much, as you already noticed on the load i guess :D
Yes, but having more than 50 servers per instance starts to malfunction and having more than 100 servers in the same instance is fatal.

In fact right now it is perfect, except for the weekends, when there are more online users.

In fact I do not know how to move all the servers to reduce the instances, for example right now I have 1500 servdiores, 25 per instance, it makes it practically impossible to get me to eliminate half of the instances, for example, only 30 instances and 50 servers for instance, since being so many servers I can not go manually copying them one by one because it would never end.

Out of all this would not exist or do you have any idea to reduce a bit the CPU usage with a new update or a new patch?

I think that if there is no other way the only way to solve the problem would be to buy another machine, since 3000 users in line and a total of 1500 servers are many much.
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Hey,
Sorry for the late response, but Im busy with school.

Well how do you came to the conclusion that over 100 vs on one instance is Fatal? Mates of me have more than 1k vs on one instance with 800 users :D

Well yeah moving will take a lot of time, but it would worth it, I guess.

Well may reduce the threads ech server, to reduce the load a littlebit. Are you running all servers with the same configuration?
 

SHELOFASTOV

Fanatic member
Premium User
Well may reduce the threads ech server, to reduce the load a littlebit. Are you running all servers with the same configuration?
More details, please. What parameters in the config to configure?
I have for example 1 instance on it 150 virtual servers with a total of 1000 people online, Tell me what to change in the config for this configuration
 

mola19

Fanatic member
Premium User
Hey,
Sorry for the late response, but Im busy with school.

Well how do you came to the conclusion that over 100 vs on one instance is Fatal? Mates of me have more than 1k vs on one instance with 800 users :D

Well yeah moving will take a lot of time, but it would worth it, I guess.

Well may reduce the threads ech server, to reduce the load a littlebit. Are you running all servers with the same configuration?
As for the first, having many servers in the same instance and those servers at the same time many channels seems to be a lot of load for a single instance and each time a client enters the ping of all other clients increases for a few seconds to a maximum of 3,000 which causes that although the load of the servant is low the TS3 works badly.

And yes, all servers bring the default configuration, and all have the same, what configuration would you recommend to put or change?
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Hey,
sorry I was quite busy, and I'm a littlebit ill as well...
Well actually you could use this thread config setting:
Code:
threads:
  #Description:
  #  Thread pool size for the ticking task of a VirtualServer
  #Warning:
  #  Do NOT TOUCH unless you're 100% sure!
  #The value must be a unsigned long between 1 and 128
  ticking: 4
  voice:
    #Description:
    #  Max number of threads for command handling threads within the instance
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    execute_limit: 4
    #Description:
    #  Threads per server for command executing
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    execute_per_server: 2
    #Description:
    #  Kernel events per server
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 16
    events_per_server: 1
    #Description:
    #  Minimum IO threads
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    io_min: 1
    #Description:
    #  IO Thread increase per server
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 64
    io_per_server: 1
    #Description:
    #  Max IO threads
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    io_limit: 2
  music:
    #Description:
    #  Max number of threads for command handling on the instance
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    execute_limit: 1
    #Description:
    #  Threads per server for command executing
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    execute_per_bot: 1
  web:
    #Description:
    #  Thread pool size for the ticking task of a VirtualServer
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    io_loops: 1
This should decrease the load a littlebit.
 

mola19

Fanatic member
Premium User
Hey,
sorry I was quite busy, and I'm a littlebit ill as well...
Well actually you could use this thread config setting:
Code:
threads:
  #Description:
  #  Thread pool size for the ticking task of a VirtualServer
  #Warning:
  #  Do NOT TOUCH unless you're 100% sure!
  #The value must be a unsigned long between 1 and 128
  ticking: 4
  voice:
    #Description:
    #  Max number of threads for command handling threads within the instance
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    execute_limit: 4
    #Description:
    #  Threads per server for command executing
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    execute_per_server: 2
    #Description:
    #  Kernel events per server
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 16
    events_per_server: 1
    #Description:
    #  Minimum IO threads
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    io_min: 1
    #Description:
    #  IO Thread increase per server
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 64
    io_per_server: 1
    #Description:
    #  Max IO threads
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    io_limit: 2
  music:
    #Description:
    #  Max number of threads for command handling on the instance
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    execute_limit: 1
    #Description:
    #  Threads per server for command executing
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    execute_per_bot: 1
  web:
    #Description:
    #  Thread pool size for the ticking task of a VirtualServer
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    io_loops: 1
This should decrease the load a littlebit.
Thanks, now the performance is better.

I have seen in another post that there are more people complaining about the use of resources and you are recommended to use the optimized version, I use the normal version.

I have some questions.

Is there much difference in performance with the optimized?
Because the optimized is not the normal final version?
If I use the optimized version can I have instability problems, crashes or other problems?
In summary, is it advisable to continue using the normal version or do you recommend using the optimized?

Greetings and thanks.
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
Oh well forgot to focus that aspect.

Well the optimized build is a CPU optimized build by the compiler.
It runs up to twenty times faster, which definably solve some of your problems.
In general, when everything is working the optimized build runs stable, but specially multi threading bugs are more significant, and cause crashes more frequently, but there seems currently nothing.

As well its incredible hard for me to debug any errors with the optimized build.
 

mola19

Fanatic member
Premium User
Oh well forgot to focus that aspect.

Well the optimized build is a CPU optimized build by the compiler.
It runs up to twenty times faster, which definably solve some of your problems.
In general, when everything is working the optimized build runs stable, but specially multi threading bugs are more significant, and cause crashes more frequently, but there seems currently nothing.
Great, thank you very much, with the configuration that you gave me and more the optimized version the performance is spectacularly good 3000 users / 50% CPU USE.

And I have one last question, if I wanted to open many servers in the same instance, what options should I increase?
 

SHELOFASTOV

Fanatic member
Premium User
Hey,
sorry I was quite busy, and I'm a littlebit ill as well...
Well actually you could use this thread config setting:
Code:
threads:
  #Description:
  #  Thread pool size for the ticking task of a VirtualServer
  #Warning:
  #  Do NOT TOUCH unless you're 100% sure!
  #The value must be a unsigned long between 1 and 128
  ticking: 4
  voice:
    #Description:
    #  Max number of threads for command handling threads within the instance
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    execute_limit: 4
    #Description:
    #  Threads per server for command executing
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    execute_per_server: 2
    #Description:
    #  Kernel events per server
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 16
    events_per_server: 1
    #Description:
    #  Minimum IO threads
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    io_min: 1
    #Description:
    #  IO Thread increase per server
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 64
    io_per_server: 1
    #Description:
    #  Max IO threads
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    io_limit: 2
  music:
    #Description:
    #  Max number of threads for command handling on the instance
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 1024
    execute_limit: 1
    #Description:
    #  Threads per server for command executing
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    execute_per_bot: 1
  web:
    #Description:
    #  Thread pool size for the ticking task of a VirtualServer
    #Warning:
    #  Do NOT TOUCH unless you're 100% sure!
    #The value must be a unsigned long between 1 and 128
    io_loops: 1
This should decrease the load a littlebit.
Please also configure settings for 1 instance 150-200 virtual servers and 1000-1500 online.
 

edsandro

Active member
Please also configure settings for 1 instance 150-200 virtual servers and 1000-1500 online.
I also have this average amount, and I would like to know the optimal configuration for the server to support 200 servers and 1500 online. What is the recommended RAM and cpu cores setting?
 

WolverinDEV

TeaSpeak Team
Staff member
Administrator
I also have this average amount, and I would like to know the optimal configuration for the server to support 200 servers and 1500 online. What is the recommended RAM and cpu cores setting?
Well there will be a tutorial later where these config options are specified and explained, hopefully understandable :)
 

Rennato

Well-known member
Hi, I know this was talked about previously and it has greatly improved the use and stability, but for me consumption is still very big, I have a very large OVH game machine with 8 cores and 64Gb of RAM and CPU usage is 100% - 95% at peak times of the day when there are more connected users, which means that the servers have crashes.

I have the following divided the servers to try a greater stability:

Total 60 instances
25 servers for instance
Total 1500 servers
Total 3000 online users

I do not know if you can recommend something to me or do some optimization so that the use of the CPU is not so extreme.

Attached below a photo.

View attachment 963

With your server data not crash? CPU 100%