Re: How does disk caching work?

From: Uwe Doering (gemini_at_geminix.org)
Date: 04/19/04

  • Next message: Aaron Seelye: "Re: command piped into bzip not using all available CPU"
    Date: Mon, 19 Apr 2004 08:37:52 +0200
    To: freebsd-performance@freebsd.org
    
    

    Jim C. Nasby wrote:
    > On Sat, Apr 17, 2004 at 09:41:19AM +0200, Uwe Doering wrote:
    > [...]
    > A few questions if I may...
    >
    > What's a good way to tune amount of space dedicated to IO buffers?

    You can tune the number of i/o buffers, and therefore indirectly the
    amount of memory they may allocate, by using the variable 'kern.nbuf' in
    '/boot/loader.conf'. Note that this number gets multiplied by 16384
    (the default filesystem block size) to arrive at the amount of memory it
    results in.

    My experience is that with large amounts of RAM this area becomes
    unduely big, though. It's not that you have to skimp on RAM in this
    enviroment, but the disk i/o buffers eat away at the KVM region (kernel
    virtual memory), which happens to be just 1 GB by default and doesn't
    grow with the RAM size. So it can be a good idea to actually reduce the
    number of disk i/o buffers (compared to its auto-scaled default) on
    systems with plenty of RAM (since you don't need that many buffers,
    anyway, due to the VM interaction I just described) and save the
    available KVM rather for other purposes (kernel resources). Systems
    that run out of KVM are prone to kernel panics, given the right
    combination of circumstances.

    > What impact will vm_min|max_cache have on system performance? Is there
    > any advantage to setting it fairly high?

    I'm not quite sure which variables you are referring to. In FreeBSD
    there are 'vm.v_cache_min' and 'vm.v_cache_max'. I don't recommend
    tuning them, though, without having a very deep and thorough look at the
    kernel sources. Many of these variables don't really do what their name
    suggests, and there are interdependencies between some of them. You can
    lock up your server by tuning them improperly.

    > The machine I'm tuning is a dual Opteron box with 4G of ram, a mirror
    > and a 6 disk RAID10. It's running PostgreSQL.

    I'm not a PostgreSQL expert, but there have been discussions on this
    mailing list and elsewhere about tuning PostgreSQL. I suggest to take a
    look at the archives.

        Uwe

    -- 
    Uwe Doering         |  EscapeBox - Managed On-Demand UNIX Servers
    gemini@geminix.org  |  http://www.escapebox.net
    _______________________________________________
    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"
    

  • Next message: Aaron Seelye: "Re: command piped into bzip not using all available CPU"

    Relevant Pages

    • Re: kernel 2.6.13 buffer strangeness
      ... > Coriander at 25Mb/s until all the free RAM is full of dirty data waiting to ... > allocate for buffers. ... > the kernel start writing data faster by lowering dirty_ratio, ...
      (Linux-Kernel)
    • Re: How does disk caching work?
      ... >>What's a good way to tune amount of space dedicated to IO buffers? ... > available KVM rather for other purposes (kernel resources). ... that he'd noticed a reduction in disk IO when he did that. ...
      (freebsd-performance)
    • Re: Low on RAM memory warnings
      ... RAM used by applications. ... RAM is near the amount of the installed RAM you may consider the ... used by applications will be used for kernel buffers, ... > How do I determine that my system is running low on RAM memory? ...
      (RedHat)
    • Re: Further memory question [was: Clear the computers memory?]
      ... is that when I boot up, linux will allocate memory as you describe, ... kernel grabs chunks of memory that are not in use and uses them as ... lots of RAM it flushes the buffers and makes the RAM available. ...
      (Ubuntu)
    • Re: Question about memory mapping mechanism
      ... I'm writing a driver for a sampling device that is constantly delivering a ... relatively high amount of data and I need to deliver the ... since there may be buffers that are used just from time to time to ...
      (Linux-Kernel)