Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


BMail.ag - Secure Email Service
Server.net
CPLicense.net
VPS Server
Buy VPN
Vultr
VMs for AI
HostDare
ReliableSite White-Label Dedicated Hosting for Resellers
25% Recurring Discount on NVMe VPS
Try EnsoVPN - Reliable VPN - 1-Day Free Trial
InterServer VPS
BMail.ag - Secure Email Service
Best VPN
High-Performance Bare Metal Server Solutions
Karvl.com
Server Mania Cloud Hosting
DataWagon Hosting
AlphaVPS Hosting
Evoxt.com
Clouvider
VPS Hosting with NVMe
Residential IPs in the US & 4G Mobile Proxies in EU & US with Unlimited Bandwidth
ReliableSite White-Label Dedicated Hosting for Resellers
Rabisu - Hosting Solutions
CloudLinux
Try EnsoVPN - Fast & Private VPN - 1-Day Free Trial
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Looking for a VDS with high performance in europe

2»

Comments

  • labzelabze Member, Patron Provider

    @forest said: It's not a real VDS then because the cores are not dedicated.
    Just because other hosts misuse the term for marketing doesn't mean it's correct.

    You are misunderstanding what I mean.

    You could have the most dedicated core possible. Performance per core will always degrade as overall load increases. That's why a CPU has a max boost clock and an all-core boost clock.

    Even though nobody ever touches your CPU core due to CPU pinning you could suffer a 40% performance loss just because everyone utilize their own core to the full extent.

    Dedicated cores does not equal guaranteed performance.
    Dedicated cores equals guaranteed usage.

    If you need guaranteed performance there is only one way and that is a dedicated server.

    I have VDS systems that only have 75% of the CPU cores assigned but still have higher CPU usage than standard VPS packages with 3-4 clients sharing CPU cores simply due to clients that need the highest end CPU with dedicated resources also are the people that need to use the cores extensively.

  • forestforest Member
    edited August 1

    @labze said: You could have the most dedicated core possible. Performance per core will always degrade as overall load increases. That's why a CPU has a max boost clock and an all-core boost clock.

    Sure, that's true, and you'll still have a shared L3 cache with many other nodes (although there is one EPYC that has 32 MiB unshared L3 per core), but you'll still have a minimum guaranteed performance.

    A lot of EPYCs and Xeons have their max single core boost very close to their max multi-core boost, so there's not that much a neighbor can do to interfere with your core on a true VDS. Assuming they aren't intentionally trying to cause L3 cache pressure, the most they could do is make the processor reach its thermal limits so you only get the all-core boost instead of single-core boost speed. For a Ryzen that might be a 2 GHz difference, but for EPYC it could be just 100 MHz.

  • rpqurpqu Member

    @forest said:

    @labze said: You could have the most dedicated core possible. Performance per core will always degrade as overall load increases. That's why a CPU has a max boost clock and an all-core boost clock.

    A lot of EPYCs and Xeons have their max single core boost very close to their max multi-core boost, so there's not that much a neighbor can do to interfere with your core on a true VDS. Assuming they aren't intentionally trying to cause L3 cache pressure, the most they could do is make the processor reach its thermal limits so you only get the all-core boost rather than the single-core boost speed.

    That is interesting concept. Can you make the PoC?

  • forestforest Member
    edited August 1

    @rpqu said:

    @forest said:

    @labze said: You could have the most dedicated core possible. Performance per core will always degrade as overall load increases. That's why a CPU has a max boost clock and an all-core boost clock.

    A lot of EPYCs and Xeons have their max single core boost very close to their max multi-core boost, so there's not that much a neighbor can do to interfere with your core on a true VDS. Assuming they aren't intentionally trying to cause L3 cache pressure, the most they could do is make the processor reach its thermal limits so you only get the all-core boost rather than the single-core boost speed.

    That is interesting concept. Can you make the PoC?

    For putting pressure on the L3? Or just making the processor reach its thermal limits?

  • rpqurpqu Member

    @forest said:

    @rpqu said:

    @forest said:

    @labze said: You could have the most dedicated core possible. Performance per core will always degrade as overall load increases. That's why a CPU has a max boost clock and an all-core boost clock.

    A lot of EPYCs and Xeons have their max single core boost very close to their max multi-core boost, so there's not that much a neighbor can do to interfere with your core on a true VDS. Assuming they aren't intentionally trying to cause L3 cache pressure, the most they could do is make the processor reach its thermal limits so you only get the all-core boost rather than the single-core boost speed.

    That is interesting concept. Can you make the PoC?

    For putting pressure on the L3? Or just making the processor reach its thermal limits?

    Both will be nice. I guess the latter's goal is to reach thermal throttling

  • tzulitzuli Member
    edited August 1

    @labze said: I have VDS systems that only have 75% of the CPU cores assigned

    75% of cores? or threads?

    What CPU model?

  • forestforest Member
    edited August 1

    @rpqu said:

    @forest said:

    @rpqu said:

    @forest said:

    @labze said: You could have the most dedicated core possible. Performance per core will always degrade as overall load increases. That's why a CPU has a max boost clock and an all-core boost clock.

    A lot of EPYCs and Xeons have their max single core boost very close to their max multi-core boost, so there's not that much a neighbor can do to interfere with your core on a true VDS. Assuming they aren't intentionally trying to cause L3 cache pressure, the most they could do is make the processor reach its thermal limits so you only get the all-core boost rather than the single-core boost speed.

    That is interesting concept. Can you make the PoC?

    For putting pressure on the L3? Or just making the processor reach its thermal limits?

    Both will be nice. I guess the latter's goal is to reach thermal throttling

    Putting pressure on the L3 requires populating it with dirty pages and trying to slow down their flush to memory. Create a working set of random data (at least 2x the L3 size) and go over writing to it in a loop with a pseudorandom access pattern with a 64-byte stride. You might be able to do better if you subsequently do a few access in a row to a cache line after writing to it? I think modern caches assign priorities for each cache line and accesses might increase priority and cause evictions.

    If you have a lot of cores, you can have a few other cores use clwb to force writeback to memory by writing to a single cache line over and over to saturate the memory bus. That would keep the dirty L3 lines resident for longer so that they can't be evicted by the "victim" cores. The end-result will be that any working set larger than their L2 will suffer significant cache misses and serving those misses will be slower. Inclusive caches like Intel's will suffer even more.

    Reaching thermal throttling is easier. Just run something AVX2/AVX512-heavy like a GB benchmark or stress test. That will bring you up to the single-core max boost for a short time, which means anyone else nearby, even if they also have their own pinned cores, can't boost as high anymore. On a Ryzen, this would be particularly effective because you could essentially limit a neighbor's max clock to (say) 3.8 GHz instead of 5.5 GHz. On a server processor with many cores, the limit wouldn't nearly be as severe because the hardware design is focused on best sustained all-core performance rather than temporary single-core performance. So there's not much you can do to your neighbors in that respect.

  • rpqurpqu Member

    @forest said:

    @rpqu said:

    @forest said:

    @rpqu said:

    @forest said:

    @labze said: You could have the most dedicated core possible. Performance per core will always degrade as overall load increases. That's why a CPU has a max boost clock and an all-core boost clock.

    A lot of EPYCs and Xeons have their max single core boost very close to their max multi-core boost, so there's not that much a neighbor can do to interfere with your core on a true VDS. Assuming they aren't intentionally trying to cause L3 cache pressure, the most they could do is make the processor reach its thermal limits so you only get the all-core boost rather than the single-core boost speed.

    That is interesting concept. Can you make the PoC?

    For putting pressure on the L3? Or just making the processor reach its thermal limits?

    Both will be nice. I guess the latter's goal is to reach thermal throttling

    Putting pressure on the L3 requires populating it with dirty pages and trying to slow down their flush to memory. Create a working set of random data (at least 2x the L3 size) and go over writing to it in a loop with a pseudorandom access pattern with a 64-byte stride. You might be able to do better if you subsequently do a few access in a row to a cache line after writing to it? I think modern caches assign priorities for each cache line and accesses might increase priority and cause evictions.

    If you have a lot of cores, you can have a few other cores use clwb to force writeback to memory by writing to a single cache line over and over to saturate the memory bus. That would keep the dirty L3 lines resident for longer so that they can't be evicted by the "victim" cores. The end-result will be that any working set larger than their L2 will suffer significant cache misses and serving those misses will be slower. Inclusive caches like Intel's will suffer even more.

    Okay, so we assumed the microcode will prematurely evict the other guest vm's L3 cache because of the workload characteristic. And this may cause bound on the performance, as the core are starved of the next instruction/data which is stored on RAM

    Thanked by 2tzuli buggedout
  • forestforest Member
    edited August 1

    @rpqu said: Okay, so we assumed the microcode will prematurely evict the other guest vm's L3 cache because of the workload characteristic

    It'll definitely cause evictions because the L3 is shared (assuming you're on the same chiplet, generally). And by having a lot of your L3 contain dirty pages, they can't be evicted until they are successfully flushed to memory.

    It won't involve any microcode though, since it's a fast-path that won't touch the microcode sequencer.

    @rpqu said: And this may cause bound on the performance, as the core are starved of the next instruction/data which is stored on RAM

    Most performance impact won't be pulling in instructions (since those will generally fit comfortably within the L2), but trying to read from or write to the RAM in general. Even if the "victim" can dispatch a memory access instruction, the number of cycles until it retires is going to depend on whether it's a cache hit or a cache miss.

  • tzulitzuli Member

    @labze said: I have VDS systems that only have 75% of the CPU cores assigned

    @tzuli said: 75% of cores? or threads?

    Sorry, this didn't make sense. I was thinking about how you're measuring CPU usage (cores vs threads), not the VM allocation

    @labze said: The definition of Virtual Dedicated Servers at HostBrr is 1 vCore = 1 CPU thread. The vCores are not pinned, however no more than 30 vCores will be provisioned at any time.

    This doesn't sound bad. Is it still accurate?

  • rpqurpqu Member

    @forest, I was able to raise haswell-era node latency. With bw and read-after-write, but clwb doesn't exist. The cache latency seems minimal on cascade-lake node, but RAM latency spikes. Do you want to take a look?

    Thanked by 1buggedout
  • forestforest Member

    @rpqu said:
    @forest, I was able to raise haswell-era node latency. With bw and read-after-write, but clwb doesn't exist. The cache latency seems minimal on cascade-lake node, but RAM latency spikes. Do you want to take a look?

    If you don't have clwb, you can do something similar with clflush / clflushopt. Those flush a single cache line, so 64 bytes at a time. And cache latency will always be low, but it'll be under pressure. Try doing some data compression and using perf to measure the cache miss rate. It should go up very high when you're thrashing the cache in another process.

    Thanked by 2rpqu buggedout
  • forestforest Member

    @forest said: with many other nodes cores

  • Require changed: a single core gb6 at least 2000 is ok

Sign In or Register to comment.