Tuning and monitoring write intensive server
vladilen.kozin at gmail.com
Sat Feb 6 16:45:25 UTC 2021
I have a rather niche and specific task I'm trying to tune for my
recently acquired homelab server. Easily parallelized, extremely disk
IO (write) intensive. If having read this you think it belongs in
freebsd-questions, kindly tell me so.
I've not used FreeBSD for 20 years, so I'm not up to speed with the
lay of the land, any guidance be welcome.
Machine is SuperMicro CSE-216, 24 SAS 10K spinners, backplane daughter
card connected to LSI SAS9211-8i HBA with two wires, two XEON CPUs 12
cores each for a total of 24, 128GB RAM.
Surprisingly both Ubuntu Server and Fedora server choked at install
trying to write to those disks. Seems like they have mostly standard
block size but maybe they were somehow write protected (server is
obviously not new off of Ebay). Anyhow, FreeBSD ate it like a champ so
here I am.
Freshly installed 12.2-release, all disks UFS, no RAID so each disk is
its own thing. Like I mentioned very specific task, be running as many
processes as there are cores (so 24 each consuming 2 threads - does
FBSD allow hyperthreading?) each writing to its dedicated disk - no
other process will ever touch another process's disk. This is what I'm
trying to optimize for.
So, given that info what are the things you think I should optimize
(if anything), what tools do I have available for that and should try
on FreeBSD. E.g. maybe I should be particular how I partition or
format those disks, or the way I mount them, or the way I run my
processes etc. ATM I've followed the Handbook - nothing at all fancy
FWIW here're the disks in question:
sudo diskinfo -v da1
512 # sectorsize
900185481216 # mediasize in bytes (838G)
1758174768 # mediasize in sectors
0 # stripesize
0 # stripeoffset
109441 # Cylinders according to firmware.
255 # Heads according to firmware.
63 # Sectors according to firmware.
IBM-207x ST900MM0006 # Disk descr.
id1,enc at n500304800169193d/type at 0/slot at 2/elmdesc at Slot_02 #
No # TRIM/UNMAP support
10500 # Rotation rate in RPM
Not_Zoned # Zone Mode
Related, what metrics I should and can collect and track and what
tools does FreeBSD give me to do so. Great if those are end user ready
tools with UI etc, but I am good enough programmer to script things to
get what I want - no issue.
Task non-specific question is how to best manage and monitor that
SuperMicro and again what tools FreeBSD gives me. But that probably
belongs in freebsd-questions. SM IPMI gave me a head start but it is
clunky to say the least. ATM I'm going over SSH but I probably do
want to monitor server health somehow.
More information about the freebsd-performance