开源 ERP 软件 Odoo 提速指南

简介:

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
本文主要教大家怎么用好数据库, 而不是怎么运维管理数据库、怎么开发数据库内核.
1481 2
|
JSON 监控 API
ERP软件、应用商城以及上货软件的API接入方式各有其特点
ERP软件、应用商城以及上货软件的API接入方式各有其特点,但大体上遵循类似的流程。以下是对这些API接入方式的详细解析:
|
人工智能 搜索推荐 数据中心
软件冠军对话:对标全球数字化,夯实ERP底座核心
软件冠军对话:对标全球数字化,夯实ERP底座核心
|
供应链 开发工具
erp企业管理系统软件哪个最好用?
“没有最好,只有更好”,当有人说出这句话时,其实是有含义的。就拿“ERP”这类软件产品来说,现代科技日新月异,可能你今天发明和研发的最新最好的产品,随着时间及生产力技术水平的不断提升,昨天的最好,在今天看起来已经是很普通的了。
erp企业管理系统软件哪个最好用?
|
关系型数据库 分布式数据库 PolarDB
沉浸式学习PostgreSQL|PolarDB 15: 企业ERP软件、网站、分析型业务场景、营销场景人群圈选, 任意字段组合条件数据筛选
本篇文章目标学习如何快速在任意字段组合条件输入搜索到满足条件的数据.
859 0
|
安全 网络安全 数据库
.kat6.l6st6r勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
随着科技的不断进步,我们的生活越来越离不开数字化数据。然而,这也让我们面临了更多的网络威胁,其中之一就是勒索病毒。本文91数据恢复将介绍一种名为.kat6.l6st6r的勒索病毒,以及如何恢复被其加密的数据文件以及如何预防这种威胁。
521 0
|
5月前
|
供应链 JavaScript 数据挖掘
一套SaaS ERP管理系统源码,生产管理系统源代码
小微企业SaaS ERP系统,基于SpringBoot+Vue+UniAPP开发,集成进销存、采购销售、MRP生产、财务、CRM、OA等全流程管理功能,支持自定义表单与工作流,助力企业数字化转型。
341 1
|
6月前
|
消息中间件 缓存 JavaScript
如何开发ERP(离散制造-MTO)系统中的生产管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO模式下的ERP生产管理模块,涵盖核心问题、系统架构、关键流程、开发技巧及数据库设计,助力企业打通计划与执行“最后一公里”,提升交付率、降低库存与浪费。
|
7月前
|
资源调度 安全 调度
为什么制造企业的MES、ERP系统上不了一线
制造业数字化转型中,ERP和MES系统虽为管理层带来高效与规范,但在车间一线却常遇落地难题。系统复杂、培训困难、环境限制及工人习惯等因素,使这些系统难以真正发挥作用,甚至造成数据滞后、记录缺失等问题。在此背景下,轻量化工具如二维码逐渐兴起,以其低成本、易操作、灵活部署等优势,成为连接系统与一线的“补位”方案。未来,重系统与轻工具并存,或将成为制造业数字化更务实的发展路径。
|
6月前
|
消息中间件 JavaScript 前端开发
如何开发ERP(离散制造-MTO)系统中的技术管理板块(附架构图+流程图+代码参考)
本文详解ERP(离散制造-MTO)系统中的技术管理板块,涵盖产品定义、BOM、工序、工艺文件及变更控制的结构化与系统化管理。内容包括技术管理的核心目标、总体架构、关键组件、业务流程、开发技巧与最佳实践,并提供完整的参考代码,助力企业将技术数据转化为可执行的生产指令,提升制造效率与质量。

热门文章

最新文章