2012-03-16 32 views
19

Tôi có các tập lệnh tạo hàng trăm tập tin tạm thời, nhỏ, tạm thời cần được tạo và sẽ sớm đọc lại, sau đó hủy liên kết./tmp so với/dev/shm để lưu trữ tệp tạm thời trên Linux?

Thử nghiệm của tôi cho thấy ít nếu có sự khác biệt về hiệu suất bằng cách đặt các tệp được nêu trong /tmp (vào đĩa) hoặc vào /dev/shm (bộ nhớ chia sẻ cấp hệ thống tệp) trên Linux ngay cả khi tải vừa phải. Tôi thuộc tính này vào bộ đệm hệ thống tập tin.

Cấp đĩa sẽ cuối cùng bị ảnh hưởng bởi các hành động hệ thống tệp, nhưng trên nhiều tệp ghi tạm thời ghi nhỏ, tại sao bạn (không) giới thiệu /dev/shm qua thư mục được sao lưu bằng đĩa? Bạn có nhận thấy sự gia tăng hiệu suất lớn với thư mục bộ nhớ chia sẻ trên một VFS được lưu trữ không?

Trả lời

13

/dev/shm được thiết kế cho một mục đích rất đặc biệt, không cho các tập tin được đưa vào bởi các chương trình tùy ý.

Ngược lại, /tmpexactly made for this. Trên hệ thống của tôi, /tmp cũng là tmpfs, ngược lại với /var/tmpdesigned để đặt tệp lớn hơn, có khả năng sẽ tồn tại lâu hơn.

+1

1 '/ dev/shm' được một mục đích chung 'tmpfs' là một chi tiết thi hành Linux, không phải là một đảm bảo bằng mọi cách (không gian có sẵn thường rất hạn chế dù sao đi nữa). Sử dụng '/ tmp' và'/var/tmp' cho mục đích của chúng. Và tùy thuộc vào cách sử dụng và hệ thống tập tin, nếu bạn tạo và hủy liên kết một tệp, có thể nó sẽ nằm trong bộ nhớ cache chỉ và không bao giờ nhấn đĩa. – ephemient

+0

@ephemient - một tệp tạo và hủy liên kết ngay lập tức ngay cả khi được lưu vào bộ nhớ cache cuối cùng sẽ nhấn vào đĩa, phải không? – Xailor

+1

@glglgl - Trên hệ thống vào mà chúng tôi đang triển khai (trong một kịch bản dịch vụ quản lý)/tmp được hỗ trợ không bởi 'tmpfs' nhưng bởi đĩa sda1 chính. Nếu không, tôi đồng ý giữ nguyên tiêu chuẩn, nhưng đó là môi trường triển khai của chúng tôi tại thời điểm này. – Xailor

3

Về bản chất, nó cũng giống nhau (shm cũng được sao lưu hoàn toàn bởi đĩa khi bạn có một tệp hoán đổi).

/tmp có lợi thế là nó lấp đầy khó khăn hơn (xem xét đĩa cứng của bạn có khả năng lớn hơn swapfile của bạn). Và nó cũng được hỗ trợ rộng rãi hơn.

Các vấn đề liên quan