hi,
I did some testing an a supermicro 2 x 4 core xeon server under 64bit
"7.0-STABLE #1: Fri Jul 4". when we first tested the system under load
(2000 apache threads) the system performed bad compare to other dual
core systems under the same workload.
the 8 core system had 0% idle time and almost 100% system load. I could
not find out what the load was. disk IO was close to zero during that time.
because of that I checked the sysbench results with this test:
sysbench --test=oltp --mysql-socket=/tmp/mysql.sock --mysql-user=root \
--max-requests=0 --max-time=60 --oltp-read -only=on --num-threads=$1 run
here are the sysbench results:
- 1 thread --------------------------------------------------------
OLTP test statistics:
queries performed:
read: 354774
write: 0
other: 50682
total: 405456
transactions: 25341 (422.34 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 354774 (5912.82 per sec.)
other operations: 50682 (844.69 per sec.)
- 8 threads -------------------------------------------------------
OLTP test statistics:
queries performed:
read: 145166
write: 0
other: 20738
total: 165904
transactions: 10369 (172.75 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 145166 (2418.54 per sec.)
other operations: 20738 (345.51 per sec.)
--------------------------------------------------------------------
during the 8 thread test "top" looks like this:
-----------------------------------------------------------------------------
last pid: 30104; load averages: 2....pmcannotate is a tool that prints out sources of a tool (in C or assembly) with inlined profiling informations retrieved by a prior pmcstat analysis. If compared with things like callgraph generation, it prints out profiling on a per-instance basis and this can be useful to find, for example, badly handled caches, too high latency instructions, etc. The tool usage is pretty simple: pmcannotate [-a] [-h] [-k path] [-l level] samples.out binaryobj where samples.out is a pmcstat raw output and binaryobj is the binary object that has been profiled and is accessible for (ELF) symbols retrieving. The options are better described in manpages but briefly: - a: performs analysis on the assembly rather than the C source - h: usage and informations - k: specify a path for the kernel in order to locate correct objects for it - l: specify a lower boundary (in total percentage time) after which functions will be displayed nomore. A typical usage of pmcannotate can be some way of kernel annotation. For example, you can follow the steps below: 1) Generate a pmc raw output of system samples: # pmcstat -S ipm-unhalted-core-cycles -O samples.out 2) Copy the samples in the kernel building dir and cd there # cp samples.out /usr/src/sys/i386/compile/GENERIC/ ; cd /usr/src/sys/i386/compile/GENERIC/ 3) Run pmcannotate # pmcannotate -k . samples.out kernel.debug > kernel.ann In the example above please note that kernel.debug has to be used in order to produce a C annotated source. This happens because in order to get the binary sources we rely on the "objdump -S" command which wants binary compiled with debugging options. If not debugging options are present assembly analynsis is still possible, but no C-backed one will be available. objdump is not the only one tool on which pmcannotare rely. Infact, in order to have it working, pmcstat needs to be present too because we need to retrieve, from the pmcstat raw output, informations about the sampled PCs (in particular the name of the function t...
Hi! In an effort to run benchmarks on the latest CURRENT on a couple of slave machines, I need to build the distribution sets necessary for an NFS install as fast as possible (the slaves are installing over PXE), but still ending up with something as close as possible to a normal default installation on the slaves. Right now, I'm doing a very basic run to create the distribution sets (using a default make.conf and a 6.2-STABLE build machine): # /cd /usr/src # csup /etc/current-supfile # make buildworld # cd /release # make release BUILDNAME=CURRENT-YYYYMMDDHHMMSS CVSROOT=/home/ncvs CHROOTDIR=/home/chroot Using the above commands, a lot of stuff gets compiled unnecessarily, and the process takes 5-6 hours on a 2GHz P4. I'd like to cut that to 2 hours max. I tried to use some of the NO_* settings in make.conf, but it's not clear to me what I can omit. Some things are needed later in make release (e.g. NO_CXX) even though I don't need a C++ compiler on the slave systems. I also looked a ccache, but I consider it somewhat dangerous, since I need to have an absolutely correct, reproducible installation rather than a fast build. If I ignore documentation distfiles (will this affect benchmarks in any way?), AFAICT the only distribution sets I need are base, proflibs, kernels and (maybe) lib32. Is there a way to get "make release" to do just that? I'm open to other suggestions, of course. Thanks, Erik _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Hello!
I've the problem that sometimes there are many disk waiting processes
(sysctl -n vm.vmtotal), but systat -vmstat shows da0 and da1 busy with
0-10%.
I guess that the disk i/o is at about 100%, but wondering why I see
those strange values.
System Information:
- Disks are attached to 07:01.0 RAID bus controller: 3ware Inc 9550SX SATA-=
RAID
u0216# uname -a =
=20
FreeBSD u0216.nshq.netstream.com 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Wed Oc=
t 31 14:53:00 CET 2007 root@u0216.nshq.netstream.com:/usr/obj/usr/src/sys/S=
MPPAEQUOTA i386
=3D> kernel contains 3ware patches from CVS, marked for inclusion in 6.3,
because we've seen many times a freeze on that system before
- Disks are 10k rpm sata disks.
- Board is a Supermicro X7DB8, processor is a quad core Xeon, E5345@2.33GHz.
Anyone an idea,
a) why systat -vmstat shows so small busy values?
b) how to debug it further?
Sincerly
Nico
--=20
Think about Free and Open Source Software (FOSS).
http://nico.schottelius.org/documentations/foss/the-term-foss/
PGP: BFE4 C736 ABE5 406F 8F42 F7CF B8BE F92A 9885 188CAt Sun, 23 Nov 2008 14:02:22 +0100, Hi, First of all, this is excellent work. As soon as this and some other changes in PMC hit 7.x I'll be rolling this out to all the developers I work with. I've tested this on amd64 on HEAD, and with the changes we have talked about privately (%jx vs. %x) it works quite well. Secondly, I would like to request a feature. I would like to be able to get output in a more easily parsable format so I can write some Emacs code to highlight C code with the output. I'd like something along the lines of: path:function:line:percentage Keep up the good work! Later, George _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
I know I am going to really show my FreeBSD ignorance here, but this is a patch of FreeBSD 8.0 Current isn't it ? Thanks Ray Kinsella _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Yes, it is for 8.0. Is it giving you problems? Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
No, not at all. I am using 6.2 and 7.0 at the moment, I will build another disk with FreeBSD 8.0-CURRENT. Thanks Ray Kinsella _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Quoting Attilio Rao <attilio@freebsd.org> (from Sun, 23 Nov 2008 Can this also be used to do some code coverage analysis? What I'm interested in is to enable something, run some tests in userland, disable this something, and then run a tool which tells me which parts of specific functions where run or not. At first I hoped I can use dtrace for this... I had a dtrace training and seen the userland probes in action, where you can trace every ASM instruction, but unfortunately you can not do this with kernel probes. I tried with fbt and syscall on a Solaris 10 machine. I haven't tested with FreeBSD-dtrace yet, but I doubt it is more advanced in this regard than the Solaris dtrace. So I'm still searching. Bye, Alexander. -- We should keep the Panama Canal. After all, we stole it fair and square. -- S. I. Hayakawa http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Yes, this is exactly what it does. You can see traces for any sampled PC and so get a profiling anslysis on a per-instance basis. Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Quoting Attilio Rao <attilio@freebsd.org> (from Mon, 24 Nov 2008 Cool. Would be great if you could provide some example in the man page or as a script which shows how to do this for kernel code. This would immediately show us how good our regression tests are for their specific areas of test. Bye, Alexander. -- In a family recipe you just discovered in an old book, the most vital measurement will be illegible. http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
I would add that it is only sampled so you don't see every instruction executed. You can use gcov for that however. That's precisely what it's for. Thanks, _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Quoting Jeff Roberson <jroberson@jroberson.net> (from Sun, 23 Nov 2008 How to use gcov for the kernel? Bye, Alexander. -- If only you knew she loved you, you could face the uncertainty of whether you love her. http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Are you "rookie" on IRC, who used to catch me with tons of questions The pmcstat changes seem fine. Koshy _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
See my tuning notes at: In my tests mysql 5.1 has much worse performance than 5.0. Kris _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
hi kris, thanks for your response. going back to mysql-5.0.51a the 8core server performed as expected. (sysbench oltp: 4335 with 8 threads) thanks, lutz _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
On 11/6/07, Nico -telmich- Schottelius < I woudn't worry about how many are sleeping. But, How long they sleep would be interesting data. Why do you think it should be 100%? Are you running any disk I/O intense application? You can try experimenting with diffrent I/O loads to make sure that there is a problem before start debugging it. -Manjunath _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
And also why they sleep. Having about 700 processes in sleep state plus 400 processes in diskwait state makes me wonder somehow. There are also some processes from cron, which are older and also in Because it's the well known bottleneck in that server: - it has 4 cpus, which are about 30-50% idle - it has 4 GiB ram, of which 2GiB is mostly inactive - it has 4 10k rpm hds in 2 raid1 disk arrays, one for the mailboxes + root and one for the qmail-queue Normally systat -vmstat shows 80-100% busy state on the disk arrays, but currently it's at about 10%, which cannot be right. I think I'll have a look closer look at the patch we used from CVS to patch= the There is a big problem, that even results in taking about 30 seconds until the '220' messages comes from qmail when connecting via telnet =66rom outside to it. To summarise, what runs on the server: - qmail + patches =3D> has /var/qmail/queue on it's own disk-array - courier imapd - vpopmail (pop3 auth) - mysql (needed by vpopmail) - clamd - spamassassin - Webmail (horde on apache) So it's mainly a customer mailserver, with nothing special installed, which may have some load, but not in the way it's not explainable. So I'm still hoping somebody with similar problems reads this mail ;-) Sincerly Nico --=20 Think about Free and Open Source Software (FOSS). http://nico.schottelius.org/documentations/foss/the-term-foss/ PGP: BFE4 C736 ABE5 406F 8F42 F7CF B8BE F92A 9885 188C
On 11/6/07, Nico -telmich- Schottelius < At a given time only few can run, remaining once will sleep which is an expected behavior. Looks like your blaming the twa driver based on your experience. OS is a complex piece of software and involves many components, scheduler, vm, scsi-stack, driver, problem could be any where in this. That's why specific data would be useful. Something like on 6.2 running x takes y and on Your adding one more variable, network here. Verify that when you did cvsup the network driver was not updated. _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
To just create a working image you can just do: make buildworld make buildkernel make DESTDIR=3D/target/directory installworld make DESTDIR=3D/target/directory distribution make DESTDIR=3D/target/directory installkernel -- Brooks
This doesn't seem to create the distribution sets I want. It just creates the hierarchy of files which are eventually going to be on the hard-disk on the clients. I may be wrong, but it seems that to be able to use sysinstall to install the clients, I need to create distribution sets like the ones supplied here: ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/6.2-RELEASE/ Erik _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
Ah, I didn't realized you wanted to do that. If you do want to use sysinst= all, then you do indeed to use make release. The various NO* options documented= in the release(7) manpage and the makefile should be useful here. That said, I can't imagine why you'd want sysinstall to be involved in a automated benchmark system. Doing what it does using a hand rolled script is way easier then trying work with it. -- Brooks
Ok, so are you suggesting something like this?: 1. make world, distribution, kernel 2. make any necessary changes to config files 3. cram the result onto a custom mfs (or make it available somewhere) 4. boot using the custom mfs as root device 5. point init_path in loader.conf to my own script which: 5a. prepares (bsdlabel, newfs etc.) the hard-disk 5b. mounts the hard-disk and copies the distribution files over 5. reboot 6. install any necessary packages 7. run benchmarks Erik _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
It would probably be easier if you just NFS booted into a small FreeBSD installation, and then had a script that set up the drive, and ran an installworld/kernel/etc against it. No need to use mfs I don't think. This kind of sounds like the automated performance measurement project that has been mentioned here (or was it -current?) a few times, once somewhat recently. Eric _______________________________________________ freebsd-performance@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-performance To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org"
| Adrian Bunk | If you want me to quit I will quit |
| Bryan Woods | Stardom SATA HSM violation |
| Borislav Petkov | [PATCH] ide-floppy fix |
| Ingo Molnar | Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS] |
git: | |
| walt | [VOTE] git versus mercurial |
| Nicolas Pitre | Re: [PATCH] gc: call "prune --expire 2.weeks.ago" |
| cte | linking libgit.a in C++ projects |
| Marco Costalba | [ANNOUNCE] qgit4 aka qgit ported to Windows |
| qw er | OpenBSD sucks |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| cgc | Re: RES: RES: Filtering outgoing connections in pf |
| Karel Kulhavy | lookup option in /etc/resolv.conf ignored |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Christopher Snook | RFC: Nagle latency tuning |
| Matt Mackall | [PATCH] Stop scaring users with "treason uncloaked!" |
| John Heffner | Re: A Linux TCP SACK Question |
