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

From: Jeff Roberson <jroberson_at_chesapeake.net>
Date: Tue, 5 Jun 2007 00:12:57 -0700 (PDT)
On Mon, 4 Jun 2007, Alexey Tarasov wrote:

> Hi.
>
>> options         SCHED_4BSD              # 4BSD scheduler
>
> Try to use SCHED_ULE or SCHED_CORE.

CORE is no longer supported and has been removed from the tree.  If you 
would like to try something new you can cvsup to sources from tonight and 
apply this patch:

http://people.freebsd.org/~jeff/schedsmp.diff

Then use options SCHED_SMP, which is a ULE variant.  Please report back 
your findings if you do try this.  However, it only works on amd64.

Thanks,
Jeff

>
> ::[ | | | | ]::
> Alexey Tarasov
> master_at_preved.cn
>
>
> 04.06.2007, Χ 21:42, Abdullah Ibn Hamad Al-Marri ΠΙΣΑΜ(Α):
>
>> 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/
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Tue Jun 05 2007 - 05:13:14 UTC

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