After a long and difficult release cycle, FreeBSD 7.0 has finally hit the virtual shelves. Users have clearly been waiting with high expectations for this release as load on the primary download site tripled many hours before the official announcement was sent. It indeed was worth waiting for, with plenty of new features and upgrades, but also some dramatic performance improvements. ONLamp has a large interview with a number of developers about the new features in 7.0. The highlights from the release announcement:
- Dramatic improvements in performance and SMP scalability shown by various database and other benchmarks, in some cases showing peak performance improvements as high as 350% over FreeBSD 6.X under normal loads and 1500% at high loads. When compared with the best performing Linux kernel (2.6.22 or 2.6.24) performance is 15% better. Results are from benchmarks used to analyze and improve system performance, results with your specific work load may vary. Some of the changes that contribute to this improvement are:
- The 1:1 libthr threading model is now the default.
- Finer-grained IPC, networking, and scheduler locking.
- A major focus on optimizing the SMP architecture that was put in place during the 5.x and 6.x branches.
- Some benchmarks show linear scaling up to 8 CPUs. Many workloads see a significant performance improvement with multicore systems.
- The ULE scheduler is vastly improved, providing improved performance and interactive response (the 4BSD scheduler is still the default for 7.0 but ULE may become the default for 7.1).
- Experimental support for Sun’s ZFS filesystem.
- gjournal can be used to set up journaled filesystems, gvirstor can be used as a virtualized storage provider.
- Read-only support for the XFS filesystem.
- The unionfs filesystem has been fixed.
- iSCSI initiator.
- TSO and LRO support for some network drivers.
- Experimental SCTP (Stream Control Transmission Protocol) support (FreeBSD’s being the reference implementation).
- Much improved wireless (802.11) support.
- Network link aggregation/trunking (lagg(4)) imported from OpenBSD.
- JIT compilation to turn BPF into native code, improving packet capture performance.
- Much improved support for embedded system development for boards based on the ARM architecture.
- jemalloc, a new and highly scalable user-level memory allocator.
- freebsd-update(8) provides officially supported binary upgrades to new releases in addition to security fixes and errata patches.
- X.Org 7.3, KDE 3.5.8, GNOME 2.20.2.
- GNU C compiler 4.2.1.
- BIND 9.4.2.