Home Explore Blog CI



postgresql

25th chunk of `doc/src/sgml/config.sgml`
94f1f861c4e9bf1e9d18639202002111f048fb1c568f17050000000100000fa4
 needed.  That setting is appropriate for a command that requires a
        TTY for prompting, which might not be available when the server is
        running.  Setting this parameter to on might be appropriate if the
        passphrase is obtained from a file, for example.
       </para>
       <para>
        This parameter can only be set in the <filename>postgresql.conf</filename>
        file or on the server command line.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
    </sect2>
   </sect1>

   <sect1 id="runtime-config-resource">
    <title>Resource Consumption</title>

    <sect2 id="runtime-config-resource-memory">
     <title>Memory</title>

     <variablelist>
     <varlistentry id="guc-shared-buffers" xreflabel="shared_buffers">
      <term><varname>shared_buffers</varname> (<type>integer</type>)
      <indexterm>
       <primary><varname>shared_buffers</varname> configuration parameter</primary>
      </indexterm>
      </term>
      <listitem>
       <para>
        Sets the amount of memory the database server uses for shared
        memory buffers.  The default is typically 128 megabytes
        (<literal>128MB</literal>), but might be less if your kernel settings will
        not support it (as determined during <application>initdb</application>).
        This setting must be at least 128 kilobytes.  However,
        settings significantly higher than the minimum are usually needed
        for good performance.
        If this value is specified without units, it is taken as blocks,
        that is <symbol>BLCKSZ</symbol> bytes, typically 8kB.
        (Non-default values of <symbol>BLCKSZ</symbol> change the minimum
        value.)
        This parameter can only be set at server start.
       </para>

       <para>
        If you have a dedicated database server with 1GB or more of RAM, a
        reasonable starting value for <varname>shared_buffers</varname> is 25%
        of the memory in your system.  There are some workloads where even
        larger settings for <varname>shared_buffers</varname> are effective, but
        because <productname>PostgreSQL</productname> also relies on the
        operating system cache, it is unlikely that an allocation of more than
        40% of RAM to <varname>shared_buffers</varname> will work better than a
        smaller amount.  Larger settings for <varname>shared_buffers</varname>
        usually require a corresponding increase in
        <varname>max_wal_size</varname>, in order to spread out the
        process of writing large quantities of new or changed data over a
        longer period of time.
       </para>

       <para>
        On systems with less than 1GB of RAM, a smaller percentage of RAM is
        appropriate, so as to leave adequate space for the operating system.
       </para>

      </listitem>
     </varlistentry>

     <varlistentry id="guc-huge-pages" xreflabel="huge_pages">
      <term><varname>huge_pages</varname> (<type>enum</type>)
      <indexterm>
       <primary><varname>huge_pages</varname> configuration parameter</primary>
      </indexterm>
      </term>
      <listitem>
       <para>
        Controls whether huge pages are requested for the main shared memory
        area. Valid values are <literal>try</literal> (the default),
        <literal>on</literal>, and <literal>off</literal>.  With
        <varname>huge_pages</varname> set to <literal>try</literal>, the
        server will try to request huge pages, but fall back to the default if
        that fails. With <literal>on</literal>, failure to request huge pages
        will prevent the server from starting up. With <literal>off</literal>,
        huge pages will not be requested. The actual state of huge pages is
        indicated by the server variable
        <xref linkend="guc-huge-pages-status"/>.
       </para>

       <para>
        At present, this setting is supported only on Linux and Windows. The
        setting is ignored on other systems when

Title: Shared Memory Buffers and Huge Pages Configuration
Summary
This section describes parameters related to resource consumption, specifically focusing on memory management. It details `shared_buffers`, which sets the amount of memory the database server uses for shared memory buffers. The default is typically 128MB, and a reasonable starting value for a dedicated database server with 1GB or more of RAM is 25% of system memory. It also discusses `huge_pages`, which controls whether huge pages are requested for the main shared memory area, with possible values being 'try', 'on', and 'off'.