Linux centos编译程序时的性能问题
2016-05-14 10:37
375 查看
昨天晚上在虚拟机上编译一个程序,命令启动后就睡觉了,今天早上起床,我的个乖乖,居然还在运行。用top看了一下cpu使用5%左右,空闲内存70M左右,脑袋一怕,估计IO有问题。因为我的vmware虚拟机是安装在移动硬盘上的,而编译过程需要读写/tmp目录,于是就想给虚拟机加独立的硬盘:
先关闭虚拟机,然后修改设置,增加硬盘
使用fdisk -l 察看新硬盘,我的显示
使用fdisk /dev/sdb1进行分区,我就分了一个
backup /tmp to /tmp2
mount /dev/sdb1 /tmp
chmod 777 /tmp
结果发现还是不行,于是用vmstat 命令进行性能分析,发现swaped有1.9G, wa 一直在 95%以上。这时知道是内存不够。
下面是系统正常情况下vmstat 3 命令的输出。
r: 进程队列数
b:等待IO进程数
swpd:使用的虚拟内存
wa:等待IOcpu时间
既然swap导致IO问题,能不能将swap分区换到IO性能更高的磁盘上呢?
下面是具体步骤:
1 mkswap /dev/sdb1
2 swapon /dev/sdb1
3. 使用swapon命令查看之前的swap分区并用swapoff命令关闭
4. 在/etc/fstab文件中加入:
结果发现没有任何改进,没办法只能先增加虚拟机的内存,以后再看看为什么程序消耗太多内存。
先关闭虚拟机,然后修改设置,增加硬盘
使用fdisk -l 察看新硬盘,我的显示
/dev/sdb1
使用fdisk /dev/sdb1进行分区,我就分了一个
backup /tmp to /tmp2
mount /dev/sdb1 /tmp
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这样重起也会自动生效
结果发现没有任何改进,没办法只能先增加虚拟机的内存,以后再看看为什么程序消耗太多内存。
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍