Làm thế nào để tăng kích thước hoán đổi?


17

Gần đây, tôi đưa thêm ram vào máy chủ của mình và bây giờ tôi đã có tổng cộng 24GB RAM. Ban đầu, tôi thiết lập HĐH để có kích thước hoán đổi 2GB.

/dev/sdc1               1         281     2257101   82  Linux swap / Solaris
/dev/sdc2   *         282       60801   486126900   83  Linux

2GB được phân bổ để trao đổi hiện tại, nhưng đọc xung quanh có vẻ như nó không nhiều. Đối với một hệ thống có 24 GB, tôi nghĩ sẽ phân bổ ít nhất 10 GB trao đổi.

Câu hỏi của tôi là: Tôi có thể làm điều đó trong khi HĐH đang chạy không? Tôi có phải cài đặt lại không? Tôi đang sử dụng OpenSuse 11.3

Câu trả lời:


23

Bạn đã quyết định tạo một phân vùng trao đổi riêng khi cài đặt. Bạn không thể thay đổi kích thước trực tuyến - ngay cả thay đổi kích thước ngoại tuyến sẽ mất một khoảng thời gian đáng kể và chịu rủi ro tiềm ẩn làm hỏng hệ thống tệp tiếp theo của bạn trên / dev / sdc2.

Tùy chọn dễ nhất để giải quyết vấn đề này là tạo phân vùng trao đổi mới trên một đĩa khác mà bạn hiện không sử dụng (hoặc có thể đủ khả năng ngoại tuyến để phân vùng lại) hoặc chỉ cần sử dụng tệp hoán đổi trong hệ thống tệp hiện có (đi kèm với một số hình phạt hiệu suất nhỏ do chi phí hệ thống tập tin ).

Quy trình chung để thêm phân vùng / tệp trao đổi:

  • tạo phân vùng mới loại 82h hoặc tệp 8 GB mới bằng cách sử dụng dd if=/dev/zero of=/swapfile bs=1M count=8192
  • khởi tạo nó bằng cách sử dụng mkswap /swapfilehoặcmkswap /dev/sdXX
  • sử dụng swapon /swapfilehoặcswapon /dev/sdXX tương ứng để cho phép không gian hoán đổi mới của bạn đang hoạt động
  • thêm một mục vào / etc / fstab để đảm bảo không gian hoán đổi mới của bạn được kích hoạt khi khởi động lại

Phân vùng trao đổi hiện tại của bạn vẫn được sử dụng, bạn có thể muốn thoát khỏi nó vì mục đích giảm độ phức tạp. Chỉ cần sử dụng swapoff /dev/sdc1để vô hiệu hóa việc sử dụng nó vào lúc này và xóa tham chiếu trong/etc/fstab


@ cú pháp-dj cảm ơn. dữ liệu trên đĩa nơi trao đổi là rất quan trọng và tôi có một đĩa khác mà tôi có thể sử dụng. Bạn có nghĩ rằng việc đặt một đĩa khác là trao đổi sẽ ảnh hưởng đến hiệu suất? Tôi có phải trao đổi / dev / sdc1 không?
x-man

Nó sẽ ảnh hưởng theo cách này hay cách khác - nếu / dev / sdc2 đang được sử dụng nhiều, I / O này cạnh tranh với I / O trao đổi. Nếu bạn thêm phân vùng của đĩa khác dưới dạng trao đổi, bạn chỉ cần thêm tải I / O trao đổi vào đĩa này. Điều gì sẽ có lợi cho hiệu suất trao đổi, chắc chắn gây bất lợi cho I / O khác của bạn trên đĩa bị ảnh hưởng. Điều đó đang được nói, không có gì là xấu cho hiệu suất hệ thống của bạn như một số lượng lớn yêu cầu pageout / pagein. Nếu bạn thấy điều này, hãy sửa nó bằng cách thêm bộ nhớ hoặc giảm dung lượng bộ nhớ của hệ thống.
the-wợi

có hai thiết bị trao đổi trên các trục khác nhau sẽ giúp hiệu suất trao đổi của bạn (vì có hai đĩa có thể được xử lý đồng thời thay vì chỉ có một để đọc và ghi vào). Nhưng vì dù sao bạn cũng không nên thấy hoạt động I / O cao do hoán đổi, bạn có thể thích sử dụng chỉ một thiết bị / phân vùng / tệp để dễ dàng quản trị
the-wợi

1
Lưu ý rằng một tệp hoán đổi sẽ không hoạt động nếu bạn đang sử dụng BtrFS. Hai cách giải quyết là (1) tạo một thiết bị loopback hoặc (2) sử dụng btrfs-exchangeon .
chéo

@ the-wợi Làm thế nào để một người thực sự tạo ra /etc/fstabmục để đảm bảo hoán đổi mới được kích hoạt khi khởi động lại?
SIGSTACKFAULT

3

Bạn sẽ cần trao đổi trong trường hợp này? Tôi không biết những gì bạn đã chạy trên hệ thống của mình, nhưng tôi cố gắng có đủ bộ nhớ trong các máy chủ của mình để tránh trao đổi hoàn toàn ... (tôi có nó, nhưng chỉ là một lỗi không an toàn, nếu máy chủ của tôi bắt đầu hoán đổi, tôi mua thêm bộ nhớ ...)


Tôi đứng về phía bạn, trao đổi chủ yếu được sử dụng để ngăn ngừa sự cố trong trường hợp cạn kiệt bộ nhớ (dễ bay hơi) và ngay khi bạn bắt đầu sử dụng platters, máy chủ của bạn sẽ sử dụng I / O và / hoặc bandwith một cách khôn ngoan, mặc dù SSD có thể giúp ích chúng chậm hơn ít nhất 10 lần so với RAM mà ngày nay thực sự rẻ. Giá của DDR3 ECC 1333MHz là khoảng 1000 đô la cho 64GB (8x8GB)
Shadok

2

Bạn phải phân vùng lại đĩa. Nếu tôi nhớ rõ việc di chuyển phân vùng Linux không được hỗ trợ trong phân chia nhưng bạn cũng có thể thu nhỏ hệ thống tập tin và phân vùng linux của mình và sau đó thực hiện một trao đổi khác ở cuối đĩa. Bạn không thể làm điều này trong khi hệ thống đang trực tuyến.

Giải pháp thay thế là sử dụng một tệp lớn làm trao đổi. (Không biết hôm nay có phải là một ý tưởng hay không.)


Không phải mọi hệ thống tập tin có thể được thu nhỏ, thậm chí ngoại tuyến. Thật không may, điều này ảnh hưởng đến các lựa chọn phổ biến như XFS ( xfs.org/index.php/Shrinking_Support ).
Sven

@Stone có nghĩa là cài đặt lại hệ điều hành?
x-man

Không. Nó có nghĩa là tạo bản sao lưu :), khởi động LiveCD, thu nhỏ hệ thống tập tin linux sau đó phân vùng sdc2 và thực hiện trao đổi mới ở cuối đĩa và khởi động lại hệ thống của bạn.
Đá

0

1 Tắt tất cả các quy trình trao đổi

sudo swapoff -a

2 Thay đổi kích thước trao đổi

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks

3 Làm cho tập tin có thể sử dụng như trao đổi

sudo mkswap /swapfile

4 Kích hoạt tập tin trao đổi

sudo swapon /swapfile

5 Kiểm tra số lượng trao đổi có sẵn

grep SwapTotal /proc/meminfo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.