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

Alexey Tarasov master at preved.cn
Mon Jun 4 17:55:54 UTC 2007


Hi.

 > options         SCHED_4BSD              # 4BSD scheduler

Try to use SCHED_ULE or SCHED_CORE.

::[ | | | | ]::
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"



More information about the freebsd-current mailing list