DEV Community

Review Laptop
Review Laptop

Posted on • Originally published at reviewlaptop.vn

Chạy PostgreSQL + Redis + Elasticsearch trên ThinkPad X1 2-in-1 Aura

Đối với một developer, việc xây dựng một môi trường phát triển (dev environment) chuẩn với đầy đủ các thành phần như PostgreSQL, Redis và Elasticsearch là điều bắt buộc. Tuy nhiên, câu hỏi đặt ra là: Liệu một chiếc laptop mỏng nhẹ dành cho doanh nhân như ThinkPad X1 2-in-1 Gen 11 Aura Edition có đủ sức gánh vác "stack" này không?

Phân tích RAM Floor và hiệu năng thực tế

Khi chạy trên Docker Desktop hoặc WSL2, mỗi dịch vụ sẽ chiếm một lượng tài nguyên nhất định. Dưới đây là ước tính RAM usage cho stack này trong môi trường dev:

  • PostgreSQL: Idle khoảng 150-200MB. Khi chạy query phức tạp hoặc có nhiều connection, nó có thể tăng lên 500MB - 1GB tùy vào cấu hình shared_buffers.
  • Redis: Rất nhẹ, idle chỉ khoảng 30-50MB. Tuy nhiên, nếu bạn lưu trữ nhiều key hoặc sử dụng các cấu trúc dữ liệu phức tạp, nó sẽ tăng dần.
  • Elasticsearch: Đây là "con quái vật" thực sự. Ngay cả khi cấu hình tối thiểu, Elasticsearch thường chiếm từ 1GB đến 2GB RAM chỉ để khởi động và duy trì index.

Tổng cộng: Để chạy mượt mà cả 3 dịch vụ cùng với IDE (như VS Code hoặc IntelliJ) và hàng chục tab trình duyệt, mức RAM floor thực tế bạn cần là khoảng 6GB - 8GB chỉ riêng cho stack database này.

Cấu hình Docker-compose và ngưỡng giới hạn

Để tránh việc một service "ngốn" hết tài nguyên của máy, bạn nên giới hạn resource trong file docker-compose.yml:

services:
  postgres:
    deploy:
      resources:
        limits:
          memory: 1G
  redis:
    deploy:
      resources:
        limits:
          memory: 512M
  elasticsearch:
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    deploy:
      resources:
        limits:
          memory: 2G
Enter fullscreen mode Exit fullscreen mode

Ngưỡng RAM: 16GB hay 32GB?
Với cấu hình của ThinkPad X1 2-in-1 Gen 11 Aura Edition với RAM lên tới 32GB LPDDR5X, bạn hoàn toàn có thể chạy stack này mà không gặp bất kỳ trở ngại nào.

  • 16GB: Đủ dùng cho dev stack cơ bản, nhưng bạn sẽ bắt đầu thấy máy "đuối" nếu chạy thêm các container Microservices khác hoặc chạy máy ảo.
  • 32GB: Là lựa chọn tối ưu cho doanh nhân và developer chuyên nghiệp. Nó cho phép bạn chạy song song nhiều môi trường, các công cụ AI cục bộ (nhờ chip Intel Core Ultra 7 365) và vẫn giữ được sự mượt mà tuyệt đối.

Bài viết này là bản tóm tắt kỹ thuật. Xem chi tiết tại bài gốc.

Top comments (0)