LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: bestia

2g内存的机器分区还有没有必要划出swap分区?

[复制链接]
发表于 2008-11-29 23:22:27 | 显示全部楼层
Post by 軒轅.子;1916341
我的建议
这时 可以使用swap文件来代替
好处不言而喻 可以随时增减

用dd出来的文件来做 swap的好处就是这样吗?
是否在任何时候都 推荐 使用 文件来做swqp,而不是使用一个分区来做swap?
回复 支持 反对

使用道具 举报

发表于 2008-11-30 07:01:50 | 显示全部楼层
这个讨论很有趣,也许我把我之前简单的回复澄清一下:

作为术语上的 swap, 总是需要的,系统总是假设存在 swap。我说的不要 swap,指的是不作硬盘 swap,而建一个很小的内存虚拟盘作为 swap。要 swap 的话,就是使用硬盘作为 swap 介质。使用硬盘分区还是文件,相对来说并不是那么重要的选择。

如果是桌面系统,那么使用硬盘 swap 肯定应该是个好的选择。三个理由:
1)桌面环境,你很难预测内存的用量会到什么程度,即使你有很多内存,也会用尽。
2)你可以忍受 swap 开始的时候系统变慢,关掉一点程序,喝杯咖啡休息一下,回来就好了。但你没有办法忍受编辑了一半的文件,因为没有内存而被突然关闭。
3)电脑总在你面前,实在不行,拔掉电源重新启动就好了。

对于生产环境的关键服务器,那么情况就不一样了。使用硬盘 swap 的坏处有:
1) 当大量硬盘 swap 开始以后,服务器会很缓慢,甚至于慢到没有办法 ssh 登录。最终需要到机房去进行控制台维护。
2) 少量的 swap 很难察觉,而且由于内核总有或多或少的 Bug,因此即使内存足够的情况,swap 也可能发生。这时候,容易导致或多或少很难定位的奇怪瞬间性能问题。
所以,对重要的服务器,宁愿不使用硬盘 swap。听起来很疯狂,不过实际上是个好办法:
1) 内存太便宜,很少有服务器的内存会成为瓶颈。
2) 当真的内存不够的时候,你会宁愿损失掉几个进程,也不原意全部进程都因为缓慢事实上全部废掉。
3)服务器怕的是慢,而不是 Down 掉。因为重要的服务器都会有冗余,一个服务器 down 掉,监控很容易发现而把流量送到其它的服务器上去。而缓慢的情形,则很难发现,通常到发现的时候,已经损失巨大了。
回复 支持 反对

使用道具 举报

发表于 2008-12-2 15:01:31 | 显示全部楼层
Post by jeff_yecn;1916532
这个讨论很有趣,也许我把我之前简单的回复澄清一下:

作为术语上的 swap, 总是需要的,系统总是假设存在 swap。我说的不要 swap,指的是不作硬盘 swap,而建一个很小的内存虚拟盘作为 swap。要 swap 的话,就是使用硬盘作为 swap 介质。使用硬盘分区还是文件,相对来说并不是那么重要的选择。

如果是桌面系统,那么使用硬盘 swap 肯定应该是个好的选择。三个理由:
1)桌面环境,你很难预测内存的用量会到什么程度,即使你有很多内存,也会用尽。
2)你可以忍受 swap 开始的时候系统变慢,关掉一点程序,喝杯咖啡休息一下,回来就好了。但你没有办法忍受编辑了一半的文件,因为没有内存而被突然关闭。
3)电脑总在你面前,实在不行,拔掉电源重新启动就好了。

对于生产环境的关键服务器,那么情况就不一样了。使用硬盘 swap 的坏处有:
1) 当大量硬盘 swap 开始以后,服务器会很缓慢,甚至于慢到没有办法 ssh 登录。最终需要到机房去进行控制台维护。
2) 少量的 swap 很难察觉,而且由于内核总有或多或少的 Bug,因此即使内存足够的情况,swap 也可能发生。这时候,容易导致或多或少很难定位的奇怪瞬间性能问题。
所以,对重要的服务器,宁愿不使用硬盘 swap。听起来很疯狂,不过实际上是个好办法:
1) 内存太便宜,很少有服务器的内存会成为瓶颈。
2) 当真的内存不够的时候,你会宁愿损失掉几个进程,也不原意全部进程都因为缓慢事实上全部废掉。
3)服务器怕的是慢,而不是 Down 掉。因为重要的服务器都会有冗余,一个服务器 down 掉,监控很容易发现而把流量送到其它的服务器上去。而缓慢的情形,则很难发现,通常到发现的时候,已经损失巨大了。


支持,个人觉得其实分个区作SWAP也无所谓,毕竟现在也不用在乎那1,2G的空间,硬盘都白菜价了。并且本人曾经也试过没分SWAP,确实碰到过内存耗尽死机的情况
回复 支持 反对

使用道具 举报

发表于 2008-12-3 20:33:01 | 显示全部楼层
Post by francisjohn;1917850
支持,个人觉得其实分个区作SWAP也无所谓,毕竟现在也不用在乎那1,2G的空间,硬盘都白菜价了。并且本人曾经也试过没分SWAP,确实碰到过内存耗尽死机的情况


我认为没有人能忍受 swap 写到 1G 时机器的速度 serverRAID的不算 保证比宕机更难受

内核是运行在保护地址里的 在没有swap 就算系统内存耗尽 也只是耗尽内存的程序崩溃 不会出现你说的什么死机的问题
实际上 没有swap 的机器要比有swap的机器避免很多 假死的问题
回复 支持 反对

使用道具 举报

发表于 2008-12-7 14:09:48 | 显示全部楼层
Post by jeff_yecn;1916532
这个讨论很有趣,也许我把我之前简单的回复澄清一下:

作为术语上的 swap, 总是需要的,系统总是假设存在 swap。我说的不要 swap,指的是不作硬盘 swap,而建一个很小的内存虚拟盘作为 swap。要 swap 的话,就是使用硬盘作为 swap 介质。使用硬盘分区还是文件,相对来说并不是那么重要的选择。

如果是桌面系统,那么使用硬盘 swap 肯定应该是个好的选择。三个理由:
1)桌面环境,你很难预测内存的用量会到什么程度,即使你有很多内存,也会用尽。
2)你可以忍受 swap 开始的时候系统变慢,关掉一点程序,喝杯咖啡休息一下,回来就好了。但你没有办法忍受编辑了一半的文件,因为没有内存而被突然关闭。
3)电脑总在你面前,实在不行,拔掉电源重新启动就好了。

对于生产环境的关键服务器,那么情况就不一样了。使用硬盘 swap 的坏处有:
1) 当大量硬盘 swap 开始以后,服务器会很缓慢,甚至于慢到没有办法 ssh 登录。最终需要到机房去进行控制台维护。
2) 少量的 swap 很难察觉,而且由于内核总有或多或少的 Bug,因此即使内存足够的情况,swap 也可能发生。这时候,容易导致或多或少很难定位的奇怪瞬间性能问题。
所以,对重要的服务器,宁愿不使用硬盘 swap。听起来很疯狂,不过实际上是个好办法:
1) 内存太便宜,很少有服务器的内存会成为瓶颈。
2) 当真的内存不够的时候,你会宁愿损失掉几个进程,也不原意全部进程都因为缓慢事实上全部废掉。
3)服务器怕的是慢,而不是 Down 掉。因为重要的服务器都会有冗余,一个服务器 down 掉,监控很容易发现而把流量送到其它的服务器上去。而缓慢的情形,则很难发现,通常到发现的时候,已经损失巨大了。


不太明白!
你的意思是服务器为了性能可以不要swap?从而带来因内存耗尽down机的可能性?
我觉得不太合理吧?就像我接触的行业服务器怕的不是慢而是down机,慢的时候最多让管理员把一些优先级低的工作先停掉,把资源给重要的工作跑,down机可麻烦了,跑了几个小时或几天的重要工作是不允许服务器突发down机的。
还有,我觉得服务器比桌面更容易耗尽内存!desktop只有本人使用,起码可以做到随时观察资源情况,预计资源使用,例如已打开很多进程,多数人都会关掉一些再开启另外的进程,无休止的开启进程在桌面领域比较少吧。
但服务器使用除了管理员谁会去关心服务器上现在一共跑着多少东西?管理员也不可能长时间去监测着啊。如果1,2个技术开发项目组或公司同时在一台小型服务器上工作,资源被耗尽真是随时会发生的事情啊!10多20个人每人扔几个job上去后台跑几天,你能保证多少内存足够?一但发生down机,带来的损失岂是性能所补救?
以上个人愚见,请指教。
回复 支持 反对

使用道具 举报

发表于 2008-12-8 17:52:26 | 显示全部楼层
Post by d00m3d;1914272
好奇的问,什麽东西有 8G 的 size,双层的 DVD 映像乎?


随便找一个虚拟机的磁盘,就有4G-8G了。而我知道有相当多的人是需要在Linux下装一个XP 虚拟机的,那个磁盘可不小。

如果你希望备份以下,拷贝一份,就明白你有8G的内存都能用上swap。
回复 支持 反对

使用道具 举报

发表于 2008-12-8 17:57:09 | 显示全部楼层
Post by LinuxIsHard;1920399
不太明白!
你的意思是服务器为了性能可以不要swap?从而带来因内存耗尽down机的可能性?
我觉得不太合理吧?就像我接触的行业服务器怕的不是慢而是down机,慢的时候最多让管理员把一些优先级低的工作先停掉,把资源给重要的工作跑,down机可麻烦了,跑了几个小时或几天的重要工作是不允许服务器突发down机的。
还有,我觉得服务器比桌面更容易耗尽内存!

你显然确实不明白他说的意思,他说的是不要硬盘swap,这并不等于不要swap。实际上对于 Linux 内核来说,不论你有多少物理内存,swap都是“绝对绝对必要”的,因为这关系着内存调度的算法。没有swap的机器相对比有swap的机器容易崩溃得多。

但是如果你真的内存多到不愿意使用硬盘做 swap,你的最佳选择不是去掉swap,而是使用内存虚拟一个分区出来并用这个分区做swap。jeff 说的意思,也就是使用内存虚拟swap。

现有情况下,我个人认为无论如何swap是必须设置的,你可以设置得很小,例如128M,或者干脆用内存虚拟一个盘用作 swap。

——设置太大的swap也同样是不可取的。尤其是对于桌面系统,我建议任何人都不要设置超过1G 的 swap,因为太大的 swap 会提高你系统假死的概率。如果你只设置128M左右的swap,一般是没有任何副作用的,也基本不会造成系统假死。
回复 支持 反对

使用道具 举报

发表于 2008-12-8 18:09:33 | 显示全部楼层
Post by 軒轅.子;1918621

内核是运行在保护地址里的 在没有swap 就算系统内存耗尽 也只是耗尽内存的程序崩溃 不会出现你说的什么死机的问题


你说的只是服务器系统,对于桌面系统来说,只要 X 一崩溃,你就全完了。所谓一个程序崩溃不影响其他程序的说法,对于桌面系统根本无效。——或者你没有遇到过 X 崩溃的情形?这里很多人应该都见过。——所以无论如何对于桌面系统来说都绝对应当设置 swap。
回复 支持 反对

使用道具 举报

发表于 2008-12-12 17:41:33 | 显示全部楼层
Post by LinuxIsHard;1920399
不太明白!
你的意思是服务器为了性能可以不要swap?从而带来因内存耗尽down机的可能性?
我觉得不太合理吧?就像我接触的行业服务器怕的不是慢而是down机,慢的时候最多让管理员把一些优先级低的工作先停掉,把资源给重要的工作跑,down机可麻烦了,跑了几个小时或几天的重要工作是不允许服务器突发down机的。
还有,我觉得服务器比桌面更容易耗尽内存!desktop只有本人使用,起码可以做到随时观察资源情况,预计资源使用,例如已打开很多进程,多数人都会关掉一些再开启另外的进程,无休止的开启进程在桌面领域比较少吧。
但服务器使用除了管理员谁会去关心服务器上现在一共跑着多少东西?管理员也不可能长时间去监测着啊。如果1,2个技术开发项目组或公司同时在一台小型服务器上工作,资源被耗尽真是随时会发生的事情啊!10多20个人每人扔几个job上去后台跑几天,你能保证多少内存足够?一但发生down机,带来的损失岂是性能所补救?
以上个人愚见,请指教。


真正重要的服务器 是有冗余的 而且不止一个 甚至是一个大型集群
如果单台服务器出现由于swap导致的异常缓慢 会拖慢整个集群的响应 而且很难及时的发现问题 后果很严重
回复 支持 反对

使用道具 举报

发表于 2008-12-13 13:40:17 | 显示全部楼层
Post by 軒轅.子;1916341
我的建议

如果你有1g以上的内存 并且机器的用途是普通的桌面应用 那么[color="DarkRed"]完全没有任何必要单独分一个swap分区...  (MBR磁盘的主分区太珍贵了...)

内存大于1g的时候 很少很少会用到swap

但是有很多情况需要swap(比如用maya 当系统没有swap时 程序会异常退出...)
这时 可以使用swap文件来代替
好处不言而喻 可以随时增减
dd if=/dev/zero of=/swapfile bs=1024 count=65536  (建立64m大小的文件 不用太大    一个几乎写不了几十mb的文件 给多少都是浪费)
mkswap /swapfile
swapon /swapfile

64M不够 可以再增加
不用时 可是释放swapfile
swapoff /swapfile
rm swapfile

Post by poet

但是如果你真的内存多到不愿意使用硬盘做 swap,你的最佳选择不是去掉swap,而是使用内存虚拟一个分区出来并用这个分区做swap。


弱弱的问一下,建一个swap文件和使用内存虚拟个swap分区是否一个概念(貌似不是,呵呵),那么,使用内存虚拟个swap分区是用哪些命令呀?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表