Linux centos编译程序时的性能问题

昨天晚上在虚拟机上编译一个程序,命令启动后就睡觉了,今天早上起床,我的个乖乖,居然还在运行。用top看了一下cpu使用5%左右,空闲内存70M左右,脑袋一怕,估计IO有问题。因为我的vmware虚拟机是安装在移动硬盘上的,而编译过程需要读写/tmp目录,于是就想给虚拟机加独立的硬盘:

  1. 先关闭虚拟机,然后修改设置,增加硬盘
  2. 使用fdisk -l 察看新硬盘,我的显示/dev/sdb1
  3. 使用fdisk /dev/sdb1进行分区,我就分了一个
  4. backup /tmp to /tmp2
  5. mount /dev/sdb1 /tmp
  6. chmod 777 /tmp
    结果发现还是不行,于是用vmstat 命令进行性能分析,发现swaped有1.9G, wa 一直在 95%以上。这时知道是内存不够。
    下面是系统正常情况下vmstat 3 命令的输出。
    r: 进程队列数
    b:等待IO进程数
    swpd:使用的虚拟内存
    wa:等待IOcpu时间
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 185300     72 201920    0    0     0     0   59  125  0  0 100  0  0
 0  0      0 185300     72 201920    0    0     0     0   60  130  0  0 100  0  0
 0  0      0 185300     72 201920    0    0     0     0   55  120  0  0 100  0  0
 0  0      0 185300     72 201920    0    0     0     4   58  125  0  0 100  0  0
 0  0      0 185300     72 201920    0    0     0     6   61  131  0  0 100  0  0
 0  0      0 185300     72 201920    0    0     0     0   55  120  0  0 100  0  0

既然swap导致IO问题,能不能将swap分区换到IO性能更高的磁盘上呢?
下面是具体步骤:
1 mkswap /dev/sdb1
2 swapon /dev/sdb1
3. 使用swapon命令查看之前的swap分区并用swapoff命令关闭
4. 在/etc/fstab文件中加入:/dev/sdb1 swap swap defaults 0 0 这样重起也会自动生效

结果发现没有任何改进,没办法只能先增加虚拟机的内存,以后再看看为什么程序消耗太多内存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值