档案软件高性能优化解决方案:从存储到查询全链路落地实操

一、前置环境准备

本次优化以主流开源档案管理软件Mayan EDMS为测试载体,适配Windows Server 2019+/Ubuntu 22.04 LTS环境,以下为必备工具包:

  • 数据库:PostgreSQL 15(直接替换默认SQLite)
  • 缓存:Redis 7(全文索引预热、会话存储)
  • 全文检索引擎:Elasticsearch 8.11.3(解决模糊查询慢问题)
  • 文件存储:MinIO 2024-01-01(替换本地文件系统实现对象存储分片)

一键安装Ubuntu必备组件命令

```bash 安装PostgreSQL 15 sudo apt update && sudo apt install -y postgresql-15 postgresql-contrib-15 安装Redis 7 sudo apt install -y redis-server redis-tools 安装Elasticsearch 8.11.3(添加官方源) wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic.list > /dev/null sudo apt update && sudo apt install -y elasticsearch=8.11.3 安装MinIO 2024-01-01 wget https://dl.min.io/server/minio/release/linux-amd64/minio_20240101170507.0.0_amd64.deb sudo dpkg -i minio_20240101170507.0.0_amd64.deb ```

二、核心组件配置

2.1 PostgreSQL 15调优

编辑/etc/postgresql/15/main/postgresql.conf,替换或新增以下配置:

```ini 内存调优(按服务器总内存8GB调整,16GB翻倍,32GB乘4) shared_buffers = 2GB effective_cache_size = 6GB maintenance_work_mem = 512MB work_mem = 32MB 并发调优 max_connections = 200 日志调优(仅错误日志,关闭查询日志提升性能) log_statement = 'none' log_min_duration_statement = 500 ```

重启并创建Mayan专用库

```bash sudo systemctl restart postgresql sudo -u postgres psql CREATE DATABASE mayan; CREATE USER mayan WITH PASSWORD 'your_secure_mayan_password'; GRANT ALL PRIVILEGES ON DATABASE mayan TO mayan; ALTER DATABASE mayan OWNER TO mayan; \q ```

2.2 Elasticsearch 8.11.3安全适配(简化版,仅内网用)

编辑/etc/elasticsearch/elasticsearch.yml,替换或新增以下配置:

```yaml 禁用HTTPS和安全认证(仅测试/内网生产环境) xpack.security.enabled: false xpack.security.enrollment.enabled: false xpack.security.http.ssl.enabled: false xpack.security.transport.ssl.enabled: false 绑定内网IP network.host: 0.0.0.0 http.port: 9200 单节点配置 discovery.type: single-node ```

重启并测试

```bash sudo systemctl restart elasticsearch curl http://localhost:9200 ```

2.3 MinIO配置

创建数据目录并配置服务

```bash sudo mkdir -p /data/minio sudo chown -R minio:minio /data/minio 编辑/etc/default/minio(不存在则创建) sudo nano /etc/default/minio ```

档案软件高性能优化解决方案:从存储到查询全链路落地实操

写入完整配置:

```ini MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=your_secure_minio_password MINIO_VOLUMES="/data/minio" MINIO_OPTS="--address :9000 --console-address :9001" ```

重启并登录控制台(http://服务器IP:9001)创建mayan专用桶

```bash sudo systemctl restart minio ```

三、Mayan EDMS配置替换

以Docker Compose部署为例(主流生产/测试方式)

  • 下载官方docker-compose.yml:wget https://gitlab.com/mayan-edms/mayan-edms/-/raw/master/docker/docker-compose.yml
  • 创建.env环境变量文件:nano .env

写入.env完整配置:

```env MAYAN_DATABASE_DRIVER=django.db.backends.postgresql MAYAN_DATABASE_NAME=mayan MAYAN_DATABASE_USER=mayan MAYAN_DATABASE_PASSWORD=your_secure_mayan_password MAYAN_DATABASE_HOST=172.17.0.1 Docker宿主机IP,Ubuntu默认是这个 MAYAN_DATABASE_PORT=5432 MAYAN_CACHE_BACKEND=django_redis.cache.RedisCache MAYAN_CACHE_LOCATION=redis://172.17.0.1:6379/1 MAYAN_SESSION_ENGINE=django.contrib.sessions.backends.cache MAYAN_SESSION_CACHE_ALIAS=default MAYAN_SEARCH_BACKEND=mayan.apps.dynamic_search.backends.elasticsearch.ElasticsearchBackend MAYAN_SEARCH_HOSTS=http://172.17.0.1:9200 MAYAN_DOCUMENTS_STORAGE_BACKEND=mayan.apps.storage.backends.minio.MinIOStorageBackend MAYAN_DOCUMENTS_STORAGE_BACKEND_ARGUMENTS={"bucket_name":"mayan","endpoint_url":"http://172.17.0.1:9000","access_key":"minioadmin","secret_key":"your_secure_minio_password","secure":false} ```

拉取镜像并启动

```bash docker-compose pull docker-compose up -d 等待10分钟初始化(首次启动会创建ES索引、MinIO权限) docker-compose logs -f mayan-edms 查看日志确认完成 ```

四、最后两步性能提优收尾

4.1 Elasticsearch索引预热

登录Mayan EDMS后台(默认http://服务器IP:8000,账号admin,密码admin),依次点击:
动态搜索 → 索引 → 批量操作 → 全部重建并预热

4.2 Mayan EDMS后台缓存预热

登录后台依次点击:
系统 → 工具 → 高级 → 缓存 → 全部清除并预加载热门查询缓存

五、效果验证

对比优化前后的性能指标(以50万PDF档案为例):

  • 单档案上传:从12s降至2.1s
  • 全库按关键词模糊查询:从47s降至0.8s
  • 档案缩略图加载:从8s批量降至1.2s批量
  • 并发用户数(TPS≥1):从12提升至87
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统