- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Tôi đang sử dụng multiprocessor.Pool
并行处理一些文件。该代码等待接收文件,然后使用 Pool.apply_async
将该文件发送给工作人员。 ,然后处理文件。
这段代码应该一直在运行,因此我从不关闭池。然而,这会导致池随着时间的推移消耗大量内存。
Mã như sau:
if __name__ == "__main__":
with Pool(processes=PROCESS_COUNT) as pool:
trong khi Đúng:
f = wait_for_file()
pool.apply_async(process_file, (f,))
如何在不关闭池的情况下防止发生高内存使用率?
1 Câu trả lời
是的,如果你分配资源并且你不释放它们,不管是 spawned processes 的数量或者只是(一大块)内存,在您或您的系统自愿或强制解除分配之前,您机器上用于其他任务的资源将减少。
您可能想使用 maxtasksperchild
Pool
的论据试图杀死奴隶,例如如果他们分配了内存并且您在某处发生了泄漏,那么您至少可以节省一些资源。
Note: Worker processes within a Pool typically live for the complete duration of the Pool’s work queue. A frequent pattern found in other systems (such as Apache, mod_wsgi, etc) to free resources held by workers is to allow a worker within a pool to complete only a set amount of work before being exiting, being cleaned up and a new process spawned to replace the old one. The maxtasksperchild argument to the Pool exposes this ability to the end user.
Pool
实现因为在你到达那里之前,它会是马车,你会不必要地浪费时间。
相反 使用例如
Celery (
tutorial ) 甚至希望对讨厌的极端情况进行测试,您可能会花费比必要的更多时间。
关于python - 不断运行的 worker 池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68411908/
Gần đây chúng tôi đã triển khai một nhóm SQL chuyên dụng tới không gian làm việc Synapse trong quá trình sản xuất. Trong quá trình phát triển, chúng tôi có quyền truy cập vào cả nhóm SQL không có máy chủ và nhóm SQL chuyên dụng. Tuy nhiên, trong quá trình sản xuất, chúng tôi có quyền truy cập vào nhóm SQL không có máy chủ nhưng không có quyền truy cập vào SQL chuyên dụng
Giả sử bạn đưa ra một dịch vụ WCF từ một dự án và sử dụng nó trong một dự án khác bằng cách sử dụng Add Service Reference (trong trường hợp này là ứng dụng WPF Framework 3.5). Khi bạn khởi tạo lại một proxy có nguồn gốc từ ClientBase, Client
Tôi có một hàm xử lý tất cả dữ liệu trong một tập dữ liệu song song bằng cách sử dụng multiprocessing.Pool. từ multiprocessing import Pool ... def func():
Tôi đang cố gắng sử dụng nhóm công nhân trong Python bằng cách sử dụng đối tượng quy trình. Mỗi công nhân (một quy trình) thực hiện một số khởi tạo (mất nhiều thời gian), được truyền một chuỗi công việc (lý tưởng nhất là sử dụng map()) và trả về một cái gì đó. Ngoài ra, không có
Tôi là một kỹ sư phần mềm và gần đây tôi đã xây dựng hộp Linux của mình và muốn khám phá thêm các tác vụ kiểu quản trị hệ thống. Tôi đã tìm hiểu và đọc rất nhiều về ZFS nhưng tôi ngày càng bối rối vì mỗi bài viết lại mô tả nó một cách khác nhau. Mọi thứ
Tôi có zfs pool: $ sudo zpool status lxd pool: lxd state: ONLINE scan: none requested config: NAME
Tôi có một dự án dựa trên Actor và một phần của dự án đó là tôi phải sử dụng một số Actor để nhận tin nhắn, sau đó một Actor được chỉ định cho từng yêu cầu riêng biệt và mỗi Actor chịu trách nhiệm thực hiện yêu cầu tin nhắn của mình, vì vậy tôi cần thứ gì đó giống như luồng cho
Tôi đã cài đặt thành công FreeBSD vào tệp hình ảnh thô bằng trình giả lập QEMU. Tôi đã định dạng tệp hình ảnh bằng hệ thống tệp ZFS (ZFS POOL). Sử dụng lệnh sau đây, tôi đã gắn thành công zpool
Tôi đang sử dụng multiprocessor.Pool để xử lý một số tệp song song. Mã này chờ nhận tệp rồi gửi tệp đó tới các công nhân bằng cách sử dụng Pool.apply_async. và sau đó xử lý tệp. Mã này phải luôn chạy.
Tôi đang sử dụng nguồn dữ liệu Bonecp với slick. và phát hiện ra rằng nhóm chứa các kết nối đã đóng nên tôi luôn nhận được ngoại lệ này java.sql.SQLException: Kết nối đã đóng! tại com
Tôi có một ứng dụng Rails đa thuê bao với gem căn hộ và tôi có thể chuyển đổi thành công đối tượng thuê cơ sở dữ liệu trong mỗi worker bằng apartment-sidekiq. Tuy nhiên, công nhân sidekiq là
Nhóm ZFS có thể bao gồm các tập dữ liệu (hệ thống tệp, ảnh chụp nhanh, v.v.) hoặc ổ đĩa. Các ổ đĩa ZFS giống như các thiết bị khối, nhưng tôi không hiểu sự khác biệt giữa một nhóm và một hệ thống tập tin. Khi tôi tạo zpool tạo pool1 sda sdb sdc
Tôi có luồng không khí chạy trên một container docker. Tôi đang sử dụng Airflow phiên bản 2.0.2. Tôi biết thực ra tôi có thể tạo một nhóm thông qua UI. Nhưng tôi đang tìm cách thực hiện việc này trong docker thông qua tệp pools.json
Tôi có một nhóm jdbc trong tomcat được sử dụng để thiết lập kết nối cơ sở dữ liệu. Tôi không đóng đối tượng kết nối một cách rõ ràng sau khi sử dụng. Tham số "maxActive" của tôi được đặt thành 100. Ứng dụng chạy một lúc nhưng sau đó không thực hiện được truy vấn cơ sở dữ liệu. Nó sẽ chờ trong thời gian vô hạn.
Đọc tài liệu PostgreSQL tại đây, tôi đọc được những thông tin sau: Ngoài ra, các kết nối được yêu cầu cho người dùng khác ngoài cấu hình mặc định
Tôi có luồng không khí chạy trên một container docker. Tôi đang sử dụng Airflow phiên bản 2.0.2. Tôi biết thực ra tôi có thể tạo một nhóm thông qua UI. Nhưng tôi đang tìm cách thực hiện việc này trong docker thông qua tệp pools.json
Tôi đang đọc một tệp URL lớn và đưa ra yêu cầu tới một dịch vụ. Yêu cầu được thực hiện bởi máy khách bằng cách trả về ListenableFuture. Bây giờ tôi muốn giữ một nhóm ListenableFuture, ví dụ, để thực thi tối đa N Fut
Tôi muốn sử dụng hàng đợi để lưu trữ kết quả vì tôi muốn người dùng (tuần tự thay vì song song) xử lý kết quả của các công nhân khi họ tạo ra kết quả. Bây giờ, tôi muốn biết tại sao chương trình sau lại bị treo. nhập multiprocessing như mp imp
Tôi đang làm việc trên một ứng dụng trang đơn và hiện đang xây dựng một hàm JQuery, ajax để tất cả các lệnh gọi của tôi đều được thực hiện. Đối với một trang thông thường, tôi có thể có 3 lệnh gọi ajax. Ý tưởng của tôi là nếu người dùng ra ngoài Internet, những aj này
Tôi có một lớp Đơn vị và một số lớp con của nó (Cung thủ, Kiếm sĩ, v.v.). Làm thế nào tôi có thể tạo một nhóm tái chế tất cả các lớp con của một loại tế bào? Câu trả lời hay nhất Điều này là không thể vì một nhóm chỉ có thể chứa các đối tượng thuộc một loại cụ thể. Nếu không, bạn có thể gặp phải tình huống như thế này: Pool unitP
Tôi là một lập trình viên xuất sắc, rất giỏi!