spodermon1 Posted May 30, 2017 Share Posted May 30, 2017 (edited) tried searching on the forum, didn't find anything. So whats a good rough guide to go by? found some posts back from 2011 on google stating 512mb ram per bot, but i assume botting has become more efficient since then. would you say 512mb per bot is still an accurate guide to go by? Edited May 30, 2017 by spodermon1 Quote Link to comment Share on other sites More sharing options...
Zapako Posted May 30, 2017 Share Posted May 30, 2017 I think it's the other way around. The more resources you have, the more likely you are to use them. 1 Quote Link to comment Share on other sites More sharing options...
Vap0r Posted May 30, 2017 Share Posted May 30, 2017 600-700mb is more realistic 2 Quote Link to comment Share on other sites More sharing options...
Void Posted May 30, 2017 Share Posted May 30, 2017 Note: You could but 128GB of ram to theoritically run 100+ Bots however it's often the CPU which bottlenecks your capabilities. 1 Quote Link to comment Share on other sites More sharing options...
Vap0r Posted May 30, 2017 Share Posted May 30, 2017 If you use servers, (Or if you have really fast SSD or M.2) you can use swap ram which then as void says the only thing that would bottle neck is the CPU Quote Link to comment Share on other sites More sharing options...
Zapako Posted May 30, 2017 Share Posted May 30, 2017 (edited) 18 minutes ago, Vap0r said: If you use servers, (Or if you have really fast SSD or M.2) you can use swap ram which then as void says the only thing that would bottle neck is the CPU This is most definitely a no-go. Even if you use SSDs as as swap, you will run into severe performance issues. Even RAM itself is not fast enough for modern day computers, which is why we have on-die memory for CPUs (L1, L2, L3 cache). You will need a more powerful CPU as well and need to scale your on-die memory. If I recall correctly, to fetch a line from RAM (a cache miss) costs around 300 - 1000 cycles. If you're at a point where you're swapping for a game that relies heavily on real-time software rendering, you're going to have a bad time Edited May 30, 2017 by Zapako Quote Link to comment Share on other sites More sharing options...
Vap0r Posted May 31, 2017 Share Posted May 31, 2017 1 hour ago, Zapako said: This is most definitely a no-go. Even if you use SSDs as as swap, you will run into severe performance issues. Even RAM itself is not fast enough for modern day computers, which is why we have on-die memory for CPUs (L1, L2, L3 cache). You will need a more powerful CPU as well and need to scale your on-die memory. If I recall correctly, to fetch a line from RAM (a cache miss) costs around 300 - 1000 cycles. If you're at a point where you're swapping for a game that relies heavily on real-time software rendering, you're going to have a bad time I use cached ssd's on my server, about 50 GB of swap per server, it works perfectly stable for 55 bots + On my personal computer I used m.2 20GB worth to use as swap in a RHEL environment and it works perfectly fine, but M.2 is the best option as its the same speeds as RAM virtually. Quote Link to comment Share on other sites More sharing options...
Zapako Posted May 31, 2017 Share Posted May 31, 2017 (edited) 23 minutes ago, Vap0r said: I use cached ssd's on my server, about 50 GB of swap per server, it works perfectly stable for 55 bots + On my personal computer I used m.2 20GB worth to use as swap in a RHEL environment and it works perfectly fine, but M.2 is the best option as its the same speeds as RAM virtually. A system will not swap unless there is no RAM left. If you're running Linux, you should check htop to see memory usage and swap usage. Swap acts as a last resort. Also, bear in mind that virtual memory and physical memory are two different values Bandwidth and latency are two completely different things. Bandwidth is how much data can be transferred over a given interval. Latency is how fast X amount of data is transferred. You may have an SSD that has bandwidth similar to RAM, but you don't have arbitrary read and write along with low latency fetches and writes. The block size for most SSDs/HDDs is fairly large. For example, to write one byte to a disk, if the block size was 8kb, you would actually have to rewrite the whole section (8kb write) When you're running 55 bots, check your RAM and SWP usage, I can guarantee you the system isn't swapping - if it is, processes start getting killed and the kernel starts going crazy trying to reclaim memory. Also, even the 960 Pro has about 6x less bandwidth than even mid-tier DDR3 RAM Source: I deal with these kinds of hardware limitations for a living Edited May 31, 2017 by Zapako Quote Link to comment Share on other sites More sharing options...
Vap0r Posted May 31, 2017 Share Posted May 31, 2017 20 minutes ago, Zapako said: A system will not swap unless there is no RAM left. If you're running Linux, you should check htop to see memory usage and swap usage. Swap acts as a last resort. Also, bear in mind that virtual memory and physical memory are two different values Bandwidth and latency are two completely different things. Bandwidth is how much data can be transferred over a given interval. Latency is how fast X amount of data is transferred. You may have an SSD that has bandwidth similar to RAM, but you don't have arbitrary read and write along with low latency fetches and writes. The block size for most SSDs/HDDs is fairly large. For example, to write one byte to a disk, if the block size was 8kb, you would actually have to rewrite the whole section (8kb write) When you're running 55 bots, check your RAM and SWP usage, I can guarantee you the system isn't swapping - if it is, processes start getting killed and the kernel starts going crazy trying to reclaim memory. Also, even the 960 Pro has about 6x less bandwidth than even mid-tier DDR3 RAM Source: I deal with these kinds of hardware limitations for a living Without using swap ram on #1. the server to run bots, I can't use above ~25 bots #2 The server which my database on would not be able the amount of information if we did not have swap ram. So yes my system is using all of its allocated virtual ram + the swap ram Source: I set up these servers, and my company's RHEL environment uses swap as well to power a mySQL database. Quote Link to comment Share on other sites More sharing options...
Zapako Posted May 31, 2017 Share Posted May 31, 2017 (edited) 13 minutes ago, Vap0r said: Without using swap ram on #1. the server to run bots, I can't use above ~25 bots #2 The server which my database on would not be able the amount of information if we did not have swap ram. So yes my system is using all of its allocated virtual ram + the swap ram Source: I set up these servers, and my company's RHEL environment uses swap as well to power a mySQL database. I'm not going to try to argue with someone who thought that m.2 was even remotely as fast as RAM any further, but I will leave this here: The use-case for allowing a database server to swap is very limited. If entries in a DB do not fit in RAM, they are kept on the disk anyway. By using swap, you're just adding an additional layer of complexity for no reason, as swap space lives on the disk anyway. Dealing with a swapping server is extremely frustrating as it typically becomes too slow to even remotely administrate, and requires remote hands to go in and physically reboot the server. Furthermore, by using swap space, the kernel is working that much harder trying to find some available memory on the RAM device. You're either bullshitting, or don't know what you're talking about. Read first answer here https://serverfault.com/questions/578896/is-there-any-reason-to-not-have-a-swap-file-on-centos-digitalocean One of the reasons not to use swap, according to the link, would be... You have a specific performance requirement that means you cannot allow your program to use swap for processing as it is significantly slower than memory, so rather than use swap, you choose to monitor memory usage closely and increase memory as needed. Or any of the other myriad resources detailing it Anyway, I won't be responding to this any further. You can either learn from this free advice (normally I charge a consulting fee!) or stick your head in the sand Edited May 31, 2017 by Zapako Quote Link to comment Share on other sites More sharing options...
Vap0r Posted May 31, 2017 Share Posted May 31, 2017 5 minutes ago, Zapako said: I'm not going to try to argue with someone who thought that m.2 was even remotely as fast as RAM any further, but I will leave this here: The use-case for allowing a database server to swap is very limited. If entries in a DB do not fit in RAM, they are kept on the disk anyway. By using swap, you're just adding an additional layer of complexity for no reason, as swap space lives on the disk anyway. Dealing with a swapping server is extremely frustrating as it typically becomes too slow to even remotely administrate, and requires remote hands to go in and physically reboot the server. Furthermore, by using swap space, the kernel is working that much harder trying to find some available memory on the RAM device. You're either bullshitting, or don't know what you're talking about. Read first answer here https://serverfault.com/questions/578896/is-there-any-reason-to-not-have-a-swap-file-on-centos-digitalocean One of the reasons not to use swap, according to the link, would be... You have a specific performance requirement that means you cannot allow your program to use swap for processing as it is significantly slower than memory, so rather than use swap, you choose to monitor memory usage closely and increase memory as needed. Or any of the other myriad resources detailing it Weird, I have been running 11 servers now for my farm using swap and no maintenance is ever needed on the server itself, just the scripts. Quote Link to comment Share on other sites More sharing options...