服务器大比拼

Tags: ,
本来Heroku用的舒舒服服。
又申请到了Joyent的免费服务器一年,日子本该轻松写意,谁知道国内外交流障碍重重,只好在国内寻觅服务器。
鉴于服务,价格之类的,留下如下选择,皑皑,也不知道最终该选择哪个。
1)7×24.cn
384M内存,20G硬盘,VPS+Centos4.1,年付2400
小六用的IDC,目前试用一个月。
优点是价格相对便宜,200/month;网速很快,上海机房,连接51很快;然后阴差阳错的给了我1G内存@@
缺点是服务很乱,前一段时间似乎就给了我256M内存;还有一天机房down机3个小时;操作系统不熟悉,rpm + yum快让我崩溃了,自己配制的lighttpd+fastcgi似乎有内存问题。
 
2)rashost.com
512M内存,20G硬盘,VPS+Ubuntu 8.04, 年付3000
网上找到的IDC,目前试用中(说是2天,一周了,反正现在也没人来收)
优点是服务器很舒服,ubuntu我的最爱,apt-get安装轻松写意;fastcgi的内存泄露问题也似乎解决了。。。
缺点是价格略高,250/month;速度一般,北京机房,到51大概40ms,不过到校内很快;内存有限,512M;
 

 
3)123server.cn
 600M硬盘,虚拟主机,年付300
专门针对RoR的虚拟主机,目前试用中(一周)
国内仅存的RoR虚拟主机,朋友推荐下申请试用。
优点是针对RoR服务,猜测技术支持,服务器环境应该会好一些;价格便宜(512M的服务器最多也就2个应用了感觉);上海服务器,网速很快;
缺点是只有一个mongrel端口(有点搞笑了),
 
4)edong.com
2G内存,160G硬盘,独立主机,年付5000
开发群里面叫卖的服务器,看了一下配制,没有用暂时。
优点是内存大,硬盘大,性价比是所有服务器里面最高的;可以预装ubuntu,舒服;据说服务很好7×24.
缺点是总价高。。。。。。。。。
 
皑皑,何去何从。
 
 

 

系统遗留问题

Tags: ,
1 系统级别的内存监控
现在的脚本只能实现定时memcached, lighttd 重起。
希望能够实现系统级别的内存监控然后预警重起服务。
 
2 进程级别的内存监控
目前的脚只能重起memcached, fastcgi, lighttpd
但是内存仍然会有莫名的增长,暂时定位是mysql的问题。
更加精确的监控需要软件或者脚本支持。
 
3fastcgi的堆积(已解决)
默认lighttpd stop的时候会关闭fastcgi.
可是如果当前存在请求的话就不会自动关闭。
所以多次以后会产生fastcgi累积。
解决方案是直接kill
 
4mysql产生若干进程
原因是编译时加入了–with-all-static的选项导致了。
其实MySQL一直都是单进程、多线程的工作模式。只是,LinuxThreads并不是真正的线程,因此,这些进程其实还是采用系统调用 clone() 来共享同样的地址空间的。尽管采用 ps 查看的结果看起来是多进程,其实mysqld真正的工作方式还是多线程。
 
5fastcgi启动数目过多
尚无头绪
 
6ruby enterprise
稳定性
对内存泄漏问题的补丁效果
性能
 
7rails框架选择
1webrick
2mongrel
3apache + mongrel
4apache + mongrel_cluster
5lighttpd + fastcgi
6nignix + mongrel…
有待考察。。。
 
8rails的内存泄漏诊断方法
 
9系统监控软件安装
 
 
当前脚本
/etc/init.d/lighttpd stop
/etc/init.d/memcached stop
ps -ef | grep fcgi | awk ‘{kill -9 $2}’
/etc/init.d/memcached start
/etc/init.d/lighttpd start

 

VPS攒机经历(6)

所谓饿死胆小的,撑死胆大的。
昨天ark提到ruby enterprise大概能提高效率解决内存溢出。
马上安装
安装倒是很容易
./installer
/opt/ruby-enterprise/bin/gem install rails mongrel mongrel_cluster heroku memcache-client
问题
1怎么使用
解决
想了半天,靠我的聪明才智想到了了
修改rails/public/dispatch.fcgi中ruby路径
 
2lighttpd启动成功,日志报错又是那个backend idle ;5 seconds之类的。。。
解决
ruby-fcgi没装。。。
./opt/ruby-enterprise/bin/gem install fcgi
 
3ruby-fcgi安装失败
have_header: checking for fcgiapp.h… ——————– no
没有fcgi的头文件
解决
原来fcgi是自己装的,系统不认。
进入fcgi gem的安装目录
/opt/ruby-enterprise/bin/ruby ./extconf.rb –with-fcgi-dir=…..
make ** make install
/opt/ruby-enterprise/bin/gem install fcgi
搞定
 
杀死所有fcgi进程
重起lighttpd,等待结果

 

VPS攒机经历(5)

折中的方法在rashost上试用他们的服务器,
安装好应用看看效果。
不得不说Xen虚拟框架+Ubuntu要不Virzzruo + Centos爽快的多
free -m 直接就是自己内存,不用瞎猜
apt-get 比起一个一个找的rpm和不熟悉的yum要强无数倍
除了到51.com竟然要600ms的ping 之外几乎完美
 
1安装make, gcc, binutils,libc,
2安装mysql-server, mysql-client
3安装lighttpd, fastcgi,
4安装ruby,rubygems,rails,gems,
 
问题
1
unknown config-key: fastcgi.server
解决
在lighttpd.conf中配置mod_fastcgi
其实conf-available里面已经有了,可是不会用light-avaiable-enabled
只好自己添加到主文件
 
2
fastcgi无法启动
解决
修改dispatch.fcgi的ruby路径
 
3
connect failed: Connection refused on unix:
解决
说是fastcgi启动失败,死了,lighttpd连接不上
其实我libruby-fcgi没装。。。。。
 
目前运行正常
明天迁移数据库,然后看看内存

 

基于Ubuntu的Tomcat 负载均衡配置

Ubuntu:7.10
Tomcat:6.0.16
apache:2.2
JK       :1.2.26
 
Tomcat的负载均衡已经不是什么新鲜话题了.
主要的问题是Ubuntu下的Apache2.2,JK的安装文件结构略有不同,导致一般基于Linux的JK安装教程不是完全通用.
 
文件安装
Ubuntu就是这么得轻松暇意
sudo apt-get install apache2 libapache2-mod-jk
 
文件结构
libapache2-mod-jk的配置文件在/etc/libapache2-mod-jk/work.properties
apache2的配置文件都在/etc/apache2下.
和一般的配置不同的是/etc/apache2/httpd.conf是空的.
ubuntu下的配置文件是通过/etc/apache2/apache2.conf以及两个文件夹mods-enabled,sites-enabled来实现的
apache2.conf默认如下配置:
 
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
 
Tomcat的配置
修改{CATALINA_HOME}/conf/server.xml,增加红色部分内容.注意"worker1"需要和apache2中的worker.properties标示一致.
<Engine name="Standalone" defaultHost="localhost" jvmRoute="worker1"
 
Apache2的配置
安装libapache2-mod-jk的时候已经自动添加了/etc/apache2/mods-enabled/jk.load,包含了Load Module的部分配置.
然后在apache2.conf中增加如下配置(按照我的猜测,更加标准的做法是在/etc/apache2/mods-enabled/下创建jk.conf进行配置)
JkWorkerFile /etc/libapache2-mod-jk/worker.properties
JkMount /*.jsp router
JkMount /*/servlet router
JkMount /jkmanager/* jkstatus #用于监测Load Balancer状态
 
然后修改/etc/libapache2-mod-jk/worker.properties

worker.list=router 
worker.worker1.type=ajp13 
worker.worker1.host=localhost 
worker.worker1.port=8009 
worker.worker1.lbfactor=1  
 
worker.worker2.type=ajp13 
worker.worker2.host=localhost 
worker.worker2.port=8010 
worker.worker2.lbfactor=1  
 
worker.router.type=lb 
worker.router.balance_workers=worker1,worker2 

 
#用于监测Load Balancer状态
worker.list=jkstatus 
worker.jkstatus.type=status
 
运行
启动Tomcat
sudo {CATALINA_HOME}/bin/catalina.sh start
启动Apache
sudo /etc/init.d/apache2 restart
 
另外关键的是JK1.2默认的是Session Sticky,如果需要修改清参考reference.

 

无觅相关文章插件,快速提升流量