Intel C2D COREs not used equally in FreeBSD 7.0-CURRENT i386

From: Abdullah Ibn Hamad Al-Marri <almarrie_at_gmail.com>
Date: Mon, 4 Jun 2007 20:42:11 +0300
Hello,

I have IRC services and it stored the dbs as MyISAM in MySQL 5.0.41
which runs on dedicated C2D 6600 with 2 GB of ram.

FreeBSD 7.0-CURRENT #4: Sun Jun  3 22:56:52 GMT 2007 i386

Here is my kernel config

cpu             I686_CPU
ident           SERVICES

options         SCHED_4BSD              # 4BSD scheduler
options         PREEMPTION              # Enable kernel thread preemption
options         INET                    # InterNETworking
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         UFS_GJOURNAL            # Enable gjournal-based UFS journaling
options         GEOM_PART_GPT           # GUID Partition Tables.
options         GEOM_LABEL              # Provides labelization
options         COMPAT_43TTY            # BSD 4.3 TTY compat [KEEP THIS!]
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         COMPAT_FREEBSD5         # Compatible with FreeBSD5
options         COMPAT_FREEBSD6         # Compatible with FreeBSD6
options         SCSI_DELAY=5000         # Delay (in ms) before probing SCSI
options         KTRACE                  # ktrace(1) support
options         SYSVSHM                 # SYSV-style shared memory
options         SYSVMSG                 # SYSV-style message queues
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         ADAPTIVE_GIANT          # Giant mutex is adaptive.
options         STOP_NMI                # Stop CPUS using NMI instead of IPI
options         SC_DISABLE_REBOOT               # Disable reboot key sequence

# To make an SMP kernel, the next two lines are needed
options         SMP                     # Symmetric MultiProcessor Kernel
device          apic                    # I/O APIC

device          acpi                    # Compile acpi in statically

# Bus support.
device          eisa
device          pci

# Bus support.
device          eisa
device          pci

# ATA and ATAPI devices
device          ata
device          atadisk         # ATA disk drives
options         ATA_STATIC_ID   # Static device numbering

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc          # AT keyboard controller
device          atkbd           # AT keyboard
device          vga             # VGA video card driver

# syscons is the default console driver, resembling an SCO console
device          sc

# 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          sk              # SysKonnect SK-984x & SK-982x gigabit Ethernet

# Pseudo devices.
device          loop            # Network loopback
device          random          # Entropy device
device          ether           # Ethernet support
device          pty             # Pseudo-ttys (telnet etc)
device          snp             # Snoop Device

# 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

Here is the sysctl of kern

kern.maxvnodes: 100000
kern.maxproc: 6164
kern.maxfiles: 32768
kern.argmax: 262144
kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }
kern.posix1version: 200112
kern.ngroups: 16
kern.job_control: 1
kern.saved_ids: 0
kern.bootfile: /boot/kernel/kernel
kern.maxfilesperproc: 11095
kern.maxprocperuid: 5547
kern.ipc.maxsockbuf: 262144
kern.ipc.sockbuf_waste_factor: 8
kern.ipc.somaxconn: 1024
kern.ipc.max_linkhdr: 16
kern.ipc.max_protohdr: 40
kern.ipc.max_hdr: 56
kern.ipc.max_datalen: 148
kern.ipc.nmbjumbo16: 0
kern.ipc.nmbjumbo9: 0
kern.ipc.nmbjumbop: 0
kern.ipc.nmbclusters: 25600
kern.ipc.piperesizeallowed: 1
kern.ipc.piperesizefail: 0
kern.ipc.pipeallocfail: 0
kern.ipc.pipefragretry: 0
kern.ipc.pipekva: 16384
kern.ipc.maxpipekva: 16777216
kern.ipc.msgseg: 2048
kern.ipc.msgssz: 8
kern.ipc.msgtql: 40
kern.ipc.msgmnb: 2048
kern.ipc.msgmni: 40
kern.ipc.msgmax: 16384
kern.ipc.semaem: 16384
kern.ipc.semvmx: 32767
kern.ipc.semusz: 92
kern.ipc.semume: 10
kern.ipc.semopm: 100
kern.ipc.semmsl: 60
kern.ipc.semmnu: 30
kern.ipc.semmns: 60
kern.ipc.semmni: 10
kern.ipc.semmap: 30
kern.ipc.shm_allow_removed: 0
kern.ipc.shm_use_phys: 0
kern.ipc.shmall: 8192
kern.ipc.shmseg: 128
kern.ipc.shmmni: 192
kern.ipc.shmmin: 1
kern.ipc.shmmax: 33554432
kern.ipc.maxsockets: 25600
kern.ipc.numopensockets: 26
kern.ipc.nsfbufsused: 0
kern.ipc.nsfbufspeak: 5
kern.ipc.nsfbufs: 6656
kern.dummy: 0
kern.ps_strings: 3217031152
kern.usrstack: 3217031168
kern.logsigexit: 1
kern.iov_max: 1024
kern.hostuuid: 802D1F15-461D-D711-A11F-C7ABFF8EBB17
kern.arandom: 653627002
kern.disks: ad2 ad0
kern.geom.collectstats: 1
kern.geom.debugflags: 0
kern.geom.label.debug: 0
kern.elf32.fallback_brand: -1
kern.init_shutdown_timeout: 120
kern.init_path:
/sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init:/stand/sysinstall
kern.acct_suspended: 0
kern.acct_configured: 0
kern.acct_chkfreq: 15
kern.acct_resume: 4
kern.acct_suspend: 2
kern.cp_time: 5327530 0 60047 15732 9213550
kern.openfiles: 121
kern.kq_calloutmax: 4096
kern.ps_arg_cache_limit: 256
kern.stackprot: 7
kern.randompid: 0
kern.lastpid: 3158
kern.ktrace.request_pool: 100
kern.ktrace.genio_size: 4096
kern.module_path: /boot/kernel;/boot/modules
kern.malloc_count: 134
kern.fallback_elf_brand: -1
kern.maxusers: 384
kern.ident: SERVICES
kern.kstack_pages: 2
kern.shutdown.kproc_shutdown_wait: 60
kern.shutdown.poweroff_delay: 5000
kern.sync_on_panic: 0
kern.corefile: %N.core
kern.nodump_coredump: 0
kern.coredump: 1
kern.sugid_coredump: 0
kern.sigqueue.alloc_fail: 0
kern.sigqueue.overflow: 0
kern.sigqueue.preallocate: 1024
kern.sigqueue.max_pending_per_proc: 128
kern.forcesigexit: 1
kern.fscale: 2048
kern.timecounter.tick: 1
kern.timecounter.choice: TSC(-100) ACPI-fast(1000) i8254(0) dummy(-1000000)
kern.timecounter.hardware: ACPI-fast
kern.timecounter.nsetclock: 3
kern.timecounter.ngetmicrotime: 1966
kern.timecounter.ngetnanotime: 1
kern.timecounter.ngetbintime: 0
kern.timecounter.ngetmicrouptime: 4172907
kern.timecounter.ngetnanouptime: 2512
kern.timecounter.ngetbinuptime: 401300
kern.timecounter.nmicrotime: 2986925
kern.timecounter.nnanotime: 423
kern.timecounter.nbintime: 2987361
kern.timecounter.nmicrouptime: 3182
kern.timecounter.nnanouptime: 8
kern.timecounter.nbinuptime: 3825003
kern.timecounter.stepwarnings: 0
kern.timecounter.tc.i8254.mask: 65535
kern.timecounter.tc.i8254.counter: 27888
kern.timecounter.tc.i8254.frequency: 1193182
kern.timecounter.tc.i8254.quality: 0
kern.timecounter.tc.ACPI-fast.mask: 16777215
kern.timecounter.tc.ACPI-fast.counter: 2515696
kern.timecounter.tc.ACPI-fast.frequency: 3579545
kern.timecounter.tc.ACPI-fast.quality: 1000
kern.timecounter.tc.TSC.mask: 4294967295
kern.timecounter.tc.TSC.counter: 4040078241
kern.timecounter.tc.TSC.frequency: 2394010377
kern.timecounter.tc.TSC.quality: -100
kern.timecounter.smp_tsc: 0
kern.threads.virtual_cpu: 2
kern.threads.max_threads_hits: 0
kern.threads.max_threads_per_proc: 1500
kern.threads.umtx_max_spins: 3000
kern.threads.umtx_dflt_spins: 0
kern.ccpu: 1948
kern.sched.runq_fuzz: 1
kern.sched.preemption: 1
kern.sched.ipiwakeup.htt2: 0
kern.sched.ipiwakeup.onecpu: 0
kern.sched.ipiwakeup.useloop: 0
kern.sched.ipiwakeup.usemask: 1
kern.sched.ipiwakeup.delivered: 1796942
kern.sched.ipiwakeup.requested: 1796941
kern.sched.ipiwakeup.enabled: 1
kern.sched.quantum: 100000
kern.sched.name: 4BSD
kern.devstat.version: 6
kern.devstat.generation: 177
kern.devstat.numdevs: 2
kern.kobj_methodcount: 105
kern.log_wakeups_per_second: 5
kern.msgbuf_clear: 0
kern.msgbuf:
kern.always_console_output: 0
kern.log_console_output: 1
kern.smp.forward_roundrobin_enabled: 1
kern.smp.forward_signal_enabled: 1
kern.smp.cpus: 2
kern.smp.disabled: 0
kern.smp.active: 1
kern.smp.maxcpus: 16
kern.nselcoll: 0
kern.tty_nout: 198594
kern.tty_nin: 1711
kern.drainwait: 300
kern.constty_wakeups_per_second: 5
kern.consmsgbuf_size: 8192
kern.consmute: 0
kern.console: consolectl,/consolectl,
kern.pts.max: 1000
kern.pts.enable: 0
kern.minvnodes: 25000
kern.metadelay: 28
kern.dirdelay: 29
kern.filedelay: 30
kern.chroot_allow_open_directories: 1
kern.random.yarrow.gengateinterval: 10
kern.random.yarrow.bins: 10
kern.random.yarrow.fastthresh: 192
kern.random.yarrow.slowthresh: 256
kern.random.yarrow.slowoverthresh: 2
kern.random.sys.seeded: 1
kern.random.sys.harvest.ethernet: 1
kern.random.sys.harvest.point_to_point: 1
kern.random.sys.harvest.interrupt: 1
kern.random.sys.harvest.swi: 0

I see both daemons use CPU0 most of the time, and the other one is idling.

 last pid:  3138;  load averages:  0.70,  0.56,  0.70
                                      up 0+15:20:36  17:29:46
34 processes:  2 running, 32 sleeping
CPU states: 48.9% user,  0.0% nice,  1.7% system,  0.0% interrupt, 49.4% idle
Mem: 711M Active, 420M Inact, 183M Wired, 32K Cache, 112M Buf, 685M Free
Swap: 2048M Total, 2048M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
 3135 services    3  96    0 29716K 27432K select 0   0:27 60.75% services
 3106 mysql      14  96    0   637M   628M ucond  0   3:42 33.35% mysqld


last pid:  3142;  load averages:  0.83,  0.61,  0.71
                                     up 0+15:21:13  17:30:23
34 processes:  2 running, 32 sleeping
CPU states: 47.2% user,  0.0% nice,  4.9% system,  0.2% interrupt, 47.7% idle
Mem: 711M Active, 420M Inact, 183M Wired, 32K Cache, 112M Buf, 684M Free
Swap: 2048M Total, 2048M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME    CPU COMMAND
 3135 services    3  96    0 29716K 27668K select 0   0:55 72.61% services
 3106 mysql      14  96    0   637M   628M ucond  0   3:52 24.66% mysqld

Both of them using libthr as well.

Now my question is, why they don't use 100% of both COREs while
syncing to 4k users?

Here is my my.cnf

[mysqld]
thread_concurrency=100
max_connections=5000
wait_timeout=300
max_allowed_packet=32M
key_buffer=512M
read_buffer_size=3M
sort_buffer_size=9M
join_buffer_size=3M
myisam_sort_buffer_size=100M
read_rnd_buffer_size=5M
query_cache_limit=1M
query_cache_size=64M
query_cache_type=1
thread_cache_size=256
table_cache=2048
max_tmp_tables=1024
tmp_table_size=512M
safe-show-database
skip-networking
socket=/tmp/mysql.sock

[client]
socket=/tmp/mysql.sock

The total database size is less than 60 MBs.

mysqladmin status
Uptime: 878  Threads: 2  Questions: 225769  Slow queries: 0  Opens: 31
 Flush tables: 1  Open tables: 25  Queries per second avg: 257.140


-- 
Regards,

-Abdullah Ibn Hamad Al-Marri
Arab Portal
http://www.WeArab.Net/
Received on Mon Jun 04 2007 - 15:42:13 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:11 UTC