Commit 83c639293e2d2a7330d2c579ebeafddf841fb88b

Authored by Antonio Terceiro
1 parent 5f0c933e
Exists in master and in 83 other branches 3.x, add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup_not_prod, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev_env_minimal, disable_email_dev, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, prezento, r3, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, stable-devel, syslog, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

PostgreSQL: put system RAM to good use

cookbooks/postgresql/templates/centos/postgresql.conf.erb
1 1 listen_addresses = 'localhost,<%= node['peers']['database'] %>'
2 2  
3   -# TODO optimize these settings
  3 +<% ram = `awk '{ if ($1 == "MemTotal:") {print($2) } }' /proc/meminfo`.to_i %>
4 4  
5   -max_connections = 100 # (change requires restart)
6   -shared_buffers = 32MB # min 128kB
  5 +#######################################################################
  6 +# performance optimization settings
  7 +#######################################################################
  8 +shared_buffers = <%= (0.1 * ram).to_i %>kB # 10% of RAM for shared buffers
  9 +effective_cache_size = <%= (0.8 * ram).to_i %>kB # 80% of RAM for cache
  10 +
  11 +#######################################################################
  12 +# other settings
  13 +#######################################################################
  14 +max_connections = 500 # (change requires restart)
7 15 logging_collector = on # Enable capturing of stderr and csvlog
8 16 log_filename = 'postgresql-%a.log' # log file name pattern,
9 17 log_truncate_on_rotation = on # If on, an existing log file with the
... ...