banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Liệu có cần swap khi dùng linux  XML
  [Question]   Re: Liệu có cần swap khi dùng linux 05/12/2008 09:21:10 (+0700) | #31 | 161386
mR.Bi
Member

[Minus]    0    [Plus]
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
[Profile] [PM] [WWW]
ở Kernel 2.6 thì hình như không còn sự khác biệt giữa Swap files và Swap Partitions.
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children"
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 05/12/2008 09:23:40 (+0700) | #32 | 161387
[Avatar]
St Konqueror
Member

[Minus]    0    [Plus]
Joined: 08/12/2007 00:47:39
Messages: 229
Offline
[Profile] [PM]

kenshin8x wrote:
về mặt kỹ thuật thì swap của các hệ điều hành nói chung không có sự khác biệt. sự khác nhau giữa swap của linux khác swap của windows là win dành 1 phần ổ cứng cài đặt làm swap (cho đỡ rắc rối khi cài đặt nhất là đối với người không rành về máy tính) còn swap của linux đòi hởi phân vùng riêng biệt để quản lý cho khoa học smilie  

Hơ hơ, đang trong box *nix mà windows gì đây vậy bác?

Bổ sung thêm bài viết trước: Mình google thì chỉ thấy nói là kernel 2.6.x thì swap partition và swap file là như nhau, nhưng kernel 2.4.x trở về trước thì hiệu năng dùng swap file kém hơn swap partition. Còn lí do tại sao thì mình không thấy nói.
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 05/12/2008 09:28:07 (+0700) | #33 | 161388
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

St Konqueror wrote:
Hi all, các bạn có thể cho mình biết sự khác nhau (về mặt technique và về hiệu năng sử dụng) giữa swap partition và swap file được không?
Cám ơn. 

Tớ chưa bao giờ dùng swap file, nhưng sau khi suy nghĩ và tìm đọc thì tạm tổng kết thế này:

- swap partition có thể được dùng chung bởi 2 hoặc nhiều distro cài trên một máy
- swap partition sẽ tốt hơn trong trường hợp đĩa cứng đầy, bởi vì swap file sẽ có thể tạo phân mảnh
- swap file tiện dụng hơn trong trường hợp bạn cần thay đổi kích cỡ của swap thường xuyên
- Một số người nói rằng: với cấu hình phần cứng ngày nay + những phiên bản kernel hiện tại (>= 2.6) và đĩa cứng của bạn còn trống nhiều thì swap partition hay swap file cũng như nhau thôi.
- Theo lý thuyết thì swap file sẽ hoạt động với hiệu suất kém hơn một chút bởi vì nó được truy xuất qua file system
- Bạn có nguy cơ gặp rủi ro cao hơn nếu đặt swap file chung trên những phân vùng lưu dữ liệu
- ...

Mời các bạn bổ sung và thảo luận tiếp trong trường hợp bạn dùng cả swap file và swap partition trên cùng một đĩa cứng: hệ thống sẽ truy xuất kiểu gì, nếu kernel bị crash thì sao, ...
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 06/12/2008 12:52:38 (+0700) | #34 | 161508
[Avatar]
oRRoid
Member

[Minus]    0    [Plus]
Joined: 21/11/2008 19:07:57
Messages: 14
Offline
[Profile] [PM]

mrro wrote:

tớ có bao giờ kêu là bắt buộc phải có swap đâu. tớ chỉ nói là nên có, bởi vì không có swap thì có chuyện phiền toái sẽ xảy ra, chẳng hạn như giảm performance của hệ thống, bất kể là desktop hay server
 


Có phải ý mrro là một hệ thống có swap luôn hoạt động tốt hơn với 1 hệ thống không có swap ?
Một phân vùng swap dù sao cũng nằm trên đĩa cứng, cho nên tốc độ của nó chậm hơn nhiều so với RAM.
Giả sử mình có một hệ thống (desktop) có RAM 4GB, nhưng chỉ dùng các ứng dụng như Mozilla Firefox hay OpenOffice.org ... thì việc để dữ liệu qua Swap > RAM > CPU thay vì RAM > CPU có phải là tối ưu ?

Có những phiền toái nào có thể xảy ra với một hệ thống không có swap ?
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 06/12/2008 16:48:07 (+0700) | #35 | 161516
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

oRRoid wrote:

mrro wrote:

tớ có bao giờ kêu là bắt buộc phải có swap đâu. tớ chỉ nói là nên có, bởi vì không có swap thì có chuyện phiền toái sẽ xảy ra, chẳng hạn như giảm performance của hệ thống, bất kể là desktop hay server
 


Có phải ý mrro là một hệ thống có swap luôn hoạt động tốt hơn với 1 hệ thống không có swap ?
Một phân vùng swap dù sao cũng nằm trên đĩa cứng, cho nên tốc độ của nó chậm hơn nhiều so với RAM.
Giả sử mình có một hệ thống (desktop) có RAM 4GB, nhưng chỉ dùng các ứng dụng như Mozilla Firefox hay OpenOffice.org ... thì việc để dữ liệu qua Swap > RAM > CPU thay vì RAM > CPU có phải là tối ưu ?

Có những phiền toái nào có thể xảy ra với một hệ thống không có swap ?
 


Dĩ nhiên, cái ích lợi đầu tiên, nhìn thấy ngay bao giờ cũng là độ ổn định của hệ thống.

Kernel sẽ chỉ gọi đến swap khi nào không đủ bộ nhớ RAM để phục vụ nữa. Chính vì thế sẽ không có cái chu trình SWAP => RAM => CPU đâu trong trường hợp có 4GB RAM trừ phi hệ thống tiêu dùng cạn kiệt 4GB đấy rồi.

Còn phần phiền toái, bác có thể đọc lại những bài viết của mọi người ở trên. Thấy rất rõ.

smilie
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 06/12/2008 19:12:53 (+0700) | #36 | 161518
[Avatar]
oRRoid
Member

[Minus]    0    [Plus]
Joined: 21/11/2008 19:07:57
Messages: 14
Offline
[Profile] [PM]

K4i wrote:

Kernel sẽ chỉ gọi đến swap khi nào không đủ bộ nhớ RAM để phục vụ nữa. Chính vì thế sẽ không có cái chu trình SWAP => RAM => CPU đâu trong trường hợp có 4GB RAM trừ phi hệ thống tiêu dùng cạn kiệt 4GB đấy rồi.
 


RAM 4GB thì mình chưa có để thử, nhưng với hệ thống RAM 1GB, dùng Kernel 2.6.24 thì khi sử dụng những ứng dụng như FF hay OO.o thì swap thỉnh thoảng vẫn được dùng (dù chỉ vài trăm kB) mặc dù bộ nhớ còn khá nhiều.
Cho nên mình nghĩ việc Kernel chỉ gọi đến swap khi không đủ bộ nhớ là không chính xác.
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 06/12/2008 21:51:18 (+0700) | #37 | 161520
mrro
Administrator

Joined: 27/12/2001 05:07:00
Messages: 745
Offline
[Profile] [PM]
xui quá xá, nãy tớ soạn một bài dài ơi là dài về cái cách linux quản lý bộ nhớ, nhưng bấm nhầm nút gì đó, tự nhiên Firefox nó tắt mất cái cửa sổ đang soạn bài của tớ smilie.

thôi tớ viết ngắn gọn vài dòng ở đây vậy:

1. linux không swap toàn bộ chương trình ra ngoài theo kiểu cũ, mà sử dụng kỹ thuật paging, swap từng page (mỗi page là 4K trên x86, có thể khác trên các platform khác)

2. không phải hết bộ nhớ thì linux mới bắt đầu swap, mà nó sẽ swap những gì nó không cần ngay khi nó thấy lượng free memory giảm xuống quá thấp. mà free memory trên linux lúc nào cũng thấp, tự vì linux nó luôn cố mmap(2) thật nhiều file vào bộ nhớ, để tăng tốc.

3. cái gì bị swap ra ngoài? thường là các page ít sử dụng đến và các page liên quan đến heap và stack của các chương trình. nếu không có swap partition, linux bắt buộc phải để mấy page này trong bộ nhớ, làm cho việc sử dụng bộ nhớ không hiệu quả.

cho nên việc bạn gì ở trên memory còn mà swap vẫn được xài là vì vậy. phần swap này nó đang chứa các page ít sử dụng đến, nhưng vẫn chưa thể bỏ đi của máy tính.

trời ơi nãy viết dài dòng hay lắm, tiếc quá đi smilie.

-m
http://tinsang.net

TetCon 2013 http://tetcon.org

Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 07/12/2008 21:08:00 (+0700) | #38 | 161628
[Avatar]
giobuon
Member

[Minus]    0    [Plus]
Joined: 10/09/2006 06:25:46
Messages: 72
Offline
[Profile] [PM]
Okie, đã hiểu thêm đôi chút. Bác tóm lại như này từ đầu có phải đỡ không.
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 09/12/2008 05:25:44 (+0700) | #39 | 161737
[Avatar]
Xuan Hy
Locked

[Minus]    0    [Plus]
Joined: 29/06/2008 12:40:55
Messages: 75
Offline
[Profile] [PM] [Yahoo!]
Cám ơn mọi người, giờ thì không chỉ giải quyết được câu hỏi mà còn có thêm nhiều kiến thức rất hữu ích. Mong là sau này sẽ có nhiều hơn những cuộc trao đổi thú vị như thế này. smilie

- xh -
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 12/12/2008 10:53:45 (+0700) | #40 | 162094
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]

mrro wrote:

2. không phải hết bộ nhớ thì linux mới bắt đầu swap, mà nó sẽ swap những gì nó không cần ngay khi nó thấy lượng free memory giảm xuống quá thấp. mà free memory trên linux lúc nào cũng thấp, tự vì linux nó luôn cố mmap(2) thật nhiều file vào bộ nhớ, để tăng tốc.
 

Đính chính chút: bản thân mmap() không chiếm giữ/dùng memory, mà memory chỉ bị dùng/chiếm giữ khi virtual memory region trong process address space được đọc hoặc ghi (do Copy on Write) bởi process đó.

Không biết mrro có thể giải thích rõ hơn linux cố map những file nào được không, vào kernel address space hay đâu?
Mind your thought.
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 13/12/2008 12:05:31 (+0700) | #41 | 162240
mrro
Administrator

Joined: 27/12/2001 05:07:00
Messages: 745
Offline
[Profile] [PM]
@starghost: hơ hơ ý tớ là cái process nào nó gọi mmap(2) thì nó sẽ chiếm memory, chứ tự bản thân thằng kernel nó đâu có chủ động mmap(2) những thằng mà nó không cần đến đâu :-p.

khi mình chạy một ứng dụng bằng execve(2), thì cái elf loader của linux (giả sử đó là file elf) nó sẽ làm một số việc (mà cuối cùng thường sẽ có một cái lời gọi đến thằng mmap(2)):

* load cái binary vào bộ nhớ: cái này thì nó không gọi trực tiếp mmap(2), mà nó có một hàm trong source của linux nó làm, nhớ không lầm là hàm elf_map.

* nếu binary là dynamically linked thì linux sẽ load cái elf interpreter (thường cái này có sẵn trong bộ nhớ rồi, nó là cái /lib/ld-linux.so.2). cái thằng elf interpreter này tới lượt nó sẽ load tiếp mấy cái shared library (và mấy cái library nằm trong LD_PRELOAD) vào bộ nhớ. tất cả các vụ load này, đều sẽ có thực hiện một cái mmap(2).

* tới lượt chính application nó mmap(2) mấy cái file của nó, ví dụ như file cấu hình của hệ thống mà nó cần, hay file cấu hình riêng của nó...

tớ vừa chạy thử cái evince (là chương trình đọc file pdf) xem nó mmap(2) bao nhiêu phát:


$ strace -o output evince
$ fgrep mmap output | wc -l
311
$ fgrep MAP_ANONYMOUS output | wc -l
87
 


đó ghê chưa, chạy một cái đơn giản thôi, mà nó mmap(2) những 311 lần, trong đó chỉ có 87 lần là nó mmap(2) dạng anonymous thôi, còn lại đều là file-backed mmap hết.

còn muốn coi những file nào đang được mmap(2) thì dùng lệnh:


$ sudo lsof | grep mem
 


mấy cái file này khi được mmap(2) vào, thì việc nó có nằm trong bộ nhớ hay không là do thằng kernel quyết định (chính xác là cái virtual memory manager nó chăm sóc). mà tớ đã nói, để tăng tốc, cứ thằng nào được mmap(2) vào, là thằng kernel nó cố gắng để cho thằng đó nằm yên trong bộ nhớ, nếu điều kiện cho phép.

-m
http://tinsang.net

TetCon 2013 http://tetcon.org

Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 13/12/2008 15:01:21 (+0700) | #42 | 162277
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]

mrro wrote:

Mà tớ đã nói, để tăng tốc, cứ thằng nào được mmap(2) vào, là thằng kernel nó cố gắng để cho thằng đó nằm yên trong bộ nhớ, nếu điều kiện cho phép.
 

Ừ, nhưng mà ý của tớ là nếu file nào đó chỉ được mmap() không thôi thì kernel sẽ không cho file đó vào bộ nhớ đâu. Kernel chỉ cho từng phần của file đó vào bộ nhớ khi phần đó được process đụng đến.
Mind your thought.
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 13/12/2008 23:27:33 (+0700) | #43 | 162305
mrro
Administrator

Joined: 27/12/2001 05:07:00
Messages: 745
Offline
[Profile] [PM]
@starghost: àh àh hiểu và đồng ý.

-m
http://tinsang.net

TetCon 2013 http://tetcon.org

Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 23/12/2008 10:24:09 (+0700) | #44 | 163610
[Avatar]
1mp0ss1bl3
Member

[Minus]    0    [Plus]
Joined: 14/02/2008 21:32:58
Messages: 41
Location: ...
Offline
[Profile] [PM]

nbthanh wrote:
Swap không bắt buộc (must) phải có nhưng nên có. Vì nếu không có swap space, khi system bị run out of physical memory thì nó sẽ crash hoặc treo ==> ai muốn điều này xảy ra nhỉ smilie
 


Trong công ty mình cũng gặp 1 vấn đề mà nếu như theo bạn nói thật tình mình cũng không biết swap để làm gì luôn. Số là con server chạy RHEL5 với 4GB ram và được set 4GB cho swap, server chạy Veritas Netbackup dùng để backup mail. Khi restore mail cho client và monitor thử thì thấy ram bị ngốn dần và khi đến gần ngưỡng 4gb physical memory thì treo cứng ngắc luôn. Khi gần treo, ngoài thông tin lượng ram đang bị chiếm dụng gần hết thì thông tin swap usage vẫn cứ là < 1000 Kb??? Vậy có phải tại swap vô dụng hay do kernel hay vì lý do nào khác? Đến giờ vẫn mình chưa biết swap được dùng vào mục đích gì nữa.
To achieve the impossible, one must thing the absurd - to look where everyone else has looked, but to see what no else has seen.
[Up] [Print Copy]
  [Question]   Re: Liệu có cần swap khi dùng linux 23/12/2008 10:53:20 (+0700) | #45 | 163611
mR.Bi
Member

[Minus]    0    [Plus]
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
[Profile] [PM] [WWW]
Bồ có set swap 40GB đi nữa thì khi ram hết vẫn treo cứng như thường. Swap không được sử dụng trong trường hợp trên.
Nếu chưa biết swap được dùng cho mục đích gì thì đọc lại một lần nữa topic này.
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children"
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|