linux 虚拟内存问题

linux 虚拟内存问题

  linux 虚拟内存问题
?? 最近俺的linux系统上因为装了snort,每天某个时候都是mysql都会自动退出
??错误提示如下:
??Out of Memory: Killed process 18353 (mysqld)
?? 开始以为自己的mysql服务器设置不安全,导致黑客溢出了,担心~~~,疯狂的检查。可是情况依然如此。
?? 后来怀疑是自己的内存问题,RAM128M 毕竟是穷人啊!
??free -m
?? 空闲内存才 1M左右
?? 可是自己还是知道linux会使用虚拟内存的啊,应该不会导致让进程挂吧。在网上找了一些资料发现自己的虚拟内存根本没有设置。
??swapon -s
??没有显示可用内存
??
??在网上找了一些资料,终于有所收获。
??具体例子:
??———————————————————————————————————
??#dd if=/dev/zero of=swapfile bs=1024 count=8192
??
??#mkswap swapfile 8192
??
??#sync
??
??#swapon swapfile
??——————————————————————————————————
??解释:
??dd if=/dev/zero of=/swap bs=1024 count=131070
??
??/swap为文件名 count 为文件大小
??
??
??mkswap命令建立swap分区
??mkswap 在一个设备上或者在一个文件里创建一个linux交换区。
??请一定小心使用mkswap , 因为它不检查文件或分区是否被其他东西使用。 你可能用mkswap 很容易地覆盖了重要文件和分区! 幸好,你只需在你安装系统时使用mkswap ,后可以跟文件大小,是单位是块。
??mkswap /swap
??
??swapon /swap
??启用/swap 作为虚拟内存
??
??swapoff /swap
??//关闭swap作为虚拟内存
??rm /swap //删除文件
??
??
??对换空间如果列入/etc/fstab ,就可自动使用。
??
??/dev/hda8 none swap sw 0 0
??/swapfile none swap sw 0 0
??
??附:
??dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
??
??dd 的主要选项:
??指定数字的地方若以下列字符结尾乘以相应的数字:
??b=512, c=1, k=1024, w=2, xm=number m
??
??if=file
??输入文件名,缺省为标准输入。
??
??of=file
??输出文件名,缺省为标准输出。
??
??ibs=bytes
??一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
??
??obs=bytes
??一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
??
??bs=bytes
??同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
??
??cbs=bytes
??一次转换 bytes 个字节,即转换缓冲区大小。
??
??skip=blocks
??从输入文件开头跳过 blocks 个块后再开始复制。
??
??seek=blocks
??从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)
??
??count=blocks
??仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
??
??conv=conversion[,conversion...]
??用指定的参数转换文件。
??
??转换参数:
??
??ascii 转换 EBCDIC 为 ASCII。
??
??ebcdic 转换 ASCII 为 EBCDIC。
??
??ibm 转换 ASCII 为 alternate EBCDIC.
??
??block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。
??
??unblock
??使每一行的长度都为 cbs ,不足部分用空格填充。
??
??lcase 把大写字符转换为小写字符。
??
??ucase 把小写字符转换为大写字符。
??
??swab 交换输入的每对字节。 Unlike the
??Unix dd, this works when an odd number of
??bytes are read. If the input file contains
??an odd number of bytes, the last byte is
??simply copied (since there is nothing to
??swap it with).
??
??noerror
??出错时不停止。
??
??notrunc
??不截短输出文件。
??
??sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
??
??由于 dd 命令允许二进制方式读写,所以特别适合在原始物理设备上进行输入/输出。例如可以用下面的命令为软盘建立镜像文件:
??dd if=/dev/fd0 of=disk.img bs=1440k
??有趣的是,这个镜像文件能被 HD-Copy ,Winimage 等工具软件读出。再如把第一个硬盘的前 512 个字节存为一个文件:
??dd if=/dev/hda of=disk.mbr bs=512 count=1