GNU Coreutils 9.5 Can Yield 10~20% Throughput Boost For cp, mv & cat Commands
While the uutils Rust-written Coreutils effort has been chugging along, the upstream GNU Coreutils effort is showing no signs of slowing down. Out today is GNU Coreutils 9.5 with yet more feature work and bug fixes including a security fix for a chmod issue that's been around since the beginning.
One of the interesting improvements to note with GNU Coreutils 9.5 is that the cp, mv, install, cat, and split commands can now read/write a minimum of 256KiB at a time. Previously there was a 128KiB minimum while this has been doubled in order to enhance the throughput of Coreutils on modern systems. The throughput with Coreutils 9.5 thanks to this change increases by 10~20% when reading cached files on modern systems. The benefit comes from reducing system call overhead. This default I/O size update was last adjusted a decade ago.
GNU Coreutils 9.5 on the security side fixes a race condition with the recursive chmod (chmod -R) where an attacker could replace a traversed file with a symlink to in turn cause chmod to operate on an unintended file. That bug present since the beginning of Coreutils is now fixed.
GNU Coreutils 9.5 also has fixed various warnings when interacting with the CIFS file-system, join and uniq better handle multi-byte characters, tail no longer mishandles input from /proc and /sys file-systems, various new options for different commands, SELinux operations during file copy operations are now more efficient, and tail can now follow multiple processes via repeated "--pid" options.
More details on all of the GNU Coreutils 9.5 changes via the release announcement.
One of the interesting improvements to note with GNU Coreutils 9.5 is that the cp, mv, install, cat, and split commands can now read/write a minimum of 256KiB at a time. Previously there was a 128KiB minimum while this has been doubled in order to enhance the throughput of Coreutils on modern systems. The throughput with Coreutils 9.5 thanks to this change increases by 10~20% when reading cached files on modern systems. The benefit comes from reducing system call overhead. This default I/O size update was last adjusted a decade ago.
GNU Coreutils 9.5 on the security side fixes a race condition with the recursive chmod (chmod -R) where an attacker could replace a traversed file with a symlink to in turn cause chmod to operate on an unintended file. That bug present since the beginning of Coreutils is now fixed.
GNU Coreutils 9.5 also has fixed various warnings when interacting with the CIFS file-system, join and uniq better handle multi-byte characters, tail no longer mishandles input from /proc and /sys file-systems, various new options for different commands, SELinux operations during file copy operations are now more efficient, and tail can now follow multiple processes via repeated "--pid" options.
More details on all of the GNU Coreutils 9.5 changes via the release announcement.
25 Comments