Viila2.0上线初始访问速度慢道一个不可思议,打开一个期货的详情能拖过拉拉1分钟。在我3天的努力下,终于从 9989ms提升到现在的727ms。和大家分享一下,建议持怀疑态度的同行先进入www.viila.net去验证一下,如果觉得根本不符合你的预期,就别耽误时间了。
查找原因发现ruby解析较慢,数据库果询也较慢,所以着手解决:
查资料大家都说REE 解决了内存泄露的问题,并且运行较稳定.
解决步骤如下:
Ruby-enterprise 1.8.7 安装手记
要安装 ruby enterprice 1.8.7 先安装 tcmalloc
tcmalloc 是google发布在内存的分配上效率和速度要高得多,可以在很大程度上提高服务器在高并发情况下的性能,降低系统负载.
ubuntu 下安装方法:
添加仓库地址到/etc/apt/sources.list
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
保存sources.list
apt-get update
apt-get install libtcmalloc-minimal0
tcmalloc 安装完成.
下载: ruby-enterprise-1.8.7-2010.02.tar.gz
tar xzvf ruby-enterprise-x.x.x.tar.gz
PREFIX=/opt/ruby-enterprise
cd ruby-enterprise-x.x.x/source
patch -p1 -R < ../fast-threading.patch
cd ../..
cd ruby-enterprise-x.x.x/source/distro/google-perftools-*
./configure --prefix=$PREFIX --disable-dependency-tracking
make libtcmalloc_minimal.la
sudo mkdir -p $PREFIX/lib
sudo rm -f $PREFIX/lib/libtcmalloc_minimal*.so*
sudo cp -Rpf .libs/libtcmalloc_minimal*.so* $PREFIX/lib/
cd ../..
./configure --prefix=$PREFIX --enable-mbari-api CFLAGS='-g -O2'
打开 Makefile
找到
LIBS =
LIBS = $(PRELIBS) -ldl -lcrypt -lm $(EXTLIBS)
make PRELIBS="-Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -ltcmalloc_minimal"
sudo make install
./ruby-enterprise-X.X.X/installer -c --enable-shared
./ruby-enterprise-X.X.X/installer -c --enable-pthread
PATH="/opt/ruby-enterprise-x.x.x/bin:
GC 调整:
RUBY_HEAP_MIN_SLOTS=500000
RUBY_HEAP_SLOTS_INCREMENT=250000
RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
RUBY_GC_MALLOC_LIMIT=50000000
优化mysql 提高查询能力:
给查询量大的表增加索引并根据系统调整MYSQL的参数如下:
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
net_buffer_length = 8K
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
query_cache_size = 32M
thread_concurrency = 4
thread_cache_size = 1200
max_connections=10000
default-storage-engine=INNODB
log-bin-trust-function-creators = 1
event_scheduler = ON
query_cache_size = 400M
thread_stack = 128k
tmp_table_size = 256M
max_tmp_tables = 256
binlog_cache_size = 2M
max_binlog_size = 128M
max_binlog_cache_size = 512M
log_queries-not-using-indexes
long_query_time = 1
innodb_buffer_pool_size = 1300M
innodb_log_file_size = 256M
innodb_lock_wait_timeout = 100
innodb_flush_log_at_trx_commit = 2
经过长时间的编译.终于安装完成.
重启系统发现性能有大幅度的上升:
从日志中看访问期货的走势图中的访问时间由原来的:
Completed in 9989ms View: 2381, DB: 7583)
提升到:
Completed in 727ms (View: 374, DB: 132)
在建项目viila(http://www.viila.net)欢迎各位大侠攻击指教。
分享到:
相关推荐
10. **YARV虚拟机**:Ruby 2.6.3使用YARV(Yet Another Ruby VM)作为其默认的解释器,这是一个高效的字节码虚拟机,提高了Ruby的执行速度。 在压缩包中,"说明.htm"可能是关于Ruby 2.6.3安装、配置或使用的指南,...
从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出以下详细的IT知识点,主要聚焦于使用Ruby语言对Excel文件进行...通过这些技术,可以显著提高数据处理效率,减少手动操作,提升数据管理的准确性和速度。
2. **Safe Navigation Operator(安全导航运算符)**: `&.` 可以防止在访问可能为 `nil` 的对象的方法时引发 `NoMethodError`。 3. **Proc#lambda?** 和 **Proc#to_proc** 的区分:`Proc.new` 创建的 Proc 对象默认...
memcached是一种分布式内存对象缓存系统,常用于减轻数据库的负载,提高Web应用的响应速度。Dalli这个名字是"Damn Lighweight All-In-One memcached client"的缩写,暗示了其轻量级和全面的功能。 Dalli库由Mike ...
Ruby StringTemplate是一个高效且专为Rails框架设计的模板引擎,它充分利用了Ruby语言的字符串插值功能来提高渲染速度。在Rails应用中,模板引擎扮演着至关重要的角色,它们负责将数据模型与视图结合,生成动态HTML...
你会发现Ruby 2的速度更快,内存管理改进使其更适合服务器环境。 本书假设读者具有面向对象编程的基本理解,Ruby程序员倾向于使用命令行运行代码,并且更喜欢使用文本编辑器而非IDE。Ruby可以在Windows、Linux和Mac...
缓存是一种提升应用程序性能的技术,它通过存储经常访问的数据来减少对数据库或其他慢速资源的查询。Ruby-Kashmir提供了便捷的缓存机制,允许开发者将对象存储在内存、文件系统或支持的缓存服务(如Redis、Memcached...
要开始使用 Streamio FFMPEG,首先需要安装该库(通过 `gem install streamio-ffmpeg`),然后在 Ruby 代码中引入并初始化 FFmpeg 对象,接着调用其提供的方法进行操作。在 `streamio-ffmpeg-master` 压缩包中,通常...
验证Ruby安装成功的方法是编写并运行一个简单的Ruby程序,例如打印当前时间。 Rails的安装通常通过Ruby的包管理器Gem完成,命令`gem install rails --include-dependencies`会自动下载并安装Rails及其依赖。在安装...
为了解决这个问题,`Ruby-GearedPagination`应运而生,它是一种针对`ActiveRecord`数据集合的可变速度分页解决方案。 `Ruby-GearedPagination`的主要目标是提高大型数据集分页的效率。传统的分页方法如`Kaminari`或...
7. **性能提升**:Ruby 1.9采用了YARV(Yet Another Ruby Virtual Machine)虚拟机,相比MRI(Matz's Ruby Interpreter)有显著的性能提升,代码执行速度更快。 8. **异常处理**:异常类层次结构进行了调整,`...
- **Ajax**(Asynchronous JavaScript and XML)与 Ruby on Rails 的结合使得 Web 应用程序具备了更强的交互性和响应速度。通过 Ajax 技术,Rails 应用可以实现实时更新页面内容而无需重新加载整个页面,提升了用户...
这有助于你决定何时创建或删除索引,以提升查询速度。 3. **统计信息**:PgHero展示关于数据库的统计信息,如表大小、行数、索引大小等。这些信息可以帮助你评估数据库的增长情况,预测存储需求,并进行相应的规划...
在Web开发中,缓存是提高性能的关键技术,它可以减少服务器处理请求的负担,加快用户访问速度,提升整体应用的响应能力。 Rack中间件是Ruby Web框架如Rails的基础组成部分,它定义了一个简单的接口,使得各种组件...
1. **性能提升**:由于直接从内存中读取数据,RecordCache显著减少了数据库I/O,提高了应用程序的响应速度。 2. **简单集成**:RecordCache易于安装和配置,对现有代码改动小。 3. **灵活的缓存策略**:支持自定义...
在Ruby开发中,数据库查询是性能的关键瓶颈之一,特别是当处理大量数据或者频繁访问相同数据时。为了解决这个问题,开发者通常会采用缓存技术来提升应用的响应速度。在Ruby on Rails框架下,一种常用的缓存库是...
在性能优化方面,Ruby-Fasterer是一个非常实用的命令行工具,它专注于帮助开发者识别并改进代码中的性能瓶颈,从而提升Ruby应用的运行速度。 Fasterer是一个静态分析工具,它通过扫描你的Ruby代码来检测出可能影响...
Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码可读性,鼓励使用敏捷开发方法。这个压缩包包含了“Ruby on Rails敏捷开发...
无线点餐系统的服务端开发是现代餐饮业...总的来说,Ruby on Rails为无线点餐系统的服务端开发提供了一个强大而灵活的工具,使得开发者能够快速构建出稳定、易维护的系统,优化餐厅的运营效率,提升顾客的用餐体验。