Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 Oct 2010 10:47:13 +0100
From:      "Ronald Klop" <ronald-freebsd8@klop.yi.org>
To:        "'Andriy Gapon'" <avg@icyb.net.ua>, "Alexander Zagrebin" <alexz@visp.ru>
Cc:        freebsd-fs@freebsd.org, freebsd-stable@freebsd.org
Subject:   Re: 8.1-STABLE: zfs and sendfile: problem still exists
Message-ID:  <op.vlfpgzu18527sy@212-123-145-58.ip.telfort.nl>
In-Reply-To: <D1BBD19053C8401BB4F4839A019B61A1@vosz.local>
References:  <4CCAF0EB.4080001@icyb.net.ua> <20101029175105.GB18613@two.kliksys.ru> <4CCBD443.7010305@icyb.net.ua> <4CCBD46E.9030200@icyb.net.ua> <4CCBD661.3000204@freebsd.org> <4CCBEAF6.2030408@freebsd.org> <20101030101254.GB79691@two.kliksys.ru> <4CCBF45C.4080208@icyb.net.ua> <20101030112520.GD79691@two.kliksys.ru> <4CCC2F2A.7020809@icyb.net.ua> <20101030190120.GA80301@two.kliksys.ru> <4CCD0804.8010703@icyb.net.ua> <D1BBD19053C8401BB4F4839A019B61A1@vosz.local>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 31 Oct 2010 10:02:44 +0100, Alexander Zagrebin <alexz@visp.ru> =20
wrote:

>> >> I apologize for my haste, it should have been VM_ALLOC_WIRED.
>> >
>> > Ok, applied and tested under some load(~1200 active
>> connections, outgoing
>> > ~80MB/s). Patch work as expected and i has noted no side
>> effects.  Just one
>> > question - should grow Active memory counter, if some pages
>> is "hot"(during
>> > multiple sendfile on one file)?
>>
>> Pages used by sendfile are marked as Inactive for faster
>> reclamation on demand.
>
> I have a question.
> When we transfer a file via sendfile, then current code allocates
> a memory, marked inactive. For example, if the file has size 100 MB,
> then 100 MB of memory will be allocated.
> If we have to transfer this file again later, then this memory will use=
d
> as cache, and no disk io will be required.
> The memory will be freed if file will be deleted or operating system
> will need an additional memory.
> I have correctly understood?
> If it so, the i continue...
> Such behaviour is good if we have files with relatively small size.
> Suppose we have to transfer file with large size (for example, greater
> than amount of physical memory).
> While transfering, the inactive memory will grow, pressing the ARC.
> When size of the ARC will fall to its minimum (vfs.zfs.arc_min), then
> inactive memory will be reused.
> So, when transfer is complete, we have:
> 1. No free memory
> 2. Size of the ARC has minimal size (it is bad)
> 3. Inactive memory contains the _tail_ of the file only (it is bad too)
> Now if we have to transfer this file again, then
> 1. there is no (or few) file's data in ARC (ARC too small)
> 2. The inactive memory doesn't contain a head part of the file
> So the file's data will read from a disk again and again...
> Also i've noticed that inactive memory frees relatively slowly,
> so if there is a frequent access to large files, then system will run
> at very unoptimal conditions.
> It's imho...
> Can you comment this?
>

Add more RAM?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.vlfpgzu18527sy>