# vanilla ext3 is fastest fs

## nordic bro

regardless of reading (everywhere) about how (in aggregate) jfs, xfs and reiserfs (r3) are faster than (untweaked) ext3, I'm seeing more or less the opposite (home-type desktop system, ~20G in 15 pgsql dbs, lots of mencoder use, compiling, etc.)

seeing results contrary to virtually everything I've read indicates to me a problem but tbh am running out of things to check.  I'm not averse to continuing using ext3 but was bored and wanted to try some new stuff; and I can take on faith the others are faster but if I figure out why I'm not seeing that, perhaps even ext3 itself runs even better (in my setup).

for each partition I generally created it (lvm), tested on it, deleted, then created a new fs (hoping disc locale would be quasi-consistent but obv I'm just guessing if they really were; however these tests were run over many days and scores of trials so imm in the end everything would more or less even out wrt one group consistently having some unk advantage).

I've run:

pgbench (drop/create before every run, pgsql 8.2.4): 

```

% pgbench -i -s 10 -U pgbench -d pgbench_test

% vacuumdb -U postgres -p 5432 -h localhost -vfzd pgbench_test

% pgbench -c 5 -C -t 10000 -U pgbench -d pgbench_test

```

timed kernel compile (2.6.23): make mrproper/make

dbench (r1.3)

```
% dbench 20 
```

4G file w/r

```

% time sh -c "dd if=/dev/zero of=bigfile bs=8k count=500000 && sync"

% time dd if=bigfile of=/dev/null bs=8k
```

iozone

```

% iozone  -R -l 5 -u 5 -r 4k -s 100m -F /$fs/f1 ... /f5 | tee results.$fs &
```

and finally (automated through a script):

1. cp/unrar a 180M file containing dozens of zips, 

2. create unique subdir for each zip, unzip contents (hundreds of 5k-30k plain text files in each zip)

3. perl parses each text file, creating new ones, creates a subdir moving the new output then deleting orig subdir

4. until each zip has been processed.

in all of the above if ext3 wasn't unquestionably on top, it was only behind by virtually an unmeasurable amt.  in some cases jfs was horrendous wrt ext3, running at 1/2 to 1/3 the throughput (4G dd e.g.; I think I read jfs is poor wrt large files but this seems pretty awful).  on the whole I found jfs was an unmistakable disappointment (except in cpu usage) after reading about the four fs.

so either my (choice of) tests are crap, my expectations were unreasonably high, or what I think, something's wrong in my system.

I use lvm and every test was run on and after creating a sufficiently large partition with plain mkfs.$fs (this includes a fresh ext3, not using one of the many that already existed).

the only mount/fstab opts I used for any of the four were "noatime" (for all) and added "notail" for reiserfs. 

I tried using both a different spindle for jfs/xfs journals and local; mixed in "data=writeback" and "barrier=none" where appropriate (only a few of the tests and for those I did the test was also run w/o).

I also read jfs likes deadline scheduler better so ran all the jfs tests with both cfq and deadline.

this is 2.6.23, e6600 core2, 2G ram, 2G swap, 2 seagate sata hdd; I'm not sure what other info to include.

I use "CONFIG_HZ_1000=y" which I've read can impact i/o but 1) I need it else vmware/wmp11 segfaults (need that for drm crap) and 2) in my setup at least using 300 over 1k doesn't seem to make any difference anyway. 

if any kind soul made it this far, help, please?  :Smile:   problems in cfg, hardware, inappropriateness of tests/testing, anything.  like I said I'm not trying to be a contrarian or pretend like this is exhaustive testing but imm it seems to indicate a problem and I have no idea what.

thanks.

```

...//usr/src > hdparm -Tt /dev/sda

/dev/sda:

 Timing cached reads:   11712 MB in  2.00 seconds = 5859.52 MB/sec

 Timing buffered disk reads:  236 MB in  3.02 seconds =  78.19 MB/sec

...//usr/src > hdparm -Tt /dev/sdb

/dev/sdb:

 Timing cached reads:   12532 MB in  2.00 seconds = 6270.87 MB/sec

 Timing buffered disk reads:  224 MB in  3.02 seconds =  74.25 MB/sec
```

```

...//usr/src > lspci 

00:00.0 Host bridge: Intel Corporation 82P965/G965 Memory Controller Hub (rev 02)

00:01.0 PCI bridge: Intel Corporation 82P965/G965 PCI Express Root Port (rev 02)

00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 02)

00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02)

00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02)

00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)

00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)

00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 02)

00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02)

00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02)

00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02)

00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02)

00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2)

00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller (rev 02)

00:1f.2 SATA controller: Intel Corporation 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller (rev 02)

00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)

01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7600 GT] (rev a1)

03:00.0 SATA controller: JMicron Technologies, Inc. JMB361 AHCI/IDE (rev 02)

03:00.1 IDE interface: JMicron Technologies, Inc. JMB361 AHCI/IDE (rev 02)

04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
```

```

ata1.00: ATA-7: ST3320620AS, 3.AAE, max UDMA/133

ata2.00: ATA-7: ST3250620AS, 3.AAJ, max UDMA/133

scsi 0:0:0:0: Direct-Access     ATA      ST3320620AS      3.AA PQ: 0 ANSI: 5

scsi 1:0:0:0: Direct-Access     ATA      ST3250620AS      3.AA PQ: 0 ANSI: 5

ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pio slum part 

ata1.00: 625142448 sectors, multi 0: LBA48 NCQ (depth 31/32)

ata2.00: 488397168 sectors, multi 0: LBA48 NCQ (depth 31/32)

ahci 0000:03:00.0: flags: 64bit ncq pm led clo pmp pio slum part 

```

```

CONFIG_X86_64=y

CONFIG_64BIT=y

CONFIG_X86=y

CONFIG_GENERIC_TIME=y

CONFIG_GENERIC_TIME_VSYSCALL=y

CONFIG_GENERIC_CMOS_UPDATE=y

CONFIG_ZONE_DMA32=y

CONFIG_LOCKDEP_SUPPORT=y

CONFIG_STACKTRACE_SUPPORT=y

CONFIG_SEMAPHORE_SLEEPERS=y

CONFIG_MMU=y

CONFIG_ZONE_DMA=y

CONFIG_RWSEM_GENERIC_SPINLOCK=y

CONFIG_GENERIC_HWEIGHT=y

CONFIG_GENERIC_CALIBRATE_DELAY=y

CONFIG_X86_CMPXCHG=y

CONFIG_EARLY_PRINTK=y

CONFIG_GENERIC_ISA_DMA=y

CONFIG_GENERIC_IOMAP=y

CONFIG_ARCH_MAY_HAVE_PC_FDC=y

CONFIG_ARCH_POPULATES_NODE_MAP=y

CONFIG_DMI=y

CONFIG_AUDIT_ARCH=y

CONFIG_GENERIC_BUG=y

CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

CONFIG_EXPERIMENTAL=y

CONFIG_LOCK_KERNEL=y

CONFIG_INIT_ENV_ARG_LIMIT=32

CONFIG_LOCALVERSION="_cfq.fs"

CONFIG_LOCALVERSION_AUTO=y

CONFIG_SWAP=y

CONFIG_SYSVIPC=y

CONFIG_SYSVIPC_SYSCTL=y

CONFIG_POSIX_MQUEUE=y

CONFIG_IKCONFIG=y

CONFIG_IKCONFIG_PROC=y

CONFIG_LOG_BUF_SHIFT=15

CONFIG_SYSFS_DEPRECATED=y

CONFIG_BLK_DEV_INITRD=y

CONFIG_INITRAMFS_SOURCE=""

CONFIG_SYSCTL=y

CONFIG_UID16=y

CONFIG_SYSCTL_SYSCALL=y

CONFIG_KALLSYMS=y

CONFIG_HOTPLUG=y

CONFIG_PRINTK=y

CONFIG_BUG=y

CONFIG_ELF_CORE=y

CONFIG_BASE_FULL=y

CONFIG_FUTEX=y

CONFIG_ANON_INODES=y

CONFIG_EPOLL=y

CONFIG_SIGNALFD=y

CONFIG_EVENTFD=y

CONFIG_SHMEM=y

CONFIG_VM_EVENT_COUNTERS=y

CONFIG_SLAB=y

CONFIG_RT_MUTEXES=y

CONFIG_BASE_SMALL=0

CONFIG_MODULES=y

CONFIG_MODULE_UNLOAD=y

CONFIG_MODULE_FORCE_UNLOAD=y

CONFIG_KMOD=y

CONFIG_STOP_MACHINE=y

CONFIG_BLOCK=y

CONFIG_IOSCHED_NOOP=y

CONFIG_IOSCHED_AS=y

CONFIG_IOSCHED_DEADLINE=y

CONFIG_IOSCHED_CFQ=y

CONFIG_DEFAULT_CFQ=y

CONFIG_DEFAULT_IOSCHED="cfq"

CONFIG_X86_PC=y

CONFIG_MCORE2=y

CONFIG_X86_L1_CACHE_BYTES=64

CONFIG_X86_L1_CACHE_SHIFT=6

CONFIG_X86_INTERNODE_CACHE_BYTES=64

CONFIG_X86_TSC=y

CONFIG_X86_GOOD_APIC=y

CONFIG_X86_MSR=y

CONFIG_X86_CPUID=y

CONFIG_X86_HT=y

CONFIG_X86_IO_APIC=y

CONFIG_X86_LOCAL_APIC=y

CONFIG_MTRR=y

CONFIG_SMP=y

CONFIG_SCHED_MC=y

CONFIG_PREEMPT_VOLUNTARY=y

CONFIG_PREEMPT_BKL=y

CONFIG_ARCH_SPARSEMEM_ENABLE=y

CONFIG_ARCH_FLATMEM_ENABLE=y

CONFIG_SELECT_MEMORY_MODEL=y

CONFIG_FLATMEM_MANUAL=y

CONFIG_FLATMEM=y

CONFIG_FLAT_NODE_MEM_MAP=y

CONFIG_SPLIT_PTLOCK_CPUS=4

CONFIG_RESOURCES_64BIT=y

CONFIG_ZONE_DMA_FLAG=1

CONFIG_BOUNCE=y

CONFIG_VIRT_TO_BUS=y

CONFIG_NR_CPUS=2

CONFIG_PHYSICAL_ALIGN=0x200000

CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

CONFIG_HPET_TIMER=y

CONFIG_HPET_EMULATE_RTC=y

CONFIG_IOMMU=y

CONFIG_SWIOTLB=y

CONFIG_X86_MCE=y

CONFIG_X86_MCE_INTEL=y

CONFIG_PHYSICAL_START=0x200000

CONFIG_SECCOMP=y

CONFIG_HZ_1000=y

CONFIG_HZ=1000

CONFIG_K8_NB=y

CONFIG_GENERIC_HARDIRQS=y

CONFIG_GENERIC_IRQ_PROBE=y

CONFIG_ISA_DMA_API=y

CONFIG_GENERIC_PENDING_IRQ=y

CONFIG_PM=y

CONFIG_SUSPEND_SMP_POSSIBLE=y

CONFIG_HIBERNATION_SMP_POSSIBLE=y

CONFIG_ACPI=y

CONFIG_ACPI_PROCFS=y

CONFIG_ACPI_PROC_EVENT=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_FAN=y

CONFIG_ACPI_PROCESSOR=y

CONFIG_ACPI_THERMAL=y

CONFIG_ACPI_BLACKLIST_YEAR=0

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_SYSTEM=y

CONFIG_X86_PM_TIMER=y

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

CONFIG_CPU_FREQ_STAT=y

CONFIG_CPU_FREQ_STAT_DETAILS=y

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_X86_ACPI_CPUFREQ=y

CONFIG_X86_ACPI_CPUFREQ_PROC_INTF=y

CONFIG_PCI=y

CONFIG_PCI_DIRECT=y

CONFIG_PCI_MMCONFIG=y

CONFIG_PCIEPORTBUS=y

CONFIG_PCIEAER=y

CONFIG_ARCH_SUPPORTS_MSI=y

CONFIG_PCI_MSI=y

CONFIG_HT_IRQ=y

CONFIG_BINFMT_ELF=y

CONFIG_BINFMT_MISC=y

CONFIG_IA32_EMULATION=y

CONFIG_IA32_AOUT=y

CONFIG_COMPAT=y

CONFIG_COMPAT_FOR_U64_ALIGNMENT=y

CONFIG_SYSVIPC_COMPAT=y

CONFIG_NET=y

CONFIG_PACKET=y

CONFIG_UNIX=y

CONFIG_XFRM=y

CONFIG_XFRM_USER=m

CONFIG_NET_KEY=y

CONFIG_INET=y

CONFIG_IP_MULTICAST=y

CONFIG_IP_ADVANCED_ROUTER=y

CONFIG_ASK_IP_FIB_HASH=y

CONFIG_IP_FIB_HASH=y

CONFIG_IP_MULTIPLE_TABLES=y

CONFIG_IP_ROUTE_MULTIPATH=y

CONFIG_IP_ROUTE_VERBOSE=y

CONFIG_IP_PNP=y

CONFIG_IP_PNP_DHCP=y

CONFIG_NET_IPIP=m

CONFIG_NET_IPGRE=m

CONFIG_NET_IPGRE_BROADCAST=y

CONFIG_IP_MROUTE=y

CONFIG_IP_PIMSM_V1=y

CONFIG_IP_PIMSM_V2=y

CONFIG_SYN_COOKIES=y

CONFIG_INET_AH=m

CONFIG_INET_ESP=m

CONFIG_INET_IPCOMP=m

CONFIG_INET_XFRM_TUNNEL=m

CONFIG_INET_TUNNEL=m

CONFIG_INET_XFRM_MODE_TRANSPORT=m

CONFIG_INET_XFRM_MODE_TUNNEL=m

CONFIG_INET_XFRM_MODE_BEET=m

CONFIG_INET_DIAG=y

CONFIG_INET_TCP_DIAG=y

CONFIG_TCP_CONG_CUBIC=y

CONFIG_DEFAULT_TCP_CONG="cubic"

CONFIG_NETWORK_SECMARK=y

CONFIG_NETFILTER=y

CONFIG_NETFILTER_DEBUG=y

CONFIG_NETFILTER_NETLINK=m

CONFIG_NETFILTER_NETLINK_QUEUE=m

CONFIG_NETFILTER_NETLINK_LOG=m

CONFIG_NF_CONNTRACK_ENABLED=m

CONFIG_NF_CONNTRACK=m

CONFIG_NF_CT_ACCT=y

CONFIG_NF_CONNTRACK_MARK=y

CONFIG_NF_CONNTRACK_SECMARK=y

CONFIG_NF_CT_PROTO_GRE=m

CONFIG_NF_CONNTRACK_FTP=m

CONFIG_NF_CONNTRACK_IRC=m

CONFIG_NF_CONNTRACK_PPTP=m

CONFIG_NF_CONNTRACK_TFTP=m

CONFIG_NETFILTER_XTABLES=m

CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m

CONFIG_NETFILTER_XT_TARGET_CONNMARK=m

CONFIG_NETFILTER_XT_TARGET_DSCP=m

CONFIG_NETFILTER_XT_TARGET_MARK=m

CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m

CONFIG_NETFILTER_XT_TARGET_NFLOG=m

CONFIG_NETFILTER_XT_TARGET_NOTRACK=m

CONFIG_NETFILTER_XT_TARGET_SECMARK=m

CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m

CONFIG_NETFILTER_XT_TARGET_TCPMSS=m

CONFIG_NETFILTER_XT_MATCH_COMMENT=m

CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m

CONFIG_NETFILTER_XT_MATCH_CONNMARK=m

CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m

CONFIG_NETFILTER_XT_MATCH_DCCP=m

CONFIG_NETFILTER_XT_MATCH_DSCP=m

CONFIG_NETFILTER_XT_MATCH_ESP=m

CONFIG_NETFILTER_XT_MATCH_HELPER=m

CONFIG_NETFILTER_XT_MATCH_LENGTH=m

CONFIG_NETFILTER_XT_MATCH_LIMIT=m

CONFIG_NETFILTER_XT_MATCH_MAC=m

CONFIG_NETFILTER_XT_MATCH_MARK=m

CONFIG_NETFILTER_XT_MATCH_POLICY=m

CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m

CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m

CONFIG_NETFILTER_XT_MATCH_QUOTA=m

CONFIG_NETFILTER_XT_MATCH_REALM=m

CONFIG_NETFILTER_XT_MATCH_SCTP=m

CONFIG_NETFILTER_XT_MATCH_STATE=m

CONFIG_NETFILTER_XT_MATCH_STATISTIC=m

CONFIG_NETFILTER_XT_MATCH_STRING=m

CONFIG_NETFILTER_XT_MATCH_TCPMSS=m

CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m

CONFIG_NF_CONNTRACK_IPV4=m

CONFIG_NF_CONNTRACK_PROC_COMPAT=y

CONFIG_IP_NF_QUEUE=m

CONFIG_IP_NF_IPTABLES=m

CONFIG_IP_NF_MATCH_IPRANGE=m

CONFIG_IP_NF_MATCH_TOS=m

CONFIG_IP_NF_MATCH_RECENT=m

CONFIG_IP_NF_MATCH_ECN=m

CONFIG_IP_NF_MATCH_AH=m

CONFIG_IP_NF_MATCH_TTL=m

CONFIG_IP_NF_MATCH_OWNER=m

CONFIG_IP_NF_MATCH_ADDRTYPE=m

CONFIG_IP_NF_FILTER=m

CONFIG_IP_NF_TARGET_REJECT=m

CONFIG_IP_NF_TARGET_LOG=m

CONFIG_IP_NF_TARGET_ULOG=m

CONFIG_NF_NAT=m

CONFIG_NF_NAT_NEEDED=y

CONFIG_IP_NF_TARGET_MASQUERADE=m

CONFIG_IP_NF_TARGET_REDIRECT=m

CONFIG_IP_NF_TARGET_NETMAP=m

CONFIG_IP_NF_TARGET_SAME=m

CONFIG_NF_NAT_PROTO_GRE=m

CONFIG_NF_NAT_FTP=m

CONFIG_NF_NAT_IRC=m

CONFIG_NF_NAT_TFTP=m

CONFIG_NF_NAT_PPTP=m

CONFIG_IP_NF_MANGLE=m

CONFIG_IP_NF_TARGET_TOS=m

CONFIG_IP_NF_TARGET_ECN=m

CONFIG_IP_NF_TARGET_TTL=m

CONFIG_IP_NF_RAW=m

CONFIG_IP_NF_ARPTABLES=m

CONFIG_IP_NF_ARPFILTER=m

CONFIG_IP_NF_ARP_MANGLE=m

CONFIG_TIPC=m

CONFIG_NET_CLS_ROUTE=y

CONFIG_FIB_RULES=y

CONFIG_STANDALONE=y

CONFIG_PREVENT_FIRMWARE_BUILD=y

CONFIG_FW_LOADER=y

CONFIG_PNP=y

CONFIG_PNPACPI=y

CONFIG_BLK_DEV=y

CONFIG_BLK_DEV_FD=m

CONFIG_BLK_DEV_LOOP=m

CONFIG_BLK_DEV_NBD=m

CONFIG_BLK_DEV_RAM=y

CONFIG_BLK_DEV_RAM_COUNT=16

CONFIG_BLK_DEV_RAM_SIZE=4096

CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024

CONFIG_CDROM_PKTCDVD=m

CONFIG_CDROM_PKTCDVD_BUFFERS=8

CONFIG_SCSI=y

CONFIG_SCSI_DMA=y

CONFIG_SCSI_TGT=m

CONFIG_SCSI_PROC_FS=y

CONFIG_BLK_DEV_SD=y

CONFIG_BLK_DEV_SR=m

CONFIG_CHR_DEV_SG=m

CONFIG_SCSI_MULTI_LUN=y

CONFIG_SCSI_CONSTANTS=y

CONFIG_SCSI_WAIT_SCAN=m

CONFIG_SCSI_SPI_ATTRS=y

CONFIG_ATA=y

CONFIG_ATA_ACPI=y

CONFIG_SATA_AHCI=y

CONFIG_ATA_PIIX=y

CONFIG_PATA_JMICRON=y

CONFIG_MD=y

CONFIG_BLK_DEV_DM=y

CONFIG_DM_CRYPT=m

CONFIG_NETDEVICES=y

CONFIG_DUMMY=m

CONFIG_BONDING=m

CONFIG_EQUALIZER=m

CONFIG_TUN=m

CONFIG_NETDEV_1000=y

CONFIG_E1000=m

CONFIG_R8169=m

CONFIG_NETCONSOLE=m

CONFIG_NETPOLL=y

CONFIG_NET_POLL_CONTROLLER=y

CONFIG_INPUT=y

CONFIG_INPUT_MOUSEDEV=y

CONFIG_INPUT_MOUSEDEV_PSAUX=y

CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024

CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

CONFIG_INPUT_EVDEV=m

CONFIG_INPUT_KEYBOARD=y

CONFIG_KEYBOARD_ATKBD=y

CONFIG_INPUT_MOUSE=y

CONFIG_MOUSE_PS2=y

CONFIG_MOUSE_PS2_ALPS=y

CONFIG_MOUSE_PS2_LOGIPS2PP=y

CONFIG_MOUSE_PS2_SYNAPTICS=y

CONFIG_MOUSE_PS2_LIFEBOOK=y

CONFIG_MOUSE_PS2_TRACKPOINT=y

CONFIG_SERIO=y

CONFIG_SERIO_I8042=y

CONFIG_SERIO_LIBPS2=y

CONFIG_VT=y

CONFIG_VT_CONSOLE=y

CONFIG_HW_CONSOLE=y

CONFIG_SERIAL_8250=y

CONFIG_SERIAL_8250_CONSOLE=y

CONFIG_FIX_EARLYCON_MEM=y

CONFIG_SERIAL_8250_PCI=y

CONFIG_SERIAL_8250_PNP=y

CONFIG_SERIAL_8250_NR_UARTS=4

CONFIG_SERIAL_8250_RUNTIME_UARTS=4

CONFIG_SERIAL_CORE=y

CONFIG_SERIAL_CORE_CONSOLE=y

CONFIG_UNIX98_PTYS=y

CONFIG_HW_RANDOM=y

CONFIG_HW_RANDOM_INTEL=y

CONFIG_HW_RANDOM_AMD=m

CONFIG_NVRAM=m

CONFIG_RTC=y

CONFIG_AGP=y

CONFIG_AGP_AMD64=y

CONFIG_HPET=y

CONFIG_HPET_MMAP=y

CONFIG_DEVPORT=y

CONFIG_I2C=m

CONFIG_I2C_BOARDINFO=y

CONFIG_I2C_CHARDEV=m

CONFIG_I2C_ALGOBIT=m

CONFIG_I2C_I801=m

CONFIG_I2C_I810=m

CONFIG_I2C_NFORCE2=m

CONFIG_SENSORS_EEPROM=m

CONFIG_SENSORS_MAX6875=m

CONFIG_SPI=y

CONFIG_SPI_MASTER=y

CONFIG_SPI_BITBANG=m

CONFIG_HWMON=m

CONFIG_SENSORS_F71882FG=m

CONFIG_SENSORS_CORETEMP=m

CONFIG_VIDEO_OUTPUT_CONTROL=m

CONFIG_FB=y

CONFIG_FB_CFB_FILLRECT=y

CONFIG_FB_CFB_COPYAREA=y

CONFIG_FB_CFB_IMAGEBLIT=y

CONFIG_FB_DEFERRED_IO=y

CONFIG_FB_VESA=y

CONFIG_VGA_CONSOLE=y

CONFIG_VGACON_SOFT_SCROLLBACK=y

CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128

CONFIG_VIDEO_SELECT=y

CONFIG_DUMMY_CONSOLE=y

CONFIG_FRAMEBUFFER_CONSOLE=y

CONFIG_FB_CON_DECOR=y

CONFIG_FONTS=y

CONFIG_FONT_8x16=y

CONFIG_FONT_SUN8x16=y

CONFIG_SOUND=m

CONFIG_SND=m

CONFIG_SND_TIMER=m

CONFIG_SND_PCM=m

CONFIG_SND_SEQUENCER=m

CONFIG_SND_SEQ_DUMMY=m

CONFIG_SND_OSSEMUL=y

CONFIG_SND_MIXER_OSS=m

CONFIG_SND_PCM_OSS=m

CONFIG_SND_PCM_OSS_PLUGINS=y

CONFIG_SND_SEQUENCER_OSS=y

CONFIG_SND_RTCTIMER=m

CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y

CONFIG_SND_SUPPORT_OLD_API=y

CONFIG_SND_VERBOSE_PROCFS=y

CONFIG_SND_HDA_INTEL=m

CONFIG_SND_HDA_CODEC_REALTEK=y

CONFIG_SND_HDA_CODEC_ANALOG=y

CONFIG_SND_HDA_CODEC_SIGMATEL=y

CONFIG_SND_HDA_CODEC_VIA=y

CONFIG_SND_HDA_CODEC_ATIHDMI=y

CONFIG_SND_HDA_CODEC_CONEXANT=y

CONFIG_SND_HDA_CODEC_CMEDIA=y

CONFIG_SND_HDA_CODEC_SI3054=y

CONFIG_SND_HDA_GENERIC=y

CONFIG_HID_SUPPORT=y

CONFIG_HID=y

CONFIG_USB_HID=y

CONFIG_USB_SUPPORT=y

CONFIG_USB_ARCH_HAS_HCD=y

CONFIG_USB_ARCH_HAS_OHCI=y

CONFIG_USB_ARCH_HAS_EHCI=y

CONFIG_USB=y

CONFIG_USB_DEVICEFS=y

CONFIG_USB_DEVICE_CLASS=y

CONFIG_USB_EHCI_HCD=y

CONFIG_USB_OHCI_HCD=y

CONFIG_USB_OHCI_LITTLE_ENDIAN=y

CONFIG_USB_UHCI_HCD=y

CONFIG_USB_PRINTER=m

CONFIG_USB_MON=y

CONFIG_USB_SERIAL=m

CONFIG_USB_SERIAL_GENERIC=y

CONFIG_USB_SERIAL_VISOR=m

CONFIG_DMA_ENGINE=y

CONFIG_NET_DMA=y

CONFIG_INTEL_IOATDMA=m

CONFIG_DMIID=y

CONFIG_EXT2_FS=y

CONFIG_EXT3_FS=y

CONFIG_JBD=y

CONFIG_REISERFS_FS=y

CONFIG_JFS_FS=y

CONFIG_FS_POSIX_ACL=y

CONFIG_INOTIFY=y

CONFIG_INOTIFY_USER=y

CONFIG_DNOTIFY=y

CONFIG_FUSE_FS=m

CONFIG_GENERIC_ACL=y

CONFIG_ISO9660_FS=m

CONFIG_JOLIET=y

CONFIG_ZISOFS=y

CONFIG_UDF_FS=m

CONFIG_UDF_NLS=y

CONFIG_FAT_FS=m

CONFIG_MSDOS_FS=m

CONFIG_VFAT_FS=m

CONFIG_FAT_DEFAULT_CODEPAGE=437

CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"

CONFIG_NTFS_FS=m

CONFIG_PROC_FS=y

CONFIG_PROC_KCORE=y

CONFIG_PROC_SYSCTL=y

CONFIG_SYSFS=y

CONFIG_TMPFS=y

CONFIG_TMPFS_POSIX_ACL=y

CONFIG_RAMFS=y

CONFIG_CIFS=m

CONFIG_MSDOS_PARTITION=y

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="iso8859-1"

CONFIG_NLS_CODEPAGE_437=y

CONFIG_NLS_ASCII=y

CONFIG_NLS_ISO8859_1=y

CONFIG_NLS_ISO8859_15=y

CONFIG_NLS_UTF8=y

CONFIG_TRACE_IRQFLAGS_SUPPORT=y

CONFIG_MAGIC_SYSRQ=y

CONFIG_DEBUG_BUGVERBOSE=y

CONFIG_CRYPTO=y

CONFIG_CRYPTO_ALGAPI=m

CONFIG_CRYPTO_BLKCIPHER=m

CONFIG_CRYPTO_HASH=m

CONFIG_CRYPTO_MANAGER=m

CONFIG_CRYPTO_HMAC=m

CONFIG_CRYPTO_MD5=m

CONFIG_CRYPTO_SHA1=m

CONFIG_CRYPTO_ECB=m

CONFIG_CRYPTO_CBC=m

CONFIG_CRYPTO_PCBC=m

CONFIG_CRYPTO_DES=m

CONFIG_CRYPTO_BLOWFISH=m

CONFIG_CRYPTO_AES=m

CONFIG_CRYPTO_AES_X86_64=m

CONFIG_CRYPTO_DEFLATE=m

CONFIG_CRYPTO_HW=y

CONFIG_BITREVERSE=y

CONFIG_CRC32=y

CONFIG_ZLIB_INFLATE=m

CONFIG_ZLIB_DEFLATE=m

CONFIG_TEXTSEARCH=y

CONFIG_TEXTSEARCH_KMP=m

CONFIG_TEXTSEARCH_BM=m

CONFIG_TEXTSEARCH_FSM=m

CONFIG_PLIST=y

CONFIG_HAS_IOMEM=y

CONFIG_HAS_IOPORT=y

CONFIG_HAS_DMA=y

```

----------

## neuron

 *nordic bro wrote:*   

> regardless of reading (everywhere) about how (in aggregate) jfs, xfs and reiserfs (r3) are faster than (untweaked) ext3, I'm seeing more or less the opposite (home-type desktop system, ~20G in 15 pgsql dbs, lots of mencoder use, compiling, etc.)
> 
> 

 

Well, if you got a weird hd layout (I've had some extremely odd layouts and buffer/io sizes (I can't remember the term for it, long time since I dropped lvm) with lvm, that could be the reason.

Also it could be in the type of tests your running, databases for example can be very sensitive to some filesystems, and are often tweaked for specific filesystems, mencoder I'm assuming your working with very large files (streaming from one place on the disk to another place on the same disk?  That's a very different from streaming from one disk to another disk scenario), compiling is constantly touching a lot of files.

Now in my experience, and I have a lot of it with filesystems

jfs - Unreliable, I've used it in server enviroments, I've seen it crash horribly, and due to that I've moved away from it, so I dont have any data on it anymore.

xfs - good with big files, but only big files, very good with streaming large data stored in the same area on the disk, but needs a UPS.

ext3 - The absolutely horrible fsync performance (not something you'd see on normal tests) make me steer away from it whenever I have a choice.

reiserfsv3 - Unmaintained, so I steer away from it, although I did use it some years back without major issues on a mail server.

ext4 - Unreliable, even though it's marked stable there are known data corruption issues.

reiser4 - Reliable, only filesystem on linux atm worth using that has checksuming support, no known data corruption issues.  I'm shocked that ext4 got marked stable before r4 got in as experimental, and it's unfortunate that the only real reason it's not in is Hans Reiser being a prick (and he was to be fair).

btrfs - Too experimental at this point.

What I would do is try reiser4 with with -o create=ccreg40,compress=lzo1, and if that isn't faster in any small file scenario something is terribly wrong.

Another last idea, what io scheduler are you using?  How fast is the harddrive?  Do you have some funky scheduler tweaks in /etc/conf.d/local.start or something like that?

----------

## kernelOfTruth

 *neuron wrote:*   

> reiserfsv3 - Unmaintained, so I steer away from it, although I did use it some years back without major issues on a mail server.
> 
> 

 

yeah in some way unfortunately   :Sad: 

BUT the guys over at suse are doing a great job of adding fixes and patches   :Razz: 

it's the most stable filesystem from my experience so far - even more stable than reiser4 (if you define stable with data safety and chance of corruption - that is mostly because I've been using it much longer than reiser4)

----------

## nordic bro

thanks for the help

 *neuron wrote:*   

>  *nordic bro wrote:*   regardless of reading (everywhere) about how (in aggregate) jfs, xfs and reiserfs (r3) are faster than (untweaked) ext3, I'm seeing more or less the opposite (home-type desktop system, ~20G in 15 pgsql dbs, lots of mencoder use, compiling, etc.)
> 
>  
> 
> Well, if you got a weird hd layout (I've had some extremely odd layouts and buffer/io sizes (I can't remember the term for it, long time since I dropped lvm) with lvm, that could be the reason.

 

I never used lvm until I set this machine up ~18 months ago; so iirc I followed a gentoo guide to do it (i.e., the 30G partitions I'm pretty sure I read to do that in a howto or something).  sda pv's are one vg and sdb's a second.  sda vg had the most free space so all the tests were sda lv except for the couple where I put the journal on sdb lv.

...//usr/src > fdisk -l /dev/{sda,sdb}

Disk /dev/sda: 320.0 GB, 320072933376 bytes

255 heads, 63 sectors/track, 38913 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14         136      987997+  83  Linux

/dev/sda3             137         745     4891792+  83  Linux

/dev/sda4             746       38913   306584460    5  Extended

/dev/sda5             746        4393    29302528+  8e  Linux LVM

/dev/sda6            4394        8041    29302528+  8e  Linux LVM

/dev/sda7            8042       11689    29302528+  8e  Linux LVM

/dev/sda8           11690       15337    29302528+  8e  Linux LVM

/dev/sda9           15338       18985    29302528+  8e  Linux LVM

/dev/sda10          18986       22633    29302528+  8e  Linux LVM

/dev/sda11          22634       26281    29302528+  8e  Linux LVM

/dev/sda12          26282       29929    29302528+  8e  Linux LVM

/dev/sda13          29930       33577    29302528+  8e  Linux LVM

/dev/sda14          33578       37225    29302528+  8e  Linux LVM

/dev/sda15          37226       38913    13558828+  8e  Linux LVM

Disk /dev/sdb: 250.0 GB, 250059350016 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1        3648    29302528+   7  HPFS/NTFS

/dev/sdb2            3649        4865     9775552+   7  HPFS/NTFS

/dev/sdb3            4866        6082     9775552+  83  Linux

/dev/sdb4            6083       30401   195342367+   5  Extended

/dev/sdb5            6083        6326     1959898+  83  Linux

/dev/sdb6            6327        6594     2152678+  82  Linux swap / Solaris

/dev/sdb7            6595       10242    29302528+  8e  Linux LVM

/dev/sdb8           10243       13890    29302528+  8e  Linux LVM

/dev/sdb9           13891       17538    29302528+  8e  Linux LVM

/dev/sdb10          17539       21186    29302528+  8e  Linux LVM

/dev/sdb11          21187       24834    29302528+  8e  Linux LVM

/dev/sdb12          24835       28482    29302528+  8e  Linux LVM

/dev/sdb13          28483       30401    15414336   8e  Linux LVM

 *Quote:*   

> 
> 
> reiser4 - Reliable, only filesystem on linux atm worth using that has checksuming support, no known data corruption issues.  I'm shocked that ext4 got marked stable before r4 got in as experimental, and it's unfortunate that the only real reason it's not in is Hans Reiser being a prick (and he was to be fair).

 

I was interested in trying r4 but the first wiki I found (in bold red) said something like "DANGEROUS - EXPERIMENTAL; YOU WILL LOSE DATA"  - maybe I need to find another wiki.  :Smile: 

for various reasons I'd like to stick with 2.6.23 (kernel.org fwiw) so iyo do you think the 2.6.23 r4 patch is reasonably safe wrt data integrity and whatnot?  or too old?

 *Quote:*   

> 
> 
> Another last idea, what io scheduler are you using?  How fast is the harddrive?  Do you have some funky scheduler tweaks in /etc/conf.d/local.start or something like that?

 

I've used as in the past but for these tests only cfq and deadline (just a seat-of-the-pants thing that in my spot as seemed no better than deadline so didn't think to try in the tests).

hdd are 7200 rpm (Barracuda 7200.10 SATA 3.0Gb/s, 16M cache and based on seagate's tech sheet wrt hdparm the drives seem to be running at full blast)

nothing of significance in local.start (or grub.conf for that matter)

----------

## neuron

 *nordic bro wrote:*   

>  *Quote:*   
> 
> reiser4 - Reliable, only filesystem on linux atm worth using that has checksuming support, no known data corruption issues.  I'm shocked that ext4 got marked stable before r4 got in as experimental, and it's unfortunate that the only real reason it's not in is Hans Reiser being a prick (and he was to be fair). 
> 
> I was interested in trying r4 but the first wiki I found (in bold red) said something like "DANGEROUS - EXPERIMENTAL; YOU WILL LOSE DATA"  - maybe I need to find another wiki. 
> ...

 

That'd be quite old information.

 *nordic bro wrote:*   

> for various reasons I'd like to stick with 2.6.23 (kernel.org fwiw) so iyo do you think the 2.6.23 r4 patch is reasonably safe wrt data integrity and whatnot?  or too old?
> 
> 

 

I wouldn't trust my data to an experimental filesystem with patches that old no.

I'm a little bit confused with your lvm setup, you should never have more than 1 lvm partition on any drive, and then split it up under that.

----------

## nordic bro

 *neuron wrote:*   

> I'm a little bit confused with your lvm setup, you should never have more than 1 lvm partition on any drive, and then split it up under that.

 

I was following this when learning lvm: http://www.gentoo.org/doc/en/lvm2.xml.  about a 1/3 of the way down in a green box:

 *Quote:*   

> Note: Considering the huge size of current disks, you might consider splitting your hard disks into smaller partitions instead of creating a big partition ... As an example, one contributor had split his 160 Gb hard disk into 8 partitions of 20 Gb each.

 

so after I carved up my discs, in lvm I added each 30G sda pv (in order if it matters) to vg "lvga" and sdb pv's to vg "lvgb" (so lvga is a monolithic 292G, lvgb 182G; every test of every fs was run from one of these vg's on lv's of 10G and 20G).

but now with you mentioning odd layouts I'm starting to wonder if any single one of my lv's is perhaps being spread across the disc to some extent, where excessive disc head movement is acting like a big equalizer?  does lvm do that kind of thing?  I always just assumed lv's were more or less contiguous disc space (incl when they might cross into the next pv).  there's lots of pv* and lv* cmds but tbh I don't know enough to figure out if they tell me what part(s) of a disc physically one lv uses.   (I have very little free space on either drive so it would be painful to redo the discs unless I absolutely knew I had to.)

you also have me wondering, if someone of your expertise doesn't use lvm is it because there's a better alternative?  iirc there was some 15 partition hard limit and maybe I'm anal but it bugs me to need only a 2G partition and have to use a 30G partition to get it  :Smile: 

----------

## neuron

they are supposed to be contiguous, but they can fragment, which is why I moved away from it.

And do you really need that many partitions?  I have multiple drives personally, and the partition limit has never really been an issue.  But I do all my testing in virtualbox/vmware/a dedicated box, I dont reboot into them.

----------

