OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
 
main @ 75 LINES
 
[ HISTORY ]  [ UP ]
 

{
  config,
  lib,
  ...
}: let
  inherit (lib) mkIf;
  inherit (config.ooknet.server) database;
in {
  # hardware based postgresql configuration for: linode nano
  # 4GB RAM 1 Core
  # generated with: <http://pgconfigurator.cybertec.at>
  config = mkIf database.postgresql {
    services.postgresql = {
      settings = {
        # Connectivity
        max_connections = 20;
        superuser_reserved_connections = 3;

        # Memory Settings
        shared_buffers = "256 MB";
        work_mem = "32 MB";
        maintenance_work_mem = "320 MB";
        huge_pages = "off";
        effective_cache_size = "1 GB";
        effective_io_concurrency = 100; # concurrent IO only really activated if O
S supports posix_fadvise function
        random_page_cost = 1.25; # speed of random disk access relative to sequent
ial access (1.0)

        # Monitoring
        shared_preload_libraries = "pg_stat_statements"; # per statement resource 
usage stats
        track_io_timing = "on"; # measure exact block IO times
        track_functions = "pl"; # track execution times of pl-language procedures 
if any

        # Replication
        wal_level = "replica"; # consider using at least 'replica'
        max_wal_senders = 0;
        synchronous_commit = "on";

        # Checkpointing:
        checkpoint_timeout = "15 min";
        checkpoint_completion_target = 0.9;
        max_wal_size = "1024 MB";
        min_wal_size = "512 MB";

        # WAL writing
        wal_compression = "on";
        wal_buffers = -1; # auto-tuned by Postgres till maximum of segment size (1
6MB by default)
        wal_writer_delay = "200ms";
        wal_writer_flush_after = "1MB";

        # Background writer
        bgwriter_delay = "200ms";
        bgwriter_lru_maxpages = 100;
        bgwriter_lru_multiplier = 2.0;
        bgwriter_flush_after = 0;

        # Parallel queries:
        max_worker_processes = 1;
        max_parallel_workers_per_gather = 1;
        max_parallel_maintenance_workers = 1;
        max_parallel_workers = 1;
        parallel_leader_participation = "on";

        # Advanced features
        enable_partitionwise_join = "on";
        enable_partitionwise_aggregate = "on";
        jit = "on";
        max_slot_wal_keep_size = "1000 MB";
        track_wal_io_timing = "on";
        maintenance_io_concurrency = 100;
        wal_recycle = "on";
      };
    };
  };
}

{
  config,
  lib,
  ...
}: let
  inherit (lib) mkIf;
  inherit (config.ooknet.server) database;
in {
  # hardware based postgresql configuration 
for: linode nano
  # 4GB RAM 1 Core
  # generated with: <http://pgconfigurator.c
ybertec.at>
  config = mkIf database.postgresql {
    services.postgresql = {
      settings = {
        # Connectivity
        max_connections = 20;
        superuser_reserved_connections = 3;

        # Memory Settings
        shared_buffers = "256 MB";
        work_mem = "32 MB";
        maintenance_work_mem = "320 MB";
        huge_pages = "off";
        effective_cache_size = "1 GB";
        effective_io_concurrency = 100; # co
ncurrent IO only really activated if OS supp
orts posix_fadvise function
        random_page_cost = 1.25; # speed of 
random disk access relative to sequential ac
cess (1.0)

        # Monitoring
        shared_preload_libraries = "pg_stat_
statements"; # per statement resource usage 
stats
        track_io_timing = "on"; # measure ex
act block IO times
        track_functions = "pl"; # track exec
ution times of pl-language procedures if any

        # Replication
        wal_level = "replica"; # consider us
ing at least 'replica'
        max_wal_senders = 0;
        synchronous_commit = "on";

        # Checkpointing:
        checkpoint_timeout = "15 min";
        checkpoint_completion_target = 0.9;
        max_wal_size = "1024 MB";
        min_wal_size = "512 MB";

        # WAL writing
        wal_compression = "on";
        wal_buffers = -1; # auto-tuned by Po
stgres till maximum of segment size (16MB by
 default)
        wal_writer_delay = "200ms";
        wal_writer_flush_after = "1MB";

        # Background writer
        bgwriter_delay = "200ms";
        bgwriter_lru_maxpages = 100;
        bgwriter_lru_multiplier = 2.0;
        bgwriter_flush_after = 0;

        # Parallel queries:
        max_worker_processes = 1;
        max_parallel_workers_per_gather = 1;
        max_parallel_maintenance_workers = 1
;
        max_parallel_workers = 1;
        parallel_leader_participation = "on"
;

        # Advanced features
        enable_partitionwise_join = "on";
        enable_partitionwise_aggregate = "on
";
        jit = "on";
        max_slot_wal_keep_size = "1000 MB";
        track_wal_io_timing = "on";
        maintenance_io_concurrency = 100;
        wal_recycle = "on";
      };
    };
  };
}
 
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET