postgresql/doc/src/sgml/ref/pgtestfsync.sgml

128 lines
3.7 KiB
Plaintext

<!--
doc/src/sgml/ref/pgtestfsync.sgml
PostgreSQL documentation
-->
<refentry id="pgtestfsync">
<indexterm zone="pgtestfsync">
<primary>pg_test_fsync</primary>
</indexterm>
<refmeta>
<refentrytitle><application>pg_test_fsync</application></refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
<refname>pg_test_fsync</refname>
<refpurpose>determine fastest <varname>wal_sync_method</varname> for <productname>PostgreSQL</productname></refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>pg_test_fsync</command>
<arg rep="repeat"><replaceable>option</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
<application>pg_test_fsync</application> is intended to give you a reasonable
idea of what the fastest <xref linkend="guc-wal-sync-method"/> is on your
specific system,
as well as supplying diagnostic information in the event of an identified I/O
problem. However, differences shown by
<application>pg_test_fsync</application> might not make any significant
difference in real database throughput, especially since many database servers
are not speed-limited by their write-ahead logs.
<application>pg_test_fsync</application> reports average file sync operation
time in microseconds for each <literal>wal_sync_method</literal>, which can also be used to
inform efforts to optimize the value of <xref linkend="guc-commit-delay"/>.
</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>
<application>pg_test_fsync</application> accepts the following
command-line options:
<variablelist>
<varlistentry>
<term><option>-f</option></term>
<term><option>--filename</option></term>
<listitem>
<para>
Specifies the file name to write test data in.
This file should be in the same file system that the
<filename>pg_wal</filename> directory is or will be placed in.
(<filename>pg_wal</filename> contains the <acronym>WAL</acronym> files.)
The default is <filename>pg_test_fsync.out</filename> in the current
directory.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<term><option>--secs-per-test</option></term>
<listitem>
<para>
Specifies the number of seconds for each test. The more time
per test, the greater the test's accuracy, but the longer it takes
to run. The default is 5 seconds, which allows the program to
complete in under 2 minutes.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-V</option></term>
<term><option>--version</option></term>
<listitem>
<para>
Print the <application>pg_test_fsync</application> version and exit.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-?</option></term>
<term><option>--help</option></term>
<listitem>
<para>
Show help about <application>pg_test_fsync</application> command line
arguments, and exit.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1>
<title>Environment</title>
<para>
The environment variable <envar>PG_COLOR</envar> specifies whether to use
color in diagnostic messages. Possible values are
<literal>always</literal>, <literal>auto</literal> and
<literal>never</literal>.
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<simplelist type="inline">
<member><xref linkend="app-postgres"/></member>
</simplelist>
</refsect1>
</refentry>