开源 ERP 软件 Odoo 提速指南

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

Odoo 是最流行的 ERP(企业资源计划)软件,它由 Python 编写,使用 PostgreSQL 作为后端数据库。Odoo 社区版是免费的开源软件,它囊括了项目管理,生产、财务、记账和销售管理,仓储管理,人力资源管理,甚至还有更多项目。里面包含了 30 个核心模块,以及超过 3000 个社区模块。Odoo 部署了大量的模块,数据库里也包含了庞大的数据等等,这些都使得这个软件比较复杂,可能会导致效率低下。Odoo 的两个主要瓶颈在于磁盘访问,以及数据库查询时间。

为了提升 Odoo 实例的性能,你可以:

  • 使用一个快速磁盘驱动器来存储(最好是 SSD)。
  • 使用内存充足的 Linux VPS
  •   在 Odoo 中激活多处理器模式multiprocessing mode。
  • 正确配置并优化 PostgreSQL 服务。

获得一台有着更多内存的 SSD VPS

正如我们先前提到的,随机磁盘访问速度是 Odoo 的主要瓶颈之一。因此,要确保 Odoo 部署在一台基于 SSD 的 VPS 上。由于 Odoo 是一个对资源十分敏感的应用,因此始终要把它安装在一台有着更多 RAM 的 VPS 上,如果可能,将整个 Odoo 实例及其数据库加载到 RAM 中。固态磁盘驱动器尤其以随机存取见长,而且由于 SSD 没有任何活动部件,它们能够取得数百倍于传统机械硬盘驱动器的随机存取 IOPS(LCTT译注:即每秒读写操作的次数)。如果服务器没有采用 SSD 来驱动或提速,那么不管你对 Odoo 做多少优化和配置都无济于事,它仍然会很慢。所以,获得正确的主机来部署 Odoo 是提升其性能的最重要因素。

其它 Odoo 优化包括:

在 Odoo 配置中启用多处理器选项

要实现此功能,请定位到 openerp-server 二进制文件:

 
  1. #updatedb
  2. #locate openerp-server
  3. /usr/bin/openerp-server

执行以下命令:

 
  1. #/usr/bin/openerp-server --help

该命令的输出结果如下:

 
  1. Usage: openerp-server [options]
  2. Options:
  3. --version show program's version number and exit
  4. (...)
  5. Multiprocessing options:
  6. --workers=WORKERS Specify the number of workers, 0 disable prefork mode.
  7. --limit-memory-soft=LIMIT_MEMORY_SOFT
  8. Maximum allowed virtual memory per worker, when
  9. reached the worker be reset after the current request
  10. (default 671088640 aka 640MB).
  11. --limit-memory-hard=LIMIT_MEMORY_HARD
  12. Maximum allowed virtual memory per worker, when
  13. reached, any memory allocation will fail (default
  14. 805306368 aka 768MB).
  15. --limit-time-cpu=LIMIT_TIME_CPU
  16. Maximum allowed CPU time per request (default 60).
  17. --limit-time-real=LIMIT_TIME_REAL
  18. Maximum allowed Real time per request (default 120).
  19. --limit-request=LIMIT_REQUEST
  20. Maximum number of request to be processed per worker
  21. (default 8192).

工作进程的数量应该和分配到 VPS 的 CPU 核心数一样,或者,如果你想为 PostgreSQL 数据库、cron 任务、或者其它和 Odoo 实例安装在同一台 VPS 上的其它应用预留出一些 CPU 核心,那么你可以将工作进程数设置为一个比 VPS 上可用 CPU 核心更低的值,以避免资源耗尽。

limit-memory-soft 和 limit-memory-hard 参数不言自明,你可以使用默认值,也可以根据 VPS 上的实际可用 RAM 来进行修改。

例如,如果你的 VPS 有 8 个 CPU 核心,以及 16 GB 内存,那么你可以将工作进程数设置为 17(CPU 核心数 x 2 + 1),limit-memory-soft 总值设置为 640 x 17 = 10880 MB,而 limit-memory-hard 总数设置为 68MB x 17 = 13056 MB,这样,Odoo 就会有总计达 12.75 GB 的 RAM。

例如,在一台拥有 16 GB RAM 和 8 个 CPU 核心的 VPS 上,编辑 Odoo 配置文件(如 /etc/odoo-server.conf),并添加以下行:

 
  1. vi /etc/odoo-server.conf
 
  1. workers = 17
  2. limit_memory_hard = 805306368
  3. limit_memory_soft = 671088640
  4. limit_request = 8192
  5. limit_time_cpu = 60
  6. limit_time_real = 120
  7. max_cron_threads = 2

别忘了重启 Odoo 让修改生效。

正确配置并优化 PostgreSQL

对于 PostgreSQL 优化,及时将它更新到最新版本是一个不错的主意。在 PostgreSQL 配置文件(pg_hba.conf)中,有两个设置需要修改:shared_buffers 和 effective_cache_size。将shared_buffers 设置为可用内存的 20%,effective_cache_size 设置为可用内存的 50%。

例如,如果 Odoo 安装到了一台 16 GB RAM 的 SSD VPS 上,那么在 pg_hba.conf 中使用如下设置:

 
  1. vi /var/lib/postgresql/data/pg_hba.conf
 
  1. shared_buffers = 3072MB
  2. effective_cache_size = 8192MB

重启 PostgreSQL 服务来让修改生效。

同时,也别忘了周期性手动执行 ‘VACUUM’。此操作会将陈旧或临时数据清理干净,但请牢记,它会大量占用 CPU 和磁盘使用。

原文发布时间为:2017-03-14

本文来自云栖社区合作伙伴“Linux中国”

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
关系型数据库 分布式数据库 数据库
沉浸式学习PostgreSQL|PolarDB 19: 体验最流行的开源企业ERP软件 odoo
本文主要教大家怎么用好数据库, 而不是怎么运维管理数据库、怎么开发数据库内核.
1115 2
|
6月前
|
搜索推荐
定制一套ERP系统多少钱 ERP软件定制开发费用
一套好用的erp软件系统能够给企业带来很多的好处,例如提高企业工作效率、降低企业经营成本等,可以让企业用更少的人创造更多的价值。 现在越来越多的企业想要开发一套ERP软件,企业需要为ERP定制开发的价格做打算。那么ERP软件定制的价格受哪些方面的因素影响呢?ERP系统多少钱呢?下面白码低代码平台就给大家介绍一下定制ERP软件费用由哪些因素构成。
|
4月前
|
JSON 监控 API
ERP软件、应用商城以及上货软件的API接入方式各有其特点
ERP软件、应用商城以及上货软件的API接入方式各有其特点,但大体上遵循类似的流程。以下是对这些API接入方式的详细解析:
|
5月前
|
人工智能 搜索推荐 数据中心
软件冠军对话:对标全球数字化,夯实ERP底座核心
软件冠军对话:对标全球数字化,夯实ERP底座核心
|
12月前
|
数据可视化 开发工具 数据安全/隐私保护
天津ERP软件定制开发公司
天津ERP系统近几年发展十分迅速,越来越多的天津企业认识到ERP系统的重要性,ERP系统帮企业管理切实有效降低了成本,那么天津ERP软件开发公司哪家好,在天津定制ERP系统选哪个公司呢,下面白码为你介绍下天津ERP软件系统开发公司。
|
关系型数据库 分布式数据库 PolarDB
沉浸式学习PostgreSQL|PolarDB 15: 企业ERP软件、网站、分析型业务场景、营销场景人群圈选, 任意字段组合条件数据筛选
本篇文章目标学习如何快速在任意字段组合条件输入搜索到满足条件的数据.
605 0
|
2月前
|
前端开发 JavaScript 关系型数据库
如何开发一个ERP系统:从零开始构建
【9月更文第4天】企业资源计划(ERP)系统是现代企业管理不可或缺的一部分,它集成了公司的关键业务流程,并提供了统一的数据管理平台。本文将探讨如何从零开始构建一个简单的ERP系统,并提供一些基本的代码示例来演示关键组件的开发过程。
647 3
|
4月前
|
存储 安全 数据安全/隐私保护
ERP系统的灾备与数据恢复:保障企业业务连续性
【7月更文挑战第29天】 ERP系统的灾备与数据恢复:保障企业业务连续性
222 2
|
4月前
|
数据采集 监控 Oracle
ERP系统的实施与变更管理:确保成功的数字化转型
【7月更文挑战第29天】 ERP系统的实施与变更管理:确保成功的数字化转型
281 0
|
20天前
|
供应链 JavaScript 数据挖掘
点晴模切ERP系统:模切行业管理创新的驱动力
模切企业在选择ERP管理系统的时间,一般都会了解点晴模切ERP。点晴模切ERP系统在解决模切管理痛点方面尤为突出,那么点晴模切ERP究竟是什么样的系统?我们一起来了解看看。
40 0
下一篇
无影云桌面