4 ms·
> Just two or three users and the Pi will "choke". Do you really know this? What's the limiting factor? I've never played with a Pi and I don't really know,
by ScottBurson 9y ago
> Just two or three users and the Pi will "choke".
Do you really know this? What's the limiting factor?
I've never played with a Pi and I don't really know, but I don't see offhand why it would be so bad. Interrupt-handling and context-switching times should be much better. There's plenty of main memory. The file system should be faster, running on flash. I don't see where the bottleneck would be.
- dfox 9y agoProbably only limiting factor in the hardware is that R-Pi does not have any meaningful high-speed low-latency IO. But on the software side there is one huge problem: today's Linux kernel and userspace is incredibly bloated in comparison to early 90's SunOS. On the other hand, said SunOS probably did not support many things that everybody expects today, like scalability to large-ish SMP systems (ie. >2 CPUs), shared libraries, loadable kernel modules, threads...
- ScottBurson 9y agoSunOS definitely had shared libraries -- I think those go back at least to 4.3BSD. Anyway, how much I/O do you need to support people running terminal apps over Ethernet?
- dfox 9y agoWhat I meant by the IO is that the aforementioned sparcstation had ethernet card connected to SBus which was capable of directly producing interrupts and doing DMA, and all the modems were connected through some multiport serial card/concentrator which tried very hard to offload stuff from the CPU. Which is completely different situation than R-Pi with everything hanging off USB with it's "novel" approach to interrupts.
- tannhaeuser 9y agoSunOS/Solaris has been able to run on hosts with lots of CPUs for much longer than Linux. But then, it had to, because SPARC CPUs have been no match to X86s for almost as long.
- dfox 9y agoIt was able to, but it was not especially efficient at doing so, to some extent because the hardware platforms themselves were not scalable and only appeared to be so because of brute force (even e10k is essentially shared bus SMP machine, sun4d-style). In fact, the NUMA support in non specialized systems (one would want to say "non-IRIX") is surprisingly recent development. In Linux it is one of the things that happened in the 2.4/2.6 timeframe, which is the same timeframe when mainstream distributions started to be too bloated for lot of old or underpowered hardware.
- ChuckMcM 9y agoIt would be interesting if you could port NetBSD 2.x to the Pi. That would be a close equivalent.
- wang_li 9y agoInterestingly, the SparcStation10 would run Solaris 9 and premier support for the SS10 only ended in June 2016, even though the product EOLed in 1994 and had end of support in 1999.
- pjmlp 9y agoBesides what others commented. It definitely supported M:1 and M:N threading models while Linux was still designing NPTL and LinuxThreads models.
- dfox 9y agoI'm not saying that SunOS was somehow slow to implement these things, but that the SunOS that ran on the aforementioned SS10 shell server. Which seems about right given the fact that first Solaris with userlevel LWPs was 5.2 (dec 93) and pthread-compatibility layer was introduced in 5.5 (nov 95). And it seems quite plausible that they ran SunOS 4.x and not Solaris.
- tbrock 9y agoYeah that bit doesn't make any sense. If anything the pi would support more users with similar workloads to those being run on the sparcstation in the same fashion (without containers).
- ChuckMcM 9y ago> Do you really know this? What's the limiting factor? Yes, I've got a bunch of RasPi's (originals, v2's, and V3s). The big issue is I/O bandwidth. All of the meaningful I/O in a server setup goes through one USB 2.1 hub. The second issue is that all of the memory accesses have to traverse the (useless) GPU to get to the CPU. As designed for a phone, having the CPU be a ride along to the GPU makes perfect sense. The "thing" that is important in a smartphone is the screen, its updates and I/O to and from it. But as a general purpose server that isn't balanced. We put RasPi servers on the Internet and local network at Blekko for a variety of tasks, and I've used them at home as well for servers. Very successful having them be single purpose servers (a DNS cache, a video streamer, a data collector) and very unsuccessful when they are multitasking multiple 'kinds' of network clients. Tried various configs with EXIM and Dovecot as a mail server, it processes very slowly. (an SSH session on the machine was 10s of seconds between the key press and the appearance of the character on my end, took me back to the worst of times on a timeshared system :-). But seriously, everyone should try this. Set up a minecraft server, set up a web server, set up what ever you want and watch it. It is easy to set up multiple "stressor" clients with Python. Trace the flow of data from client to network to app to disk to app to network to client etc. Then do the same thing on a machine with the same numbers and twice the I/O bandwidth (Odroid has a couple of boards with similar specs but better I/O bandwidth as do a bunch of boards in the 96boards.org spec) It will be time well spent if you're ever asked to get the most out of a system.
- pdonis 9y ago> All of the meaningful I/O in a server setup goes through one USB 2.1 hub. Even Ethernet and 802.11 wifi packets?
- trafficlight 9y agoEthernet certainly does. https://raspberrypi.stackexchange.com/questions/46076/soc-cpu-and-ethernet-controller-internal-connection-in-raspberry-pi-3 https://raspberrypi.stackexchange.com/questions/46076/soc-cp...
- Kubuxu 9y ago