在VPSEE上偶然看到有一家新开的VPS商,试之,感觉甚好。遂记录一下测试过程。
// 查看CPU信息
cat /proc/cpuinfo
// 查看内存
free -m
// 查看硬盘信息
df -hal
// 测试带宽
wget http://cachefly.cachefly.net/100mb.test
这是某CDN上的测试文件
// 测试硬盘写能力
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
count越大数据越准确。另外dsync选项是不经过缓存直接写入磁盘,一般来说硬盘IO都是DMA控制内存与硬盘cache之间的数据操作。system call在写入硬盘cache之后就会返回成功,其实此时数据并未写入磁盘。这里贴一个RAID 10和普通硬盘的性能对比...(壮哉我大磁盘阵列!
不知为何,有20G的硬盘还没挂载上去,因为df出来看到的确实只有10G。fdisk -l 显示sdb还没分区。
想起以前看鸟哥的时候接触过LVM,赶紧翻出来复习下,具体原理可以看 这里
先用fdisk将 /dev/sdb 的system id设为 LVM(8e)
pvcreate /dev/sdbX //PV化,X为刚设定的分区号
vgdisplay //查看已存在的VG name,显示MyVPS
vgextend MyVPS /dev/sdbX // 扩充该VG,将sdbX上的PV加到其中
lvdisplay // 查看已存在的LV name,显示 root
可以留意到VG上还有5119块free PE,加到LV中:
lvresize -l 5119 /dev/MyVPS/root
resize2fs /dev/MyVPS/root // 扩中到文件系统中
DONE!
2013年2月27日星期三
2013年2月10日星期日
Xen VPS Ubuntu 搭建PPTP VPN 与 iptables的使用
现在PPTP的效果已经远没有以前的好了(墙升级的缘故),但是不少移动设备还是需要PPTP,所以虽然速度慢点,而且经常disconnect,还是开着有备无患吧,顺便鼓捣下iptables~
PC上还是推荐使用shadowsocks,方便快捷~
在Ubuntu 上测试安装PPTP的方法: http://dickwu.com/posts/2012/01/1046.html 。注意在配置PPTP过程中留意下 PPP 链路的IP分配问题,也就是
这里说说我对iptables的理解。最后在iptables上面加上的转发规则,意思是:
在
localip 192.168.0.1 remoteip 192.168.0.234-238,192.168.0.245
这里说说我对iptables的理解。最后在iptables上面加上的转发规则,意思是:
在
nat table的 POSTROUTING chain 增加一条规则:从 192.168.0.0/24 这个网络地址来的packet全都转发到 eth0 这个网络接口,并且将packet的source address更换为该接口的IP(这个就是 MASQUERADE ,地址伪装)。简单的说,就是从 192.168.0.* 发过来的数据包全部将源地址替换为这个代理的IP,然后发出去,这样Internet上的其他主机在发回packet的时候就会发到代理处,然后转发到client(通过点对点协议)。但是有个不太明白的地方,为什么只有client -> proxy -> server 这个方向要添加规则,而相反的方向不用添加规则呢??有时间要看看PPTP的原理了。《Computer Networks 5th edition》最后一章会有所涉及...2012年12月17日星期一
SSH配置好RSA后还要密码的问题
之前一直都懒得给VPS配置好RSA无密码登录。今天想想反正短期内都要用,所以就写了个登录脚本,同时管理几部server。
先是改好config文件,因为我改了VPS的SSH端口。然后ssh-copy-id 把publick key传过去。按道理这时候应该可以SSH无密码登录了。但是输入登录命令后,居然提示还要密码!
然后用 ssh -vvv user@server 详细看了下登录过程,可以看到公钥验证失败。登录其他主机明明是可以的呢。。上网一阵狂搜,发现极有可能是权限设置问题。但是中文社区一般都说:
1) /etc/ssh/sshd_config 配置有问题
2).ssh/ 目录权限有问题
检查之后发觉都OK,最后终于在这里找到答案 = =
这里感叹一下,英文社区的氛围确实不错,回答都好详细...
先是改好config文件,因为我改了VPS的SSH端口。然后ssh-copy-id 把publick key传过去。按道理这时候应该可以SSH无密码登录了。但是输入登录命令后,居然提示还要密码!
然后用 ssh -vvv user@server 详细看了下登录过程,可以看到公钥验证失败。登录其他主机明明是可以的呢。。上网一阵狂搜,发现极有可能是权限设置问题。但是中文社区一般都说:
1) /etc/ssh/sshd_config 配置有问题
2).ssh/ 目录权限有问题
检查之后发觉都OK,最后终于在这里找到答案 = =
found out the culprit the permissions of the上一层的用户主目录权限影响到子目录.ssh/的使用?....好吧,改了之后确实好了/root(770)drwxrwx--- 70 root root 4096 2011-07-27 00:37 ..was too open. Changed the permissions todrwxr-xr-xand now it's working. Couldn't imagine the fact that parent directory's permission affect thessh.
这里感叹一下,英文社区的氛围确实不错,回答都好详细...
2012年12月4日星期二
SCUTOJ 建站手记(3)--- 压力测试 & 性能监控
又是抽一些空隙时间,基本完成了SCUTOJ的压力测试,参考的是《构建高性能web站点》,但是过程中还是遇到不少问题,这里记录下。
硬件环境:
首先是在本机用 webbench 这个小巧的测试工具对远端的服务器进行测试。小是小了,可惜功能太少,结果太简单。
可以看到,并发数分别为:100, 500,1000,2000,持续时间均为30秒。
页面响应速度分别为: (pages/min)
5244
5220
6950 fail : 0.7 %
8022 fail : 2%
从1000开始已经出现fail了, 并且随着并发数增加,失败概率不断增大。
再看一下apache mod_status 的数据:
空闲的时候其实只有4个线程(worker),并发数500的时候已经升到138了,到1000的时候好像也没有大的变化。看了一下apahce2.conf,maxClient设置为150.
由于webbench测试是在图书馆做的,带宽还是挺不错的,看了一下下行速度,有1M多每秒。应该说线路带宽当面对结果不会有太大影响,延迟就不敢保证了 = =
硬件环境:
首先是在本机用 webbench 这个小巧的测试工具对远端的服务器进行测试。小是小了,可惜功能太少,结果太简单。
可以看到,并发数分别为:100, 500,1000,2000,持续时间均为30秒。
页面响应速度分别为: (pages/min)
5244
5220
6950 fail : 0.7 %
8022 fail : 2%
从1000开始已经出现fail了, 并且随着并发数增加,失败概率不断增大。
再看一下apache mod_status 的数据:
由于webbench测试是在图书馆做的,带宽还是挺不错的,看了一下下行速度,有1M多每秒。应该说线路带宽当面对结果不会有太大影响,延迟就不敢保证了 = =
2012年11月23日星期五
SCUTOJ 建站手记(2)
由于这一段时间一直在忙各种实验和课设,而且目测还要忙到差不多期末,然后又差不多要考试,所以总体来说项目进度比较慢,还是断断续续的。目前只能说把网站搭起来了,但是还需要继续深入进行二次开发,而前提是需要先大概过一遍源代码,某些关键的地方还要多加留意才是。
<VirtualHost *:80> //服务器只有单IP的情况下这里不需要修改(个人理解)
关闭网站服务: sudo a2dissite scutoj
目前主要的问题是没有专业的web前端人员啊!只能是在下先大体改了一下界面,但是毕竟不是专业美工,效果肯定不咋的。。。今天刚好有时间,就收拾了一下界面,顺便把域名弄好了(上次注册到的tk域名竟然被回收了,完全不明所以啊 = =希望这次没事。。。)
=========================
由于在理想规划中是不止一个子域名的,这就需要用到基于域名的virtualhost配置了。关于apache虚拟主机的配置网上有很多,这里就简单说一下。
#环境:ubuntu 10.04 LTS
#创建virtualhost配置文件
cd /etc/apache2/sites-available/
copy default scutoj //copy一份默认的配置再修改,比较方便
其实要改的只有几处:
ServerName www.example.com //自定域名
DocumentRoot /var/www/ //这个有需要的话可以该,我将它指向OJ的根目录了,也就是直接访问IP的话就进入OJ的根目录index页面,以前要手工输入目录名,不然就是默认apache的index.html
DocumentRoot /var/www/ //这个有需要的话可以该,我将它指向OJ的根目录了,也就是直接访问IP的话就进入OJ的根目录index页面,以前要手工输入目录名,不然就是默认apache的index.html
其他貌似没什么改动了,还有一个ErrorDocument的参数可以添加,可以自定义出错页面,比如diy的404...
然后就是启用域名:
sudo a2ensite scutoj //apache2 enable site的缩写,其实就是在sites-enable/里创建symbol link,指向VH的配置文件
sudo service apache2 restart
关闭网站服务: sudo a2dissite scutoj
====================
接下来的计划其实蛮激动人心的 = =!!
因为自从我在SJUT-NIC回来之后,就对web application产生了相当大的兴趣,对web架构,web服务器,数据库以及众多的web开源框架与应用之类的都有莫名的冲动~希望能自己亲手实现一下。
在目前OJ的系统当中,只提供了基本的judging和contest等等服务,原生论坛太搓,所以准备自己搭一个论坛挂在主站上面,想试试Rable(基于Livid的PB2)。最近泡V2EX比较多,觉得论坛的话还是这种比较好~更重要是的想玩玩Ruby on Rails啊!(其实《python学习手册》我都借回来了,暂时还没时间看...但是ruby对我来说更有神秘感,嘛,可以都看看,到时再决定用python或者ruby或者PHP。
另外还需要一个关于ACM的文档和心得体会分享平台,用mediawiki搭一个wiki感觉上是个不错的方式。个人也很喜欢wiki的分享方式,只是不知道实际运营起来效果怎么样。
这样算下来,二级域名下面就有三个子站了,还是蛮不错的~有得折腾~
其实这些天一直在想另外一个很现实的问题,就是:OJ该由谁来负责长期运营和维护呢?在下是真心不想交给学院,事实证明无论什么东西,到了行政机关手里都会变成一堆渣渣 = =
在下希望这是一个有活力的project,以至于product。所以一个好的管理员或者管理团队是必须的,就好象Livid一个人给整个V2EX注入了灵魂,这个社区才能通过口碑吸引不少高质量的用户。这方面感觉其实SYSU做的挺不错的,他们的官方OJ是由ACMM协会负责维护的貌似,还有一个很萌的吉祥物sicily。POJ或者HDOJ都比较正式和官方的感觉,但毕竟是老牌,所以题库和用户积累是个很重要的因素。
综上所述,SCUTOJ要走的路还很远啊。。。希望不要半途夭折就好Orz
PS:近期准备学markdown,在github page上个octopress,因为blogspot实在太蛋疼了。。。希望在下次有需要写post之前能弄好吧。。。
PS:近期准备学markdown,在github page上个octopress,因为blogspot实在太蛋疼了。。。希望在下次有需要写post之前能弄好吧。。。
2012年11月4日星期日
SCUTOJ 建站手记
鉴于某学院的说法:你们不做出点样子(UI)来,我怎么好给你服务器呢??。。。 = =
好吧,既然这么蛋疼就先在VPS上面搞好了。。。(一上来就吐槽学院好像不太好的样子??
主机的话,原来想选Linode的,心想咱们也好不容易可以做一回壕啊。最后考虑到毕竟是测试阶段,服务器没必要选的那么好,所以退而求其次,选了xehost(在V2EX看到的,刚好碰上搞活动的说)。XEN主机,美国机房,ChinaCache线路,电信ping值在150-200ms之间,勉强还可以接受。价格的话略贵吧,月付80大洋。
硬件配置:
Xeon E5606 @2.13GHz 双核
512M RAM
20G 空间
500G 流量
100Mbps 带宽 (实测有接近2M/s的速度
磁盘I/O 测试了一下,40M/s, 勉强吧
系统 Ubuntu 10.04
======================================
hustoj代码托管在google code,要用SVN checkout(其实我还是更喜欢github)
svn checkout http://hustoj.googlecode.com/svn/trunk/ hustoj-read-only
进入到hustoj-read-only/install 目录中,修改一下安装脚本,把yum系的去掉,注意下数据库的用户和密码就可以运行了。其实最好就是手动安装一次,这样对整个架构就有个大体的把握了。
还有web服务器关于php脚本的设置:
sudo vim /etc/php5/apache2/php.ini open_basedir =/home/judge/data:/var/www/JudgeOnline:/tmp max_execution_time = 300 ; Maximum execution time of each script, in seconds max_input_time = 600 memory_limit = 256M ; Maximum amount of memory a script may consume (16MB) post_max_size = 64M upload_tmp_dir =/tmp upload_max_filesize = 64M
设置完以后重启apache。
在浏览器输入IP/目录,应该可以看到页面了。如果出现网页一片空白的情况,说明php脚本有语法错误或者web文件目录权限设置不对。这时候可以打开php.ini的display_error 选项,可以方便排除错误。debug完之后建议还是关上。默认,php报错是不记录进日志文件,这很不便于排查问题。打开php的错误日志记录也很简单。编辑php.ini
log_errors = On
error_log = /usr/local/php/log/error.log
log_errors = On
error_log = /usr/local/php/log/error.log
========================================
接下来就是折腾DNS了。
偶在dot.tk上面注册了scutoj.tk的域名,其实也只是实验阶段,免费东西不知道靠谱不,到时有条件还是转.me好了(其实很想注册个像中大的那种短域名啊soj.me )。其实原来想用DNS Pod的服务(据说对google DNS和open DNS有优化,不过按照最近斯巴达的网络状况,8.8.8.8都全挂了 = =),但是懒了一下,暂时没弄。
后台添加一个A record,指向VPS的IP地址,主机名就写www。但是这样的话只是指向/var/www目录,而OJ是放在其子目录下。以前没试过子目录绑定域名,又是google上一阵狂搜,折腾啊~
最后发现是需要设置apache。这里又涉及到各种linux distribution的apahce配置文件位置不同名字不同 = =!,最后还是在ubuntu wiki上面找到官方说明,是设置apahce virtualhost。具体可以看这个链接。还有就是NameVirtualHost *:80 ,这里在 /etc/apache2/port.conf 里面已经设置过了,再在default里面设的话可能会报warn。只需要注释掉其中一个即可。
我记得以前在SJTU-NIC的时候有看过下apache的配置文件,过了几个月竟然忘得七七八八了。。。哎,这记忆力,跪了。
2012年8月12日星期日
SJTU-NIC实习总结
机缘巧合之下,有幸来到SJTU-NIC实习。转眼已经过去一个多月了。回顾在SJTU这一个月,感触良多啊~
七月份来到交大,一整天的火车啊。来之前并不算顺利,家里人意见蛮大的,主要是担心安全问题,而且也不想我整个暑假都在上海。说起来,也算是我一意孤行吧。并不是我不想回家,只是在家里的学习效率真的不能让我满意。琐琐碎碎的事太多了,囧。一直都认为在学校,在图书馆,在实验室的时候,效率是最高的。事实也证明,交大没有让我失望。
在Omnilab的日子,跟随 @WeiJianwen 老师,与 @WangHaiyang @LiuYukun 共事,学到了很多。应该说,我还是蛮幸运的。同来的另外一个实习生被分到openstack组,负责dashboard的前端开发了。本人是真的对前端无爱啊....而我则被分到BigDate组,负责Ganglia分布式监控平台的部署配置。应该说,这和我预想中的工作差不多,也是我目前最愿意做的。主要是纯linux的工作环境让我期盼已久啊!大体上,这是偏向运维一类的工作。大部分时间是工作在SSH的remote host上(终端什么的总是很有爱的~)。
整个实验室架构大概是:openstack组负责提供IaaS层的VM,然后在上面部署Hadoop与HBase环境,由rsyslog daemon负责从远端数据源接受海量数据转发到Hadoop经过分析写入HBase。Hadoop Cluster状态则有Ganglia负责监控,包括CPU,disk-IO,network-IO,memory等。
应该说,最大的收获是对linux操作熟练程度有了很大提升。之前一直苦于没有一个合适的环境来实践书上的各种理论,对服务器的各种daemon理解都不深。在实验室的时候,案上必备一本鸟哥,随用随查,感觉甚好。另外,实验室采用wiki的资源经验分享方式,结合git项目管理,让我受益匪浅啊。只是可惜直到现在对git的使用还是处于初级阶段,汗一个。。。还有就是对云计算和海量数据处理的概念有了一定理解。目前实验室项目的研究水平在国内的高校甚至业界也算是领先的吧,接触到都是世界范围内的领先技术与概念,真心感受到云计算的发展前景相当大啊。而海量数据处理也是相当程度上依赖于云技术,目前这两个名词已经被炒得相当火了。。。
实习期间还好是住在交大里面,白天全身心投入到工作中,到晚上回到宿舍不用怎么折腾就可以睡了。交大的环境很好,黄昏的时候,还有闲情逸致漫步校园。周末或泡图书馆,或到外面逛下,时间过的真心充实。这才是我梦寐以求的校园生活啊!~~
实习期间还好是住在交大里面,白天全身心投入到工作中,到晚上回到宿舍不用怎么折腾就可以睡了。交大的环境很好,黄昏的时候,还有闲情逸致漫步校园。周末或泡图书馆,或到外面逛下,时间过的真心充实。这才是我梦寐以求的校园生活啊!~~
上一张wiki的图以示纪念吧~半个月的成果~
2012年7月15日星期日
安装ubuntu前后的一系列启动&引导问题
来到纯linux系环境的实验室,原来的debian真心旧到用不了啊,与其upgrade一次,不如重新装过好了。
所以决定重装个ubuntu 12.04 LTS,没想到问题多多。。。就顺便记录下遇到的问题及解决办法吧。
首先,制作U盘的liveCD一直不成功,这个是半年前的旧问题了。。。
最后发现ubuntu中文论坛有个帖子解决了。。。以前怎么没发现?!Orz
http://forum.ubuntu.org.cn/viewtopic.php?f=77&t=355114&sid=c0086339a5480ea7bc31c7b18155facf
然后顺便装好ubuntu 12.04之后,reboot
竟然无法启动grub,出来的是grub rescue> .....
好吧,直接用liveCD的U盘启动,然后终端:
sudo mount /dev/sda8 /mnt //把linux根分区挂载到/mnt
sudo grub-install --root-directory=/mnt /dev/sda //在根分区安装grub
所以决定重装个ubuntu 12.04 LTS,没想到问题多多。。。就顺便记录下遇到的问题及解决办法吧。
首先,制作U盘的liveCD一直不成功,这个是半年前的旧问题了。。。
最后发现ubuntu中文论坛有个帖子解决了。。。以前怎么没发现?!Orz
http://forum.ubuntu.org.cn/viewtopic.php?f=77&t=355114&sid=c0086339a5480ea7bc31c7b18155facf
然后顺便装好ubuntu 12.04之后,reboot
竟然无法启动grub,出来的是grub rescue> .....
好吧,直接用liveCD的U盘启动,然后终端:
sudo mount /dev/sda8 /mnt //把linux根分区挂载到/mnt
sudo grub-install --root-directory=/mnt /dev/sda //在根分区安装grub
sudo umount /mnt //卸载分区
reboot
顺利出现grub菜单~
参考链接:
http://os.51cto.com/art/201006/205349.htm
用了一天,想换回win7的时候发现,选到win7,只是闪了一下屏幕就回到grub。
一开始吓我一跳,别是弄坏了分区表吧?
进到ubuntu仔细看了下 /etc/grub/grub.cfg 发现没什么问题啊,应该不是grub2的问题,那就是说,MBR没有问题,是PBR的问题。也就是win loader异常了。
上网一阵狂搜,总算找到解决办法:
找一张win7系统盘,进去到安装界面,shift + F10 调出cmd,
bootrec /fixboot
重启
OK~win7娘回来了~
这次装ubuntu真是积累了好多经验。。。。。Orz
用了一天,想换回win7的时候发现,选到win7,只是闪了一下屏幕就回到grub。
一开始吓我一跳,别是弄坏了分区表吧?
进到ubuntu仔细看了下 /etc/grub/grub.cfg 发现没什么问题啊,应该不是grub2的问题,那就是说,MBR没有问题,是PBR的问题。也就是win loader异常了。
上网一阵狂搜,总算找到解决办法:
找一张win7系统盘,进去到安装界面,shift + F10 调出cmd,
bootrec /fixboot
重启
OK~win7娘回来了~
这次装ubuntu真是积累了好多经验。。。。。Orz
2012年6月6日星期三
host主机SSH登陆虚拟机配置
说来玩了linux 1年多还是第一次SSH登陆 = =汗
大概弄了半个晚上 + 半个早上
显示解决了互ping的问题,设好SSH,解决putty的中文乱码。。。
问题真是一个接一个啊 = =
先说说环境吧。
host:win7 ultra, 客户端用PuTTY登陆, Oracle Virtualbox
VM:GNU/Linux debian 6.0,openSSH
----------------------
物理机配置(host configuration):
virtualbox 设置-> 网络,启用网络连接1,选择NAT,网络连接2,选择host-only adapter
宿主机当前使用的网卡设置为 “允许共享” 给虚拟网卡
cmd下看看网络状态:
ipconfig /all
应该可以看到本机真实网卡信息和虚拟网卡信息,将host-only的IP记下(我这里是192.168.137.1)
虚拟机配置(VM configuration):
先看看网络情况
$/sbin/ifconfig -a
看到有eth0 和 eth1
由于我装debian的时候选的NAT和DHCP,所以eth0就是分配到的子网IP:10.0.2.5
eth1默认没有设置IP,负责和虚拟网卡通信
以下设置eth1
$sudo gedit /etc/network/interfaces
添加下面配置:
# 启动系统激活设备
# 网卡eth1设置为Static类型
auto eth1
iface eth1 inet static
# 指定IP地址、子网掩码、广播、网关
# IP和host-only虚拟网卡同一网段即可
# 网关地址为宿主机的虚拟网卡IP
address 192.168.137.2
netmask 255.255.255.0
broadcast 192.168.137.255
gateway 192.168.137.1
保存之后
$sudo /etc/init.d/networking restart //重启网络服务
$/sbin/ifconfig -a //查看当前网络状况
看到eth1正常配置即可
然后VM和host互ping,ping通就说明可以进行SSH登录了
------------------------------optional
debian默认没有安装SSH服务端,so
$sudo apt-get install openssh-server
----------------------------------
大概弄了半个晚上 + 半个早上
显示解决了互ping的问题,设好SSH,解决putty的中文乱码。。。
问题真是一个接一个啊 = =
先说说环境吧。
host:win7 ultra, 客户端用PuTTY登陆, Oracle Virtualbox
VM:GNU/Linux debian 6.0,openSSH
----------------------
物理机配置(host configuration):
virtualbox 设置-> 网络,启用网络连接1,选择NAT,网络连接2,选择host-only adapter
宿主机当前使用的网卡设置为 “允许共享” 给虚拟网卡
cmd下看看网络状态:
ipconfig /all
应该可以看到本机真实网卡信息和虚拟网卡信息,将host-only的IP记下(我这里是192.168.137.1)
虚拟机配置(VM configuration):
先看看网络情况
$/sbin/ifconfig -a
看到有eth0 和 eth1
由于我装debian的时候选的NAT和DHCP,所以eth0就是分配到的子网IP:10.0.2.5
eth1默认没有设置IP,负责和虚拟网卡通信
以下设置eth1
$sudo gedit /etc/network/interfaces
添加下面配置:
# 启动系统激活设备
# 网卡eth1设置为Static类型
auto eth1
iface eth1 inet static
# 指定IP地址、子网掩码、广播、网关
# IP和host-only虚拟网卡同一网段即可
# 网关地址为宿主机的虚拟网卡IP
address 192.168.137.2
netmask 255.255.255.0
broadcast 192.168.137.255
gateway 192.168.137.1
保存之后
$sudo /etc/init.d/networking restart //重启网络服务
$/sbin/ifconfig -a //查看当前网络状况
看到eth1正常配置即可
然后VM和host互ping,ping通就说明可以进行SSH登录了
------------------------------optional
debian默认没有安装SSH服务端,so
$sudo apt-get install openssh-server
----------------------------------
订阅:
博文 (Atom)









