Are you sure that swap is used actively? Maybe it had just been used during
backup or something.

Look after SwapIn/SwapOut (si/so) it should be '0'
$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system--
------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id
wa st
 1  0     12  89344  46608 586384    0    0    12     8   30   86  0  0 99
0  0

If you want to see the amount of ram used by each program with childs run
this:
ps -A --sort -rss -o comm,pmem | awk '
  NR == 1 { print; next }
  { a[$1] += $2 }
  END {
    for (i in a) {
      printf "%-15s\t%s\n", i, a[i];
    }
  }
'


On Tue, Oct 16, 2018 at 11:04 AM Nicola Contu <nicola.co...@gmail.com>
wrote:

> Hello,
> we are running Postgres 10.5 with master slave replication.
>
> These are our custom params
>
> archive_command = 'pgbackrest --stanza=cmdprod archive-push %p' # command
> to use to archive a logfile segment
> archive_mode = on # enables archiving; off, on, or always
> checkpoint_completion_target = 0.7 # checkpoint target duration, 0.0 - 1.0
> default_text_search_config = 'pg_catalog.english' #
> datestyle = 'iso, mdy' #
> effective_cache_size = 120GB #
> hot_standby = on                        # "on" allows queries during
> recovery
> lc_messages = 'en_US.UTF-8'                      # locale for system
> error message
> lc_monetary = 'en_US.UTF-8'                      # locale for monetary
> formatting
> lc_numeric = 'en_US.UTF-8'                      # locale for number
> formatting
> lc_time = 'en_US.UTF-8'                          # locale for time
> formatting
> listen_addresses = '*' # defaults to 'localhost', '*' = all
> log_autovacuum_min_duration = 1000ms        # -1 disables, 0 logs all
> actions and
> log_checkpoints = on #
> log_line_prefix = '%t [%r] [%p]: [%l-1] db=%d,user=%u ' #
> log_lock_waits = on                      # log lock waits >=
> deadlock_timeout
> log_min_duration_statement = 1000ms        # -1 is disabled, 0 logs all
> statements
> log_statement = 'ddl'                  # none, ddl, mod, all
> log_temp_files = 1024kB                      # log temporary files equal
> or larger
> maintenance_work_mem = 2GB #
> max_connections = 220 #
> max_parallel_workers_per_gather = 8        # taken from
> max_worker_processes
> max_wal_size = 2GB #
> min_wal_size = 1GB #
> pg_stat_statements.max = 10000 #
> pg_stat_statements.track = all #
> port = 5432                            # port number which Postgres listen
> shared_buffers = 10GB #
> shared_preload_libraries = 'pg_stat_statements'          # (change
> requires restart)
> synchronous_standby_names = '1 ( "usnyh2" )' # comment out during upgrade
> track_activity_query_size = 16384        # (change requires restart)
> track_io_timing = on #
> wal_buffers = 16MB #
> wal_keep_segments = 100 #
> wal_level = replica                    #  minimal, replica, or logical
> work_mem = 600MB #
>
> This server is on Centos 7 and the strange thing is that we see a lot of
> swap usage :
>
> [root@usnyh-cmd1 ~]# free -m
>               total        used        free      shared  buff/cache
>  available
> Mem:         257652        7555        5559       12804      244536
> 236036
> Swap:         16383        7326        9057
>
> 7GB used.
>
> But can't see it from any of the commands like top etc.
> I am sure it is postgres because it is the only service running on that
> machine.
>
> Is there anything we can do?
> On the sync slave, the usage is just 400MB.
>
> Any trick?
>
> Thanks a lot,
> Nicola
>

Reply via email to