TìmhiểuvềhoánđổikhônggianbộnhớLinux Ngu ồn : quantrimang.com Khi máy tính cần chạy các chương trình lớn hơn bộnhớ vật lý sẵn có, hầu hết các hệ điều hành ngày nay sử dụng công nghệ hoán đổi. Đây là công nghệ mà trong đó một phần bộnhớ tạm thời được lưu trữ trên ổ cứng trong khi các dữ liệu khác được di chuyển vào trong các khônggiannhớ vật lý. Dưới đây là một số kỹ thuật giúp bạ n quản lý tốt hơn sự hoánđổi trên các hệ thống Linux và có được khả năng thực thi tốt nhất cho các hoánđổi hệ thống con. Linux phân chia bộnhớ truy cập ngẫu nhiên (RAM) thành các ngăn nhớ gọi là các trang. Hoánđổi là quá trình ở đó một trang nhớ được sao chép tới khônggian được cấu hình trước trên ổ cứng (không gianhoán đổi) nhằm giải phóng trang nhớ đó. Kích thước được kết hợp từ bộ nh ớ vật lý và khônggianhoánđổi là tổng dung lượng bộnhớ ảo. Có 2 lý do quan trọng mà cần phải thực hiện việc hoán đổi. Trước tiên khi hệ thống yêu cầu bộnhớ lớn hơn bộnhớ vật lý hiện tại đang có thì nhân hệ thống sẽ được chuyển sang các trang được sử dụng ít hơn và nhường bộnhớ cho các ứng dụng đang cần xử lý ngay. Thứ hai, số l ượng các trang quan trọng được sử dụng bởi một ứng dụng trong suốt giai đoạn khởi động có thể chỉ được dùng để khởi tạo rồi sau đó không dùng lại nữa. Hệ thống có thể chuyển đổi giữa các trang này và giải phóng bộnhớ cho các ứng dụng khác hay thậm chí cho cả cache lưu trữ ổ. Tuy nhiên việc hoánđổi cũng không phải hoàn toàn tốt. So với bộ nhớ, các ổ chạy rất chậm. Tốc độ bộnhớ có thể được đo bằng nano giây (ns) trong khi tốc độ ổ đo bằng mili giây (ms), do đó truy cập ổ chậm hơn hàng chục nghìn lần truy cập vào bộnhớ vật lý. Càng thực hiện hoánđổi nhiều thì hệ thống sẽ càng chậm. Đôi khi hoánđổi quá mức hoặc nhiều lần liên tiếp sẽ xảy ra ở một trang được chuyển ra r ồi ngay lập tức lại được chuyển vào rồi lại chuyển ra rồi cứ thế tiếp tục. Trong mỗi trường hợp thì hệ thống sẽ tìm ra các vùng nhớ trống và cùng lúc đưa vào chạy ứng dụng. Trường hợp này chỉ cần thêm RAM. Linux có hai loại khônggianhoán đổi: partition hoánđổi và tập tin hoán đổi. Partition hoánđổi là một phần độc lập của ổ cứng được sử dụng chỉ để hoán đổ i; không một tập tin nào khác được lưu trữ ở đây. Tập tin hoánđổi là một tập tin đặc biệt trong tập tin hệ thống có khả năng lưu trữ ở mọi nơi trong hệ thống và các tập tin dữ liệu. Để biết được dung lượng khônggianhoánđổi mà bạn có, sử dụng lệnh swapon -s. Bạn sẽ thu được kết quả như sau: Filename Type Size Used Priority /dev/sda5 partition 859436 0 -1 Mỗi dòng liệt kê một khônggianhoánđổi riêng được sử dụng bởi hệ thống. Ở đây, trường ‘Type’ chỉ ra rằng khônggianhoánđổi này là partition chứ không phải file, và tại trường ‘Filename’ ta thấy rằng hoánđổi xảy ra ở ổ đĩa sda5. ‘Size’ hiển thị dạng kilo byte và trường ‘Used’ cho biết số lượng kilo byte khônggianhoánđổi đã sử dụng (trường hợp này là 0). ‘Priority’ cho Linux bi ết khônggianhoánđổi nào được dùng đầu tiên. Một điều tiện lợi khi Linuxhoánđổi hệ thống con là nếu bạn có hai hay nhiều khônggianhoánđổi (trên 2 thiết bị khác nhau) với cùng một độ ưu tiên, thì Linux sẽ xen kẽ hoán chuyển các hoạt động giữa chúng, do đó có thể năng tốc độ thực thi. Để thêm các partition hoánđổi vào hệ thống trước hết bạn cần phải chuẩn bị. Bước 1 đảm bảo partition đó được đánh dấu như là partition hoánđổi và bước tiếp theo là tạo các hoánđổi tập tin hệ thống. Để kiểm tra các partition đã được đánh dấu chưa bạn chạy lệnh: fdisk -l /dev/hdb Thay thế /dev/hdb bằng thiết bị của ổ cứng trên hệ thống của bạn với partition hoánđổi trên nó. Kết quả như sau: Device Boot Start End Blocks Id System /dev/hdb1 2328 2434 859446 82 Linux swap / Solaris Nếu partition chưa được đánh dấu thì bạn cầ n phải sửa lại nó bằng cách chạy fdisk và dùng tùy chọn ‘t’. Hãy cẩn thận khi làm việc với các các partition. Bạn không muốn xóa đi những partition quan trọng bởi bị lỗi hay thay đổi id của partition khi hệ thống mắc lỗi trong việc hoán đổi. Tất cả dữ liệu trên một partition hoánđổi sẽ bị mất do đó hãy kiểm tra lại thay đổi bạn tạo ra. Đồng thời cũng chú ý rằng Solaris sử dụng cùng ID giố ng khônggianhoánđổiLinux cho cùng các partition, phải cẩn thận để không xóa các partition Solaris đó. Ngay khi partition được đánh dấu hoán đổi, bạn hãy dùng lệnh mkswap (make swap) như sau: mkswap /dev/hdb1 Nếu không có lỗi xảy ra thì hoánđổi của bạn đã sẵn sàng được sử dụng. Để kích hoạt hãy nhập: swapon /dev/hdb1 Bạn có thể kiểm tra bằng lệnh swapon -s. Để cài đặt khônggianhoánđổi tự động khi khởi động bạn cần thêm một entry cho /etc/fstab file, nơi chứa một danh sách các tập tin hệ thống và các khônggianhoánđổi cần cài đặt tại thời gian khởi động. Mỗi dòng có định dạng sau: <file system> <mount point> <type> <options> <dump> <pass> Khi khônggianhoánđổi là một loại đặc biệt của tập tin hệ thống thì rất nhiều các tham số không tương thích. Đối với khônggian hệ thống, hãy thêm: /dev/hdb1 none swap sw 0 0 Trong đó dev/hdb là một ngăn hoán đổi. Ngăn này không có điểm lắp đặt cố định, do đó ta có none. Loại hoánđổi với tùy chọn sw và hai tham số cuối cùng không được sử dụng nên chúng có giá trị là 0. Để kiểm tra xem khônggiánhoánđổi đã được tự động cài đặt mà không c ần phải khởi động lại thì bạn có thể dùng lệnh swapoff -a (tắt các khônggianhoán đổi) rồi sau đó dùng lệnh swapon - a (cài đặt tất cả mọi khônggianhoánđổi liệt kê tại tập tin /etc/fstab) rồi kiểm tra lại bằng lệnh swapon –s Tập tin hóanđổi Cũng giống như partition hoán đổi, Linux hỗ trợ cho bạn tạo được một tập tin hoán đổi, chuẩn bị và lắp đặ t cùng kiểu với partition hoán đổi. Lợi ích của các tập tin hoánđổi đó là bạn không cần phải tìm kiếm một partition trống hay phân chia lại ổ để thêm vào các khônggianhoán đổi. Để tạo một tập tin hoán đổi, trước tiên hãy dùng lệnh dd để tạo một tập tin trống. Ví dụ tạo một tập tin 1GB, nhập: dd if=/dev/zero of=/swapfile bs=1024 count=1048576 /swapfile là tên của tập tin hoánđổi và 1048576 là kích cỡ tính bằng kilo byte (ví dụ 1GB). Chuẩn bị tập tin hoánđổi b ạn dùng mkswap như khi tạo một partition, nhưng ở đây dùng tên của tập tin hoán đổi: mkswap /swapfile và tương tự, cài đặt tập tin hoánđổi dùng lệnh swapon: swapon /swapfile. Đầu vào /etc/fstab của một tập tin hoánđổi có dạng như sau: /swapfile none swap sw 0 0 Cần phải có bao nhiêu khônggianhoán đổi? Có thể chạy hệ thống Linux mà không cần một khônggianhoánđổi và hệ thống sẽ hoạt động tối nếu như ta có một bộnhớkhổng lồ—Nhưng nếu máy tính chạy tràn bộnhớ vật lý thì hệ thống s ẽ bị phá hủy và không có khả năng làm gì khác, do đó bạn nên có một khônggianhoánđổi nhất là từ khi khônggian đĩa đang ngày càng rẻ hơn. Câu hỏi được quan tâm nhiều nhất đó là giá thành bao nhiêu? Các phiên bản hệ điều hành Unix cũ hơn (ví dụ như Sun OS và Ultrix) yêu cầu một khônggianhoánđổi gấp 2 hay 3 lần khônggianbộnhớ vật lý. Các hệ điều hành ngày nay (ví dụ như Linux) không yêu cầu nhiều khônggianhoánđổi nhưng khônggian này có thể được s ử dụng khi bạn cấu hình máy. Quy luật như sau: 1) đối với hệ thống máy để bàn, sử dụng khônggianhoánđổi của hai bộnhớ hệ thống, khi đó bạn có thể chạy nhiều ứng dụng (nhiều trong số đó có thể sẽ bị tạm ngừng và dễ bị hoán đổi), bạn cũng có thêm dung lượng RAM cho các ứng dụng đang hoạt động. 2) Đối với máy chủ, có lượng hoánđổi ít hơn (một nửa của bộnhớ vật lý) do đó bạn dễ dàng hoánđổi khi cần nhưng hạn chế số lượng khônggianhoánđổi được sử dụng và nâng cấp cho RAM khi cần. 3) Đối với các máy để bạn cũ hơn (chỉ với 128MB), hãy dùng càng nhiều khônggianhoánđổi càng tốt, thậm chí có thể lên tới 1GB. Linux 2.6 kernel có thêm các tham số chủ đạo được gọi là swappiness cho phép các quản trị viên đặt các phươ ng pháp hoánđổi Linux. Đó là các số từ 0 đến 100. Các giá trị càng cao thì càng nhiều trang đuợc hoán đổi, và các giá trị càng thấp thì càng nhiều ứng dụng được giữ lại trong bộnhớ thậm chí là bị tạm ngừng. Andrew Morton cho biết ông đã chạy các máy để bàn với mức hoánđổi là 100. Một cách nghĩ khác cho ý kiến của Morton đó là nếu bộnhớ được hoánđổi quá nhanh thì thời gian khôi phục ứng dụng sẽ yế u đi bởi vì khi cửa sổ ứng dụng được kích thì hệ thống sẽ chuyển ứng dụng quay trở vềbộ nhớ, điều này sẽ mất rất nhiều thời gian. Giá trị mặc định của swappiness là 60. Bạn có thể thay đổi chúng tùy ý bằng cách nhập: echo 50 > /proc/sys/vm/swappiness Kết luận Quản lý khônggianhoánđổi là nhiệm vụ chủ chốt của quản trị viên hệ thống. Với kế hoạch tốt và sử dụng hợp lý thì hoánđổi có thể cung cấp tới bạn nhiều lợi ích. Đừng lo ngại về kinh nghiệm và luôn luôn kiểm tra hệ thống để chắc chắc rằng bạn đang đạt được những kết quả nh ư mong muốn. . một không gian hoán đổi gấp 2 hay 3 lần không gian bộ nhớ vật lý. Các hệ điều hành ngày nay (ví dụ như Linux) không yêu cầu nhiều không gian hoán đổi nhưng. Linux bi ết không gian hoán đổi nào được dùng đầu tiên. Một điều tiện lợi khi Linux hoán đổi hệ thống con là nếu bạn có hai hay nhiều không gian hoán đổi