I use databases/mysql50-{client,server}
and use benchmarks/super-smack
to test. There are 3*2*2*2 = 24 cases:
- Compile options: none,
WITH_PROC_SCOPE_PTH=yes
,WITH_LINUXTHREADS=yes
/etc/libmap.conf
: none (libpthread
),libthr
kern.timecounter.choice
:ACPI-fast
,TSC
- kernel:
ULE
+PREEMPTION
,ULE
These benchmarking were tested on my laptop (IBM x31 2672-IQV, Pentium-M 1.5G with 512MB RAM), and powerd
was disabled. Detail informations (dmesg, sysctl, and kernel config file) will post later.
The commands are:
for i in 1 2 3 4 5; do super-smack select-key.smack 10 1000 | grep select_index; done
for i in 1 2 3 4 5; do super-smack update-select.smack 10 1000 | grep select_index; done
mysql-linuxthreads-libpthread-acpifast-ule+pre.txt
select_index 20000 0 0 14097.47 select_index 20000 0 0 13741.43 select_index 20000 1 0 13704.01 select_index 20000 0 0 13626.05 select_index 20000 0 0 13769.32 select_index 10000 2 0 1891.63 select_index 10000 2 0 1758.65 select_index 10000 2 0 1836.00 select_index 10000 4 0 2058.71 select_index 10000 14 0 2050.05
mysql-linuxthreads-libpthread-acpifast-ule.txt
select_index 20000 1 0 12478.07 select_index 20000 0 0 13340.34 select_index 20000 1 0 13402.94 select_index 20000 0 0 13427.98 select_index 20000 0 0 13516.95 select_index 10000 2 0 3005.60 select_index 10000 2 0 3286.45 select_index 10000 2 0 3289.58 select_index 10000 3 0 3300.75 select_index 10000 3 0 3270.95
mysql-linuxthreads-libpthread-tsc-ule+pre.txt
select_index 20000 1 0 13638.09 select_index 20000 1 0 15204.89 select_index 20000 0 0 15126.16 select_index 20000 1 0 15199.22 select_index 20000 1 0 15111.09 select_index 10000 2 0 2079.97 select_index 10000 2 0 1914.26 select_index 10000 2 0 2154.83 select_index 10000 2 0 2089.02 select_index 10000 3 0 2151.76
mysql-linuxthreads-libpthread-tsc-ule.txt
select_index 20000 1 0 13799.12 select_index 20000 0 0 15007.75 select_index 20000 1 0 15016.11 select_index 20000 0 0 15021.71 select_index 20000 1 0 15034.78 select_index 10000 1 0 3561.01 select_index 10000 1 0 3554.91 select_index 10000 1 0 3554.55 select_index 10000 1 0 3563.48 select_index 10000 2 0 3521.84
mysql-linuxthreads-libthr-acpifast-ule+pre.txt
select_index 20000 0 0 12332.69 select_index 20000 0 0 13531.45 select_index 20000 1 0 13578.15 select_index 20000 0 0 13571.15 select_index 20000 1 0 13625.20 select_index 10000 2 0 1571.96 select_index 10000 2 0 2105.13 select_index 10000 3 0 2080.75 select_index 10000 3 0 2041.60 select_index 10000 3 0 2075.76
mysql-linuxthreads-libthr-acpifast-ule.txt
select_index 20000 1 0 12475.24 select_index 20000 1 0 13450.59 select_index 20000 1 0 13417.97 select_index 20000 1 0 13412.57 select_index 20000 2 0 13383.80 select_index 10000 2 0 3332.96 select_index 10000 2 0 3320.67 select_index 10000 1 0 3038.21 select_index 10000 2 0 3313.98 select_index 10000 1 0 3306.03
mysql-linuxthreads-libthr-tsc-ule+pre.txt
select_index 20000 0 0 13663.00 select_index 20000 0 0 15213.64 select_index 20000 1 0 15042.29 select_index 20000 1 0 15174.39 select_index 20000 1 0 15243.04 select_index 10000 32 0 1774.45 select_index 10000 2 0 2226.37 select_index 10000 1 0 2190.76 select_index 10000 2 0 1863.09 select_index 10000 3 0 2109.35
mysql-linuxthreads-libthr-tsc-ule.txt
select_index 20000 0 0 13818.04 select_index 20000 1 0 15044.14 select_index 20000 1 0 14952.98 select_index 20000 1 0 14997.97 select_index 20000 1 0 14994.28 select_index 10000 1 0 3559.50 select_index 10000 2 0 3555.00 select_index 10000 1 0 3551.69 select_index 10000 1 0 3544.28 select_index 10000 1 0 3558.09
mysql-none-libpthread-acpifast-ule+pre.txt
select_index 20000 1 0 12365.81 select_index 20000 0 0 13426.82 select_index 20000 0 0 13431.42 select_index 20000 1 0 13524.88 select_index 20000 1 0 13461.60 select_index 10000 3 0 2174.06 select_index 10000 1 0 2203.14 select_index 10000 6 0 1965.83 select_index 10000 2 0 1750.57 select_index 10000 2 0 2250.18
mysql-none-libpthread-acpifast-ule.txt
select_index 20000 1 0 12489.77 select_index 20000 1 0 13491.79 select_index 20000 0 0 13525.43 select_index 20000 0 0 13523.64 select_index 20000 1 0 13431.96 select_index 10000 2 0 3081.10 select_index 10000 1 0 3080.20 select_index 10000 3 0 3090.05 select_index 10000 1 0 3098.17 select_index 10000 2 0 3084.23
mysql-none-libpthread-tsc-ule+pre.txt
select_index 20000 1 0 13352.18 select_index 20000 1 0 14704.85 select_index 20000 1 0 14608.26 select_index 20000 1 0 14798.53 select_index 20000 0 0 14689.70 select_index 10000 0 0 2142.89 select_index 10000 1 0 2234.18 select_index 10000 1 0 2179.86 select_index 10000 2 0 2170.27 select_index 10000 1 0 2265.08
mysql-none-libpthread-tsc-ule.txt
select_index 20000 1 0 13656.62 select_index 20000 1 0 14898.67 select_index 20000 1 0 14752.02 select_index 20000 2 0 14852.14 select_index 20000 1 0 14837.82 select_index 10000 1 0 3007.47 select_index 10000 2 0 3229.50 select_index 10000 2 0 3224.31 select_index 10000 1 0 3231.67 select_index 10000 3 0 3227.73
mysql-none-libthr-acpifast-ule+pre.txt
select_index 20000 1 0 13554.22 select_index 20000 0 0 14843.70 select_index 20000 1 0 14866.88 select_index 20000 0 0 14887.39 select_index 20000 1 0 14928.93 select_index 10000 1 0 1629.05 select_index 10000 2 0 2236.91 select_index 10000 15 0 2309.37 select_index 10000 2 0 2165.72 select_index 10000 27 0 2159.57
mysql-none-libthr-acpifast-ule.txt
select_index 20000 1 0 13658.64 select_index 20000 1 0 14971.77 select_index 20000 1 0 14956.40 select_index 20000 0 0 14981.85 select_index 20000 1 0 14999.37 select_index 10000 2 0 3457.10 select_index 10000 2 0 3471.44 select_index 10000 1 0 3461.68 select_index 10000 1 0 3467.51 select_index 10000 1 0 3464.31
mysql-none-libthr-tsc-ule+pre.txt
select_index 20000 2 0 14777.00 select_index 20000 0 0 16435.89 select_index 20000 1 0 16594.25 select_index 20000 1 0 16396.86 select_index 20000 1 0 16459.05 select_index 10000 1 0 2231.66 select_index 10000 1 0 2167.76 select_index 10000 1 0 2196.55 select_index 10000 1 0 2206.77 select_index 10000 2 0 2339.63
mysql-none-libthr-tsc-ule.txt
select_index 20000 0 0 15248.38 select_index 20000 1 0 16618.56 select_index 20000 1 0 16648.67 select_index 20000 0 0 16538.45 select_index 20000 1 0 16674.13 select_index 10000 1 0 3666.43 select_index 10000 3 0 3674.07 select_index 10000 2 0 3686.61 select_index 10000 1 0 3677.49 select_index 10000 2 0 3675.10
mysql-pth-libpthread-acpifast-ule+pre.txt
select_index 20000 0 0 9851.83 select_index 20000 1 0 10051.59 select_index 20000 1 0 10078.66 select_index 20000 1 0 10004.09 select_index 20000 1 0 10079.65 select_index 10000 1 0 1666.05 select_index 10000 2 0 1984.58 select_index 10000 2 0 1898.87 select_index 10000 2 0 1966.90 select_index 10000 4 1 1874.67
mysql-pth-libpthread-acpifast-ule.txt
select_index 20000 1 0 9485.41 select_index 20000 1 0 10073.52 select_index 20000 1 0 10113.77 select_index 20000 1 0 10104.63 select_index 20000 2 0 10107.14 select_index 10000 2 0 2568.85 select_index 10000 1 0 2579.42 select_index 10000 2 0 2564.46 select_index 10000 1 0 2561.09 select_index 10000 1 0 2443.52
mysql-pth-libpthread-tsc-ule+pre.txt
select_index 20000 0 0 11129.51 select_index 20000 1 0 12125.62 select_index 20000 1 0 12108.58 select_index 20000 1 0 12148.99 select_index 20000 1 0 12142.83 select_index 10000 1 0 1769.50 select_index 10000 2 0 1961.15 select_index 10000 3 0 2132.04 select_index 10000 2 0 2175.26 select_index 10000 1 0 1964.11
mysql-pth-libpthread-tsc-ule.txt
select_index 20000 0 0 11282.64 select_index 20000 1 0 12221.35 select_index 20000 1 0 12176.64 select_index 20000 0 0 12207.59 select_index 20000 1 0 12196.39 select_index 10000 2 0 2850.48 select_index 10000 2 0 2847.16 select_index 10000 3 1 2839.71 select_index 10000 2 0 2846.03 select_index 10000 2 0 2854.38
mysql-pth-libthr-acpifast-ule+pre.txt
select_index 20000 1 0 13539.93 select_index 20000 1 0 14858.06 select_index 20000 1 0 15031.06 select_index 20000 0 0 14944.30 select_index 20000 1 0 14939.87 select_index 10000 1 0 1803.10 select_index 10000 1 0 2196.92 select_index 10000 1 0 2315.69 select_index 10000 1 0 2304.67 select_index 10000 6 0 2309.06
mysql-pth-libthr-acpifast-ule.txt
select_index 20000 1 0 13754.94 select_index 20000 1 0 14948.38 select_index 20000 1 0 15003.24 select_index 20000 1 0 14971.17 select_index 20000 0 0 14886.27 select_index 10000 1 0 3420.30 select_index 10000 1 0 3270.71 select_index 10000 2 0 3416.76 select_index 10000 2 0 3443.20 select_index 10000 2 0 3423.75
mysql-pth-libthr-tsc-ule+pre.txt
select_index 20000 0 0 14755.44 select_index 20000 0 0 16653.00 select_index 20000 1 0 16646.08 select_index 20000 1 0 16471.75 select_index 20000 1 0 16591.78 select_index 10000 1 0 2181.36 select_index 10000 1 0 2195.38 select_index 10000 1 0 2153.20 select_index 10000 1 0 2006.63 select_index 10000 2 0 2444.98
mysql-pth-libthr-tsc-ule.txt
select_index 20000 0 0 15189.03 select_index 20000 0 0 16818.74 select_index 20000 0 0 16624.18 select_index 20000 1 0 16792.51 select_index 20000 1 0 16731.49 select_index 10000 1 0 3652.88 select_index 10000 1 0 3685.77 select_index 10000 2 0 3670.86 select_index 10000 1 0 3665.19 select_index 10000 1 0 2843.89
my.cnf
:
[mysqld] skip-innodb skip-bdb safe-user-create skip-name-resolve skip-log-warnings safe-show-database set-variable = flush_time=86400 set-variable = max_connections=300 set-variable = max_connect_errors=100 set-variable = interactive_timeout=600 set-variable = wait_timeout=60 set-variable = myisam-recover=FORCE set-variable = key_buffer_size=128M set-variable = sort_buffer_size=1M set-variable = read_buffer_size=512k set-variable = table_cache=4096 set-variable = max_delayed_threads=0 set-variable = max_user_connections=100 set-variable = query_cache_size=128M set-variable = thread_cache_size=50 [mysql.server] user=mysql [safe_mysqld] err-log=/var/log/mysql/error.log
dmesg:
Copyright (c) 1992-2005 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 6.0-STABLE #7: Mon Dec 12 11:59:54 CST 2005 root@gslinnb.csie.NCTU.edu.tw:/usr/obj/usr/src/sys/KERNEL Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Pentium(R) M processor 1500MHz (1498.73-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x695 Stepping = 5 Features=0xa7e9f9bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,TM,PBE> Features2=0x180<EST,TM2> real memory = 536215552 (511 MB) avail memory = 515358720 (491 MB) npx0: [FAST] npx0: <math processor> on motherboard npx0: INT 16 interface acpi0: <IBM TP-1Q> on motherboard acpi_ec0: <Embedded Controller: GPE 0x1c, ECDT> port 0x62,0x66 on acpi0 acpi0: Power Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0 cpu0: <ACPI CPU> on acpi0 acpi_perf0: <ACPI CPU Frequency Control> on cpu0 acpi_throttle0: <ACPI CPU Throttling> on cpu0 acpi_lid0: <Control Method Lid Switch> on acpi0 acpi_button0: <Sleep Button> on acpi0 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 pci0: <ACPI PCI bus> on pcib0 agp0: <Intel 82855 host to AGP bridge> mem 0xd0000000-0xdfffffff at device 0.0 on pci0 pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0 pci1: <ACPI PCI bus> on pcib1 acpi_video0: <ACPI video extension> port 0x3000-0x30ff mem 0xe0000000-0xe7ffffff,0xc0100000-0xc010ffff irq 11 at device 0.0 on pci1 uhci0: <Intel 82801DB (ICH4) USB controller USB-A> port 0x1800-0x181f irq 11 at device 29.0 on pci0 uhci0: [GIANT-LOCKED] usb0: <Intel 82801DB (ICH4) USB controller USB-A> on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhci1: <Intel 82801DB (ICH4) USB controller USB-B> port 0x1820-0x183f irq 11 at device 29.1 on pci0 uhci1: [GIANT-LOCKED] usb1: <Intel 82801DB (ICH4) USB controller USB-B> on uhci1 usb1: USB revision 1.0 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered uhci2: <Intel 82801DB (ICH4) USB controller USB-C> port 0x1840-0x185f irq 11 at device 29.2 on pci0 uhci2: [GIANT-LOCKED] usb2: <Intel 82801DB (ICH4) USB controller USB-C> on uhci2 usb2: USB revision 1.0 uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub2: 2 ports with 2 removable, self powered ehci0: <Intel 82801DB/DBL/DBM (ICH4) USB 2.0 controller> mem 0xc0000000-0xc00003ff irq 11 at device 29.7 on pci0 ehci0: [GIANT-LOCKED] usb3: EHCI version 1.0 usb3: companion controllers, 2 ports each: usb0 usb1 usb2 usb3: <Intel 82801DB/DBL/DBM (ICH4) USB 2.0 controller> on ehci0 usb3: USB revision 2.0 uhub3: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1 uhub3: 6 ports with 6 removable, self powered pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0 pci2: <ACPI PCI bus> on pcib2 pci2: <bridge, PCI-CardBus> at device 0.0 (no driver attached) pci2: <bridge, PCI-CardBus> at device 0.1 (no driver attached) pci2: <serial bus, FireWire> at device 0.2 (no driver attached) ipw0: <Intel(R) PRO/Wireless 2100 MiniPCI> mem 0xc0200000-0xc0200fff irq 11 at device 2.0 on pci2 ipw0: Ethernet address: 00:0c:f1:32:b2:92 fxp0: <Intel 82801DB (ICH4) Pro/100 VE Ethernet> port 0x8000-0x803f mem 0xc0201000-0xc0201fff irq 11 at device 8.0 on pci2 miibus0: <MII bus> on fxp0 inphy0: <i82562ET 10/100 media interface> on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto fxp0: Ethernet address: 00:0d:60:8f:05:50 isab0: <PCI-ISA bridge> at device 31.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel ICH4 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1860-0x186f at device 31.1 on pci0 ata0: <ATA channel 0> on atapci0 ata1: <ATA channel 1> on atapci0 pci0: <serial bus, SMBus> at device 31.3 (no driver attached) pcm0: <Intel ICH4 (82801DB)> port 0x1c00-0x1cff,0x18c0-0x18ff mem 0xc0000c00-0xc0000dff,0xc0000800-0xc00008ff irq 11 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Analog Devices AD1981B AC97 Codec> pci0: <simple comms, generic modem> at device 31.6 (no driver attached) acpi_tz0: <Thermal Zone> on acpi0 atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: model Generic PS/2 mouse, device ID 0 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0: configured irq 3 not in bitmap of probed irqs 0 sio0: port may not be enabled battery0: <ACPI Control Method Battery> on acpi0 acpi_acad0: <AC Adapter> on acpi0 acpi_ibm0: <IBM ThinkPad ACPI Extras> on acpi0 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0: configured irq 3 not in bitmap of probed irqs 0 sio0: port may not be enabled pmtimer0 on isa0 orm0: <ISA Option ROMs> at iomem 0xd0000-0xd0fff,0xd1000-0xd1fff,0xdc000-0xdffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio1: configured irq 3 not in bitmap of probed irqs 0 sio1: port may not be enabled ums0: Logitech Optical USB Mouse, rev 2.00/3.40, addr 2, iclass 3/1 ums0: 3 buttons and Z dir. Timecounter "TSC" frequency 1498732909 Hz quality 800 Timecounters tick every 1.000 msec ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding enabled, default to accept, logging disabled ad0: 34791MB <IC25N040ATMR04 0 MO2OAD4A> at ata0-master UDMA100 Trying to mount root from ufs:/dev/ad0s1a ipw0: Please load firmware ipw0: link state changed to UP
The kernel config file (diff -ruN with /sys/i386/conf/GENERIC)
--- /sys/i386/conf/GENERIC Sun Oct 30 03:08:44 2005 +++ KERNEL Mon Dec 12 14:15:41 2005 @@ -16,40 +16,28 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.429.2.3.2.1 2005/10/28 19:22:41 jhb Exp $ +# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.429.2.4 2005/10/28 19:21:27 jhb Exp $ machine i386 -cpu I486_CPU -cpu I586_CPU cpu I686_CPU ident GENERIC # To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. -makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols -#options SCHED_ULE # ULE scheduler -options SCHED_4BSD # 4BSD scheduler -options PREEMPTION # Enable kernel thread preemption +options SCHED_ULE # ULE scheduler +#options SCHED_4BSD # 4BSD scheduler +#options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists options UFS_DIRHASH # Improve performance on big directories -options MD_ROOT # MD is a potential root device -options NFSCLIENT # Network Filesystem Client -options NFSSERVER # Network Filesystem Server -options NFS_ROOT # NFS usable as /, requires NFSCLIENT -options MSDOSFS # MSDOS Filesystem -options CD9660 # ISO 9660 Filesystem -options PROCFS # Process filesystem (requires PSEUDOFS) -options PSEUDOFS # Pseudo-filesystem framework options GEOM_GPT # GUID Partition Tables. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] -options COMPAT_FREEBSD4 # Compatible with FreeBSD4 -options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory @@ -57,80 +45,32 @@ options SYSVSEM # SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev -options AHC_REG_PRETTY_PRINT # Print register bitfields in debug - # output. Adds ~128k to driver. -options AHD_REG_PRETTY_PRINT # Print register bitfields in debug - # output. Adds ~215k to driver. options ADAPTIVE_GIANT # Giant mutex is adaptive. +options AUTO_EOI_1 +options DDB +options DUMMYNET +options IPFIREWALL +options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPFIREWALL_FORWARD +options KDB +options NMBCLUSTERS=16384 +options PQ_CACHESIZE=1024 + device apic # I/O APIC # Bus support. device eisa device pci -# Floppy drives -device fdc - # ATA and ATAPI devices device ata device atadisk # ATA disk drives -device ataraid # ATA RAID drives -device atapicd # ATAPI CDROM drives -device atapifd # ATAPI floppy drives -device atapist # ATAPI tape drives options ATA_STATIC_ID # Static device numbering -# SCSI Controllers -device ahb # EISA AHA1742 family -device ahc # AHA2940 and onboard AIC7xxx devices -device ahd # AHA39320/29320 and onboard AIC79xx devices -device amd # AMD 53C974 (Tekram DC-390(T)) -device isp # Qlogic family -#device ispfw # Firmware for QLogic HBAs- normally a module -device mpt # LSI-Logic MPT-Fusion -#device ncr # NCR/Symbios Logic -device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') -device trm # Tekram DC395U/UW/F DC315U adapters - -device adv # Advansys SCSI adapters -device adw # Advansys wide SCSI adapters -device aha # Adaptec 154x SCSI adapters -device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. -device bt # Buslogic/Mylex MultiMaster SCSI adapters - -device ncv # NCR 53C500 -device nsp # Workbit Ninja SCSI-3 -device stg # TMC 18C30/18C50 - # SCSI peripherals device scbus # SCSI bus (required for SCSI) -device ch # SCSI media changers device da # Direct Access (disks) -device sa # Sequential Access (tape etc) -device cd # CD -device pass # Passthrough device (direct SCSI access) -device ses # SCSI Environmental Services (and SAF-TE) - -# RAID controllers interfaced to the SCSI subsystem -device amr # AMI MegaRAID -device arcmsr # Areca SATA II RAID -device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID -device ciss # Compaq Smart RAID 5* -device dpt # DPT Smartcache III, IV - See NOTES for options -device hptmv # Highpoint RocketRAID 182x -device iir # Intel Integrated RAID -device ips # IBM (Adaptec) ServeRAID -device mly # Mylex AcceleRAID/eXtremeRAID -device twa # 3ware 9000 series PATA/SATA RAID - -# RAID controllers -device aac # Adaptec FSA RAID -device aacp # SCSI passthrough for aac (requires CAM) -device ida # Compaq Smart RAID -device mlx # Mylex DAC960 family -device pst # Promise Supertrak SX6000 -device twe # 3ware ATA RAID # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller @@ -139,8 +79,6 @@ device vga # VGA video card driver -device splash # Splash screen and screen saver support - # syscons is the default console driver, resembling an SCO console device sc @@ -149,131 +87,25 @@ #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor -device agp # support several AGP chipsets - # Power management support (see NOTES for more options) #device apm # Add suspend/resume support for the i8254. device pmtimer -# PCCARD (PCMCIA) support -# PCMCIA and cardbus bridge support -device cbb # cardbus (yenta) bridge -device pccard # PC Card (16-bit) bus -device cardbus # CardBus (32-bit) bus - -# Serial (COM) ports -device sio # 8250, 16[45]50 based serial ports - -# Parallel port -device ppc -device ppbus # Parallel port bus (required) -device lpt # Printer -device plip # TCP/IP over parallel -device ppi # Parallel port interface device -#device vpo # Requires scbus and da - # If you've got a "dumb" serial or parallel PCI card that is # supported by the puc(4) glue driver, uncomment the following # line to enable it (connects to the sio and/or ppc drivers): #device puc -# PCI Ethernet NICs. -device de # DEC/Intel DC21x4x (``Tulip'') -device em # Intel PRO/1000 adapter Gigabit Ethernet Card -device ixgb # Intel PRO/10GbE Ethernet Card -device txp # 3Com 3cR990 (``Typhoon'') -device vx # 3Com 3c590, 3c595 (``Vortex'') - -# PCI Ethernet NICs that use the common MII bus controller code. -# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! -device miibus # MII bus support -device bfe # Broadcom BCM440x 10/100 Ethernet -device bge # Broadcom BCM570xx Gigabit Ethernet -device dc # DEC/Intel 21143 and various workalikes -device fxp # Intel EtherExpress PRO/100B (82557, 82558) -device lge # Level 1 LXT1001 gigabit Ethernet -device nge # NatSemi DP83820 gigabit Ethernet -device nve # nVidia nForce MCP on-board Ethernet Networking -device pcn # AMD Am79C97x PCI 10/100(precedence over 'lnc') -device re # RealTek 8139C+/8169/8169S/8110S -device rl # RealTek 8129/8139 -device sf # Adaptec AIC-6915 (``Starfire'') -device sis # Silicon Integrated Systems SiS 900/SiS 7016 -device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet -device ste # Sundance ST201 (D-Link DFE-550TX) -device ti # Alteon Networks Tigon I/II gigabit Ethernet -device tl # Texas Instruments ThunderLAN -device tx # SMC EtherPower II (83c170 ``EPIC'') -device vge # VIA VT612x gigabit Ethernet -device vr # VIA Rhine, Rhine II -device wb # Winbond W89C840F -device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') - -# ISA Ethernet NICs. pccard NICs included. -device cs # Crystal Semiconductor CS89x0 NIC -# 'device ed' requires 'device miibus' -device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards -device ex # Intel EtherExpress Pro/10 and Pro/10+ -device ep # Etherlink III based cards -device fe # Fujitsu MB8696x based cards -device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. -device lnc # NE2100, NE32-VL Lance Ethernet cards -device sn # SMC's 9000 series of Ethernet chips -device xe # Xircom pccard Ethernet - # ISA devices that use the old ISA shims #device le -# Wireless NIC cards -device wlan # 802.11 support -device an # Aironet 4500/4800 802.11 wireless NICs. -device awi # BayStack 660 and others -device ral # Ralink Technology RT2500 wireless NICs. -device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. -#device wl # Older non 802.11 Wavelan wireless NIC. - # Pseudo devices. device loop # Network loopback -device random # Entropy device device ether # Ethernet support -device sl # Kernel SLIP -device ppp # Kernel PPP -device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) -device md # Memory "disks" -device gif # IPv6 and IPv4 tunneling -device faith # IPv6-to-IPv4 relaying (translation) # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter - -# USB support -device uhci # UHCI PCI->USB interface -device ohci # OHCI PCI->USB interface -device ehci # EHCI PCI->USB interface (USB 2.0) -device usb # USB Bus (required) -#device udbp # USB Double Bulk Pipe devices -device ugen # Generic -device uhid # "Human Interface Devices" -device ukbd # Keyboard -device ulpt # Printer -device umass # Disks/Mass storage - Requires scbus and da -device ums # Mouse -device ural # Ralink Technology RT2500USB wireless NICs -device urio # Diamond Rio 500 MP3 player -device uscanner # Scanners -# USB Ethernet, requires miibus -device aue # ADMtek USB Ethernet -device axe # ASIX Electronics USB Ethernet -device cdce # Generic USB over Ethernet -device cue # CATC USB Ethernet -device kue # Kawasaki LSI USB Ethernet -device rue # RealTek RTL8150 USB Ethernet - -# FireWire support -device firewire # FireWire bus code -device sbp # SCSI over FireWire (Requires scbus and da) -device fwe # Ethernet over FireWire (non-standard!)
嗯,我做出的結果似乎引導向「都用預設值就好」的結論 :(
(目前暫時先比較 ULE)
mysql41-pth-libpthread-tsc-pre:
select_index 20000 1 0 4259.48
select_index 20000 28 0 6022.90
select_index 20000 1 0 4757.54
select_index 20000 0 0 5639.19
select_index 20000 0 0 5547.71
select_index 10000 6 0 683.33
update_index 10000 8 0 683.33
select_index 10000 71 0 673.11
update_index 10000 83 5 673.11
select_index 10000 6 0 632.01
update_index 10000 13 5 632.01
select_index 10000 7 0 724.07
update_index 10000 9 4 724.07
select_index 10000 5 0 701.24
update_index 10000 13 5 701.24
mysql41-pth-libpthread-tsc-pre-ule:
select_index 20000 1 0 2523.96
select_index 20000 1 0 5227.88
select_index 20000 8 0 1488.46
select_index 20000 9 1 2840.13
select_index 20000 1 0 2601.83
select_index 10000 9 0 422.81
update_index 10000 10 1 422.81
select_index 10000 6 0 557.67
update_index 10000 7 0 557.67
select_index 10000 6 0 721.98
update_index 10000 7 1 721.98
select_index 10000 6 0 714.68
update_index 10000 6 0 714.68
select_index 10000 5 2 697.98
update_index 10000 7 0 697.98
在不開 process scope threading 的情況下,核心使用 PRE+ULE 與否的比較。
mysql41-none-libpthread-tsc-pre-ule:
select_index 20000 2 0 2260.47
select_index 20000 3 0 4619.47
select_index 20000 3 0 4552.68
select_index 20000 3 0 4578.26
select_index 20000 3 0 3851.94
select_index 10000 4 0 714.58
select_index 10000 7 0 775.50
select_index 10000 7 0 772.70
select_index 10000 7 0 707.01
select_index 10000 6 0 709.90
mysql41-none-libpthread-tsc-none-none:
select_index 20000 2 0 4776.43
select_index 20000 2 0 4905.50
select_index 20000 2 0 4881.35
select_index 20000 2 0 4910.65
select_index 20000 1 0 4894.56
select_index 10000 5 0 701.28
select_index 10000 9 0 697.95
select_index 10000 6 0 725.00
select_index 10000 10 0 628.51
select_index 10000 6 0 701.13
這是一般系統的預設值(吧):
mysql41-none-libpthread-tsc-pre-none:
select_index 20000 2 0 2583.29
select_index 20000 1 0 5007.72
select_index 20000 1 0 4981.18
select_index 20000 2 0 4937.11
select_index 20000 1 0 4987.36
select_index 10000 4 0 727.68
select_index 10000 5 0 700.20
select_index 10000 3 0 675.21
select_index 10000 5 0 713.38
select_index 10000 5 0 750.88
不過有兩件事導致我這些實驗可能要砍掉重練:
1. 爽皇想測 libthr 時發現了一件我忘了提的重要事項--我用了 BUILD_STATIC=yes ……
2. 測試時機器的 loading 不夠穩定,使得 super-smack 在同樣組態下多跑幾次也可能出現極大差異。
重作所得到的排名 (freebsd 6-stable, mysql41, no pth, tsc)
libthr-4bsd-pre:
select_index 20000 2 0 5165.58
select_index 20000 2 0 5096.83
select_index 20000 1 0 5096.77
select_index 20000 1 0 5116.92
select_index 20000 1 0 5046.69
select_index 10000 4 0 815.11
select_index 10000 4 0 746.69
select_index 10000 4 0 764.19
select_index 10000 2 0 787.74
select_index 10000 3 0 787.14
libthr-4bsd:
select_index 20000 2 0 2507.44
select_index 20000 1 0 5705.03
select_index 20000 1 0 5135.80
select_index 20000 1 0 5179.54
select_index 20000 2 0 5109.68
select_index 10000 3 0 723.18
select_index 10000 5 0 790.10
select_index 10000 5 0 741.24
select_index 10000 2 0 805.16
select_index 10000 2 0 754.84
libthr-ule-pre:
select_index 20000 1 0 2281.18
select_index 20000 2 0 5225.43
select_index 20000 3 0 4679.19
select_index 20000 2 0 4694.60
select_index 20000 2 0 4698.70
select_index 10000 5 0 775.20
select_index 10000 5 0 752.01
select_index 10000 6 1 799.21
select_index 10000 5 0 705.33
select_index 10000 7 1 798.59
libthr-ule:
select_index 20000 2 0 5598.51
select_index 20000 2 0 5089.20
select_index 20000 3 0 5095.78
select_index 20000 1 0 5071.14
select_index 20000 1 0 5124.13
select_index 10000 4 0 819.70
select_index 10000 8 0 769.60
select_index 10000 6 0 782.60
select_index 10000 7 0 825.56
select_index 10000 7 0 780.80
libpthread-4bsd-pre:
select_index 20000 2 0 4843.92
select_index 20000 2 0 4578.51
select_index 20000 2 0 4567.29
select_index 20000 1 0 4563.85
select_index 20000 2 0 4589.73
select_index 10000 7 0 688.09
select_index 10000 6 0 726.53
select_index 10000 10 0 710.14
select_index 10000 7 0 737.06
select_index 10000 4 0 666.36
libpthread-4bsd:
select_index 20000 3 0 4893.14
select_index 20000 4 0 4595.75
select_index 20000 1 0 4604.16
select_index 20000 2 0 4594.44
select_index 20000 1 0 4591.62
select_index 10000 8 0 691.87
select_index 10000 6 0 727.72
select_index 10000 4 0 715.31
select_index 10000 5 0 746.48
select_index 10000 15 0 705.85
libpthread-ule-pre:
select_index 20000 2 0 4351.12
select_index 20000 2 0 4162.48
select_index 20000 3 0 4133.76
select_index 20000 4 0 4128.27
select_index 20000 3 0 3478.31
select_index 10000 6 0 701.57
select_index 10000 10 0 672.38
select_index 10000 7 0 709.34
select_index 10000 11 0 640.43
select_index 10000 10 0 719.84
libpthread-ule:
select_index 20000 1 0 4743.03
select_index 20000 1 0 5211.85
select_index 20000 1 0 4039.21
select_index 20000 2 0 4489.69
select_index 20000 3 0 4466.95
select_index 10000 7 0 714.00
select_index 10000 96 0 734.32
select_index 10000 7 0 708.44
select_index 10000 7 0 693.83
select_index 10000 5 0 715.12
average = SUM / 30
998.57 libthr-ule
980.79 libthr-4bsd-pre
915.07 libthr-4bsd
895.54 libpthread-4bsd
889.05 libpthread-4bsd-pre
883.88 libpthread-ule
846.98 libthr-ule-pre
789.92 libpthread-ule-pre
看來我應該做更多 round 再求平均。
FreeBSD 6.0-STABLE #0: Fri Dec 23 21:41:40 CET 2005
rtfm@amd64.home.org:/usr/obj/usr/src/sys/AMD64
ACPI APIC Table:
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) 64 Processor 3000+ (2010.06-MHz 686-class CPU)
Origin = "AuthenticAMD" Id = 0xf48 Stepping = 8
Features=0x78bfbff
AMD Features=0xe0500800
real memory = 805240832 (767 MB)
avail memory = 778686464 (742 MB)
[my.cnf]
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 64M
max_allowed_packet = 64M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache = 24
query_cache_size = 192M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
mysql 5.0.17, libthr, ULE + TSC:
Sat Dec 31 02:30:09 CET 2005
select_index 20000 0 0 25164.77
select_index 20000 0 0 24781.40
select_index 20000 0 0 21857.76
select_index 20000 0 0 21932.90
select_index 20000 1 0 22043.21
Sat Dec 31 02:30:14 CET 2005
mysql 5.0.17, libthr, ULE + ACPI-fast:
Sat Dec 31 02:32:25 CET 2005
select_index 20000 0 0 21618.98
select_index 20000 0 0 22079.83
select_index 20000 0 0 19821.74
select_index 20000 0 0 19771.64
select_index 20000 1 0 19953.37
Sat Dec 31 02:32:30 CET 2005