edit. And oh yes, the memory usage of the default installation is so low, that you can virtualize dozens of them on your laptop. This helps when you want to locally reproduce the stack you run in cloud.
I also use it at work. The scale is much different as one of the largest CDNs, the network interface stats are eye popping. This is proprietary caching software and nginx and apache for certain types of origins or admin services.
I have a high tolerance for trawling through documentation and reading the code of open source libraries in pursuit application logic and the fiddly bits of related services. I have low tolerance for the same work in pursuit of infrastructure configuration and systems administration.
I run various flavors of Debian and Ubuntu across a desktop, 2 laptops and a home server (various audio/video projects). Thus I tend to default to the familiarity of these systems, and get back to the part of the stack I enjoy working in. Another word for this might be "laziness", but that doesn't quite tell the full story.
As a FreeBSD user and a Debian user, I was excited to try Debian/kFreeBSD around 2012ish? but it was kind of painful -- a lot of important FreeBSD userland tools weren't available in packages, so you had to do a lot of messing about to get things you might need. It might be interesting to run a Debian/kFreeBSD jail inside a regular FreeBSD install, but at that point, you may as well just bite the bullet and do things in regular FreeBSD.
It should be noted that a) FreeBSD is doing work to keep software working without SystemD (an obvious point, I know, but it might not be obvious that this means that work also benefits Debian) - so long as we don't see any crazy dependency on SystemD from Apt or the installer itself (hopefully unlikely) - there shouldn't be any issues. b) Debian/GNU Linux still supports more than one init-system[2] -- at least for now.
While the long fingers of SystemD reaches for more and more of Linux, as long as developers are supporting other systems at all, there should be a way forward for distributions that doesn't want to incorporate SystemD. So this includes stuff like native Windows support, building on OS X, and packaging for the various BSDs -- all that work that goes into the big packages should continue to benefit Linux users that want to avoid SystemD for one reason or another.
> I was excited to try Debian/kFreeBSD around 2012ish? but it was kind of painful -- a lot of important FreeBSD userland tools weren't available in packages
As far as I know, this should've improved quite a bit. The biggest bar for entry (last I checked) was that the nightly installer builds might not work out of the box (one possible workaround would be to install Wheezy/7.0 and then dist-upgrade).
To be clear, I've yet to play with Debian/kFreeBSD, so this mostly from impressions from the list (and I'm not quite caught up with the latest). AFAIK the installer should now support installing on zfs rootfs, for example.
[1] https://lists.debian.org/debian-bsd/
[2] https://wiki.debian.org/systemd#Installing_without_systemd
When I left we'd added nginx in a jail and switched to ZFS, which solved most of the problems we had been having. There were a few ZFS deadlocks, but I never got to the bottom of it and FreeBSD 10 seemed to fix them. I'd imagine things are even less notable now.
Ick. Yeah, UFS snapshots had issues for a while... had I known you were using them I would have encouraged you to switch to ZFS sooner.
There were a few ZFS deadlocks, but I never got to the bottom of it and FreeBSD 10 seemed to fix them.
Yes, FreeBSD 10 definitely fixed a bunch of ZFS deadlocks.
Arc does make things interesting in unusual ways, but not on an OS level.
That'd be how I'd build it, if I'm right. Doing webby things without nginx is like forgetting pants, to me.
The current[1] distribution comes with a hn clone, that as far as I know, is mostly equivalent to the code that used to power hn at some point in the not too distant past.
[1] current might not be the best name for it, but as far as I can tell it a) works, b) has been ported to Racket (as opposed to being trapped on some ancient version of PLT Scheme), and c) is maintained (ish): https://github.com/arclanguage/anarki
Back then fbsd had something called accept filters, which basically made the accept call only return when a http request was received in the network buffers.
Systems running fbsd loaded up different than Linux, kept being responsive. On same hardware, could do 3-5x more rps with lower load iirc.
As my applications at the time became more cpu bound, I switched to Debian around 4.11.
I've recently been using 10.x, coming back to fbsd from 10 years of Debian. I love what you've done while I was gone. Especially binary packages and easy upgrades, but especially jails and zfs.
Default system uses less memory than Ubuntu (~50MB last time I checked which means something on .5, 1GB RAM instances). I could swear memory consumption in general has fallen down, but haven't done any measurements.
I don't have to jump all over the web to figure out how something works - I just go to handbook. Which means one gets tendency to study topics instead of copy-paste snippets from around.
Since base system (maybe things were different before) does not abruptly change or pull the rug under your feet, combined with handbook studies, this has the effect of compounding knowledge that'll be effective in years to come.
Firewall (pf) is a thing of beauty. I've barely scratched the surface of it.
Base/userland abstraction split, as well as consistency throughout the system helps one maintain a solid mental map of the system. After a short while, you just know where stuff is, how to configure it, and where its defaults are even when you're in completely new territories.
Bonus: You can really go the distance without compiling anything, but if you're keen on maintaining a low memory profile by dropping various features from your packages, this is a great new build system I use to have all my pkgs up to date - https://github.com/jrmarino/synth
I don't buy into the "increased performance" though. Every well done benchmark I've seen is at least several yaers out of date, and my personal benchmarks usually put linux ahead on any sort of operations that include networking. Not to say FreeBSD doesn't perform well, it does.
Simplicity is key.
I might have been kidding at the end there.
Pardon the questions -- I'm suspicious (seems high) but willing to be surprised.
One thing I really like about it besides the things others have mentioned is that by default it sends emails every day/week/month regarding security and system usage statistics, so it tells me when a security vulnerability has been found for a package I have installed and that I should upgrade it.
I've found this makes me much more likely to keep things up to date.
It works fine, but Linux is probably ok too. There's some things you need to tune if you're high traffic -- most of them are sysctls you can tune at run time, but there's a couple boot time values; basically if you have enough ram to do webserving at 10gbps, some of the auto tuning for network buffers are going to be oversized, you'll likely actually allocate that much during peak, and FreeBSD won't return free'd network buffers to the overall pool; so you can't just drop the per socket sysctls, you need to reboot with lower network buffer caps (and per socket buffers, probably too). Depends on what kind of traffic you're serving though, and I'm guessing a lot of people won't hit 10Gbps out anyway. There's some other minor tweaking of that nature required too; and I would suggest running 10.3-RELEASE, if possible, there's some useful bug fixes in there.
Migrating to FreeBSD for both dev and server work is on my personal roadmap for around June / July this year, once 11.0 is released and my laptop chipset is supported.
You're talking about Intel video driver issues, I assume? If you can, I'd suggest trying 11.0-ALPHA1 (https://lists.freebsd.org/pipermail/freebsd-snapshots/2016-M...) in case there are bugs you can report. It's always difficult with new hardware to get enough people testing before the release to get everything fixed.
Linux also seemed to have changed quite a bit since the last time I used it in the 90's/early 2000s. With systemd, it doesn't seem like Unix anymore.
I also looked up recent Linux distributions to use, and was largely overwhelmed at the choices. I looked up FreeBSD, and it was just one distribution.
Contrary to what others here have written, FBSD is no more 'fiddly' than any other server class OS. It is faster, smaller, and better conceived than linux - which is a achieving Microsoft-levels of accretion and cruft.
Moreover, FBSD is not constrained by the execrable GPL and its variants, uses a far more modern compiler chain, has better release control, etc.
I do use Linux as well - both professionally and for my desktops. Linux is a worthy replacement for the desktop, but Berserkely is an overall more solid server platform.