3 ms·
Yes, you are crazy for thinking that. The extra ram is useful for small LLMs and also running lots of dock containers. The very low power consumption makes it i
by parl_match 7mo ago
Yes, you are crazy for thinking that. The extra ram is useful for small LLMs and also running lots of dock containers. The very low power consumption makes it ideal for a low end home server.
I use the 16GB SKU to host a bunch of containers and some light debugging tools, and the power usage that sips at idle will probably pay for the whole board over my previous home server, within about 5 years.
- megous 7mo agoYou can just as well not run docker. 1GiB machine can run a lot of server software, if RAM is not wasted on having duplicate OSes on one machine.
- zozbot234 7mo agoDocker is about containerization/sandboxing, you don't need to duplicate the OS. You can run your app as the init process for the sandbox with nothing else running in the background.
- megous 7mo agoThat makes docker entirely useless if you use it just for sandboxing. Systemd services can do all that just fine, without all the complexity of docker.
- JollySharp0 7mo agoContainers are not Virtual Machines. 1GB cannot run a lot of server software. If stuff is written in .NET, Java or JavaScript. Hosting a non-trivial web app can use several hundred megabytes of memory.
- gnabgib 7mo agoOnly Java qualifies under your arbitrary rules, and even then I imagine it's trying to catch up to .NET (after all.. blu-ray players execute Java).. which can run on embedded systems https://nanoframework.net/ https://nanoframework.net/
- JollySharp0 7mo agoI listed some popular languages that web applications I happened to run dockerised are using. They are not arbitrary. If you run normal web applications they often take many hundreds of megabytes if they are built with some popular languages that I happened to list off the top of my head. That is a fact. Comparing that to cut down frameworks with many limitations meant for embedded devices isn't a valid comparison.
- gnabgib 7mo ago1GB is plenty for almost every case I've seen, 10-20x the need. Yes if you're running a repeated full OS underneath (hello VMs) then it'll waste more. I run (regular) .NET (8) in <50mb, Javascript in <50mb, PHP in <50mb. C, Perl, Go in <20mb. Unless you're talking about disk space.. runtimes take space.
- JollySharp0 7mo ago> 1GB is plenty for almost every case I've seen, 10-20x the need Couldn't have seen many then! Maybe you should look elsewhere. > Yes if you're running a repeated full OS underneath (hello VMs) then it'll waste more. Docker is not VMs. Other people have stated this. > I run (regular) .NET (8) in <50mb, Javascript in <50mb, PHP in <50mb. C, Perl, Go in <20mb. Good for you. I run web services that are heavier. The container has nothing to do with it.
- megous 7mo agoAny node server app will be ~50-100 MiB (because that's roughly the size of node binary + shared deps + some runtime state for your app). If you failed to optimize things correctly, and you're storing and working with lots of data in the node process itself, instead of it serving as a thin intermediary between http service and a database/other backend services, you may get spikes of memory use well above that, but that should be avoided in any case, for multiple reasons. And most of this 50-100 MiB will be shared if you run multiple node services on the same machine the old way. So you can run 6 node app servers this way, and they'll consume eg. 150MiB of RAM total. With docker, it's anyone guess how much running 6 node backend apps will consume, because it depends on how many things can be shared in RAM, and usually it will be nothing.
- rtpg 7mo agoI think that on linux docker is not nearly as resource intensive as on Mac. Not sure of the actual (for example) memory pressures due to things like not sharing shared libs between processes, granted
- megous 7mo agoThat's the major problem. The more shared libs the app is using, the worse this is.
- zx8080 7mo agoIt's not OS duplication per se, but a SystemD one.
- parl_match 7mo ago> You can just as well not run docker. this is naive "just as well"? lmao sure i guess i could just manually set up the environment and have differences from what im hoping to use in productio > 1GiB machine can run a lot of server software, this is naive it really depends if you're crapping out some basic web app versus doing something that's actually complicated and has a need for higher performance than synchronous web calls :) in addition, my mq pays attention to memory pressure and tunes its flow control based on that. so i have a test harness that tests both conditions to ensure that some of my backoff logic works > if RAM is not wasted on having duplicate OSes on one machine. this is naive that's not how docker works...
- megous 7mo agoYes, it's exactly how docker works if you use it for where it matters for a hobbyist - which is where you are installing random third-party apps/containers that you want to run on your SBC locally. I don't know why people instantly forget the context of the discussion, when their favorite way of doing things gets threatened. :) Context is hobbyists and SBC market (mostly various ARM boards). Maybe I'm weird, but I really don't care about minor differences between my arch linux workstation, and my arch linux arm SBCs, because 1) they're completely different architectures, so I can't avoid the differences anyway 2) it's a hobby, I have one instance at most of any service. 3) most hobbyist run services will not work with a shitton of data or have to handle 1000s of parallel clients
- parl_match 7mo ago> Yes, it's exactly how docker works if you use it for where it matters for a hobbyist What you described is exactly the opposite of how it works. There is no reasonable scenario in how that is how it works. In fact, what you're saying is opposite of the whole point of containers versus using a VM. > when their favorite way of doing things gets threatened No, it's when someone (like you) thinks they have an absolute answer without knowing the context. And by the way, in my scenario, container overhead is in the range of under a hundred MiB total . The thing I'm working on HAPPENS to require a fair amount of RAM. But you confidently asserted that "1GiB machine can run a lot of server software". And that's true for many people (like you), but not true for a lot of other people (like me). > most hobbyist run services will not work with a shitton of data or have to handle 1000s of parallel clients neither of these are true for me but you need to take a step back and maybe stop making absolute statements about what people are doing or working on :)