我有一台服务器,它运行着一些独立的 Python、Java 应用程序,大多数时候它们将数据导入 PostGreSQL 数据库。我想向有企业级服务器调优经验的人咨询,如何以整体方式计算我的服务器所需的调优量,例如 vm.swappiness、vm.overcommit_ratio 以及我的服务器所需的其他数字调优。
我尝试在服务器上启用 sar 来捕获每日数字,但这些数字更像是总数,我不知道如何为我的应用程序分配内存。如果能得到帮助,我将不胜感激。
谢谢。
答案1
首先,确定系统中的瓶颈(PostgreSQL 查询速度慢、IO 速度慢、脚本运行缓慢)。然后使用标准监控工具(top、htop、iostat、vmstat、pgtop、iotop)确定原因。然后,找到解决方案(pgtune、内核参数、挂载选项、java vm 选项、重写源代码)。
答案2
您应该安装某种监控工具来获取统计数据。我认为,分析统计数据的最佳方法是获取受监控参数的可视化图表。Cacti 或 Zabbix 将为您提供这些图表。您的系统很可能是 I/O 密集型或内存密集型的,因此您应该从监控内存使用情况、交换文件使用情况、I/O 统计数据和主机上的平均负载开始。Cacti 有一套很好的模板来监控 I/O 统计数据:http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html另外,获取慢速 SQL 查询列表也很有用,您可以通过log_min_duration_statement = 200
在 postgresql.conf 中设置类似内容来实现,其中 200 是所需的毫秒数,您也可以使用任何其他数字。