Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Apr 2012 13:00:25 -0700
From:      Garrett Cooper <yanegomi@gmail.com>
To:        O. Hartmann <ohartman@zedat.fu-berlin.de>
Cc:        freebsd-security@freebsd.org, Richard Kojedzinszky <krichy@tvnetwork.hu>, Current FreeBSD <freebsd-current@freebsd.org>, freebsd-performance@freebsd.org
Subject:   Re: ufs multilabel performance (fwd)
Message-ID:  <951B1A8C-A216-420A-BA17-316B8D9C2B0E@gmail.com>
In-Reply-To: <4F8B21D2.4080008@zedat.fu-berlin.de>
References:  <alpine.DEB.2.02.1204142134050.8001@krichy.tvnetwork.hu> <4F8AAEF7.3090800@zedat.fu-berlin.de> <alpine.DEB.2.02.1204151555080.12537@krichy.tvnetwork.hu> <4F8B21D2.4080008@zedat.fu-berlin.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 15, 2012, at 12:30 PM, O. Hartmann wrote:

> Am 04/15/12 15:59, schrieb Richard Kojedzinszky:
>> Thank you for the reply.
>>=20
>> Unfortunately, dont know why, but on my xen virtualised environment,
>> fbsd amd64 domU performs much slower, not only 30 times. Without
>> multilabel, file creation speed is around 2500/s, but with =
multilabels
>> enabled, it is only 15/s (!). so it is more than 100 times slower.
>>=20
>> And anyway freebsd is known to be fast as well, as functional. The =
power
>> to serve. :)
>>=20
>> But in my environment, 15/s file creation is very-very slow. The
>> hardware is a q6700 cpu with 4G ram, 2x1T sata disks in raid1, the =
host
>> runs linux. I think with this hw the mentioned speed is really slow.
>>=20
>> Regards,
>>=20
>>=20
>> Kojedzinszky Richard
>> Euronet Magyarorszag Informatikai Zrt.
>>=20
>> On Sun, 15 Apr 2012, O. Hartmann wrote:
>>=20
>>> Date: Sun, 15 Apr 2012 13:20:23 +0200
>>> From: O. Hartmann <ohartman@zedat.fu-berlin.de>
>>> To: Richard Kojedzinszky <krichy@tvnetwork.hu>
>>> Cc: freebsd-security@freebsd.org
>>> Subject: Re: ufs multilabel performance (fwd)
>>>=20
>>> Am 04/14/12 21:37, schrieb Richard Kojedzinszky:
>>>> Dear list,
>>>>=20
>>>> Although it is not only security-related question, I did not get =
any
>>>> answer from freebsd-performance. The original question is below.
>>>>=20
>>>> Can someone give some advice?
>>>>=20
>>>> Thanks in advance,
>>>>=20
>>>>=20
>>>> Kojedzinszky Richard
>>>> Euronet Magyarorszag Informatikai Zrt.
>>>>=20
>>>> ---------- Forwarded message ----------
>>>> Date: Thu, 10 Nov 2011 06:16:57 +0100 (CET)
>>>> From: Richard Kojedzinszky <krichy@tvnetwork.hu>
>>>> To: freebsd-performance@freebsd.org
>>>> Subject: ufs multilabel performance
>>>>=20
>>>> Dear List,
>>>>=20
>>>> I've noticed that when I enable multilabel on an fs, a file =
creation
>>>> gets around 20-30 times slower than without multilabel set.
>>>>=20
>>>> This one-liner can be used to test the differences:
>>>> $ truss -D perl -e 'open(F, ">$_.file") for 1 .. 1000'
>>>=20
>>> Same here, creating files seems to be 10 - 30 times slower with
>>> multilabels as it is without.
>>>=20
>>> But as several posts and discussions reflects, FreeBSD isn't =
supposed to
>>> be fast although it is claimed that writing is the major than =
reading;
>>> FBSD should serve functionality.
>>>>=20
>>>> And one can see that the open call takes much more when multilabel =
is
>>>> set on an fs. It seems that only file creation needs that many =
time,
>>>> when a file exists it is opened much faster.
>>>>=20
>>>> Could someone acknowledge this, and have some suggestions how to =
make it
>>>> faster?
>>>>=20
>>>> Regards,
>>>>=20
>>>>=20
>>>> Kojedzinszky Richard
>>>> TvNetWork Nyrt.
>>>> E-mail: krichy (at) tvnetwork [dot] hu
>>>> PGP: 0x54B2BF0C8F59B1B7
>>>>  Fingerprint =3D F6D4 3FFE AF03 CACF 0DCB  46A1 54B2 BF0C 8F59 B1B7
>=20
> At the moment, I'm troubled with a nasty kernel bug on all FreeBSD 10
> boxes I have spare to test.
>=20
> I just tried to reproduce your observation and as far as I can go with
> my experience, I can confirm that by using your perl script.
>=20
> I'd like to test this again with a small C program.
>=20
> I can only test the issue (test is too far optimistic, it's simply a
> reproduction of your observation) on FreeBSD 10, the only remaining
> FreeBSD server at our department is running FBSD 9-STABLE/amd64 and =
"in
> production", so changing multilabel support is a bit harsh at the =
moment.
>=20
>=20
> Sorry about crossposting, but I think this belongs more to CURRENT and
> PERFORMANCE than SECURITY.

My suggestion is completely take perl out of the equation because the =
way you're invoking it above uses stdio and a few other things that add =
unnecessary overhead.

Try the attached C program/bourne shell snippet instead.

Cheers,
-Garrett

#!/bin/sh

set -e

tmp=3D$(mktemp -d tmp.XXXXXX)
trap "cd /; rm -Rf $tmp" EXIT
cd $tmp

cat > test_open.c <<EOF

#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>

int
main(void)
{
        char buf[20];
        int i;

        for (i =3D 0; i < 1000; i++) {
                sprintf(buf, "%d", i);
                close(open(buf, O_WRONLY|O_CREAT, 0600));
        }
        return (0);
}
EOF

gcc -o test_open test_open.c
time ./test_open=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?951B1A8C-A216-420A-BA17-316B8D9C2B0E>