RocketMQ-04自带优化

此优化脚本包在安装包的/bin下面

贴出源码中的优化脚本:

#!/bin/sh
#
# Execute Only Once
#
echo ‘vm.overcommit_memory=1‘ >> /etc/sysctl.conf
echo ‘vm.min_free_kbytes=5000000‘ >> /etc/sysctl.conf
echo ‘vm.drop_caches=1‘ >> /etc/sysctl.conf
echo ‘vm.zone_reclaim_mode=0‘ >> /etc/sysctl.conf
echo ‘vm.max_map_count=655360‘ >> /etc/sysctl.conf
echo ‘vm.dirty_background_ratio=50‘ >> /etc/sysctl.conf
echo ‘vm.dirty_ratio=50‘ >> /etc/sysctl.conf
echo ‘vm.page-cluster=3‘ >> /etc/sysctl.conf
echo ‘vm.dirty_writeback_centisecs=360000‘ >> /etc/sysctl.conf
echo ‘vm.swappiness=10‘ >> /etc/sysctl.conf
sysctl -p
echo ‘ulimit -n 655350‘ >> /etc/profile
echo ‘admin hard nofile 655350‘ >> /etc/security/limits.conf
DISK=`df -k | sort -n -r -k 2 | awk -F/ ‘NR==1 {gsub(/[0-9].*/,"",$3); print $3}‘`
[ "$DISK" = ‘cciss‘ ] && DISK=‘cciss!c0d0‘
echo ‘deadline‘ > /sys/block/$DISK/queue/scheduler
echo "---------------------------------------------------------------"
sysctl vm.overcommit_memory
sysctl vm.min_free_kbytes
sysctl vm.drop_caches
sysctl vm.zone_reclaim_mode
sysctl vm.max_map_count
sysctl vm.dirty_background_ratio
sysctl vm.dirty_ratio
sysctl vm.page-cluster
sysctl vm.dirty_writeback_centisecs
sysctl vm.swappiness
su - admin -c ‘ulimit -n‘
cat /sys/block/$DISK/queue/scheduler

这个脚本分别修改了网络参数 、admin的硬资源限制 、硬盘的刷盘模式

看了下 不能直接运行

需要做以下更改

这个脚本中使用了admin 这个用户,估计阿里的mq是用admin启动的

如果你用root启动RocketMQ 其中的

?


1

2


echo ‘ulimit -n 655350‘ >> /etc/profile

echo ‘admin hard nofile 655350‘ >> /etc/security/limits.conf

这两行可以注释掉, 不过生产环境中还是不推荐直接用root启动服务,所以我useradd admin了。

另个是硬盘优化部分

首先需要知道RockerMQ 运行产生的文件log 都会放在运行用户的家目录中

所以可以在home目录中建个admin 然后将盘挂到/home/admin就可以

接下来是硬盘刷盘模式( I/O Scheduling)

?


1

2

3


DISK=`df -k | sort -n -r -k 2 | awk -F/ ‘NR==1 {gsub(/[0-9].*/,"",$3); print $3}‘`

"$DISK" ‘cciss‘ ] && DISK=‘cciss!c0d0‘

echo ‘deadline‘ /sys/block/$DISK/queue/scheduler

这个也不适用于笔者的环境。目的是要把硬盘的刷盘模式改为deadline

查看下当前硬盘刷盘模式(笔者硬盘为sda)

?


1

2


#cat /sys/block/sda/queue/scheduler

noop anticipatory deadline [cfq]

好吧手动改下

?


1

2

3


#echo ‘deadline‘ > /sys/block/sda/queue/scheduler

#cat /sys/block/sda/queue/scheduler 

noop anticipatory [deadline] cfq

这种方式是立即生效 但是重启后会丢失

如果需要重启后也是deadline 需要添加grub参数

编辑/etc/grub.conf

找到kernel那行 在最后添加

?


1

elevator=deadline

至此完成了此脚本中所做的优化

最后贴出一份笔者改后的(仅仅把参数变量化 方便复用)

注意: (需要root 或 sudo权限才可执行) 请将脚本中用户和盘符换成你的

#!/bin/sh
#
# Execute Only Once 只可执行一次
#
#用户名
USER=admin
#磁盘盘符
DISK=sda
##在grub.conf中添加参数 默认注释掉 需要使用请取消注释
#sed -i ‘s/kernel.*$/& elevator=deadline/‘ /etc/grub.conf
 
echo ‘vm.overcommit_memory=1‘ >> /etc/sysctl.conf
echo ‘vm.min_free_kbytes=5000000‘ >> /etc/sysctl.conf
echo ‘vm.drop_caches=1‘ >> /etc/sysctl.conf
echo ‘vm.zone_reclaim_mode=0‘ >> /etc/sysctl.conf
echo ‘vm.max_map_count=655360‘ >> /etc/sysctl.conf
echo ‘vm.dirty_background_ratio=50‘ >> /etc/sysctl.conf
echo ‘vm.dirty_ratio=50‘ >> /etc/sysctl.conf
echo ‘vm.page-cluster=3‘ >> /etc/sysctl.conf
echo ‘vm.dirty_writeback_centisecs=360000‘ >> /etc/sysctl.conf
echo ‘vm.swappiness=10‘ >> /etc/sysctl.conf
sysctl -p
echo "ulimit -n 655350" >> /etc/profile
echo "$USER hard nofile 655350" >> /etc/security/limits.conf
echo ‘deadline‘ > /sys/block/$DISK/queue/scheduler
echo "---------------------------------------------------------------"
sysctl vm.overcommit_memory
sysctl vm.min_free_kbytes
sysctl vm.drop_caches
sysctl vm.zone_reclaim_mode
sysctl vm.max_map_count
sysctl vm.dirty_background_ratio
sysctl vm.dirty_ratio
sysctl vm.page-cluster
sysctl vm.dirty_writeback_centisecs
sysctl vm.swappiness
su - $USER -c ‘ulimit -n‘
cat /sys/block/$DISK/queue/scheduler

?

至此 优化结束。

I/O Scheduling 配置参照 http://doc.opensuse.org/products/draft/SLES/SLES-tuning_sd_draft/cha.tuning.io.html#cha.tuning.io.schedulers

阿里os.sh源脚本:

https://github.com/alibaba/RocketMQ/blob/develop/bin/os.sh

来源: <http://my.oschina.net/firxiao/blog/315647>

时间: 2024-07-31 07:11:27

RocketMQ-04自带优化的相关文章

04: Mysql性能优化

目录 1.1 Mysql数据库的优化技术 1.2 数据库表设计 1.3 SQL优化 1.为查询缓存优化你的查询 2.EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4.建立适当的索引 1.4 MySQL中like模糊匹配为何低效 1.5 数据库优化方案 1.6 数据库怎么优化查询效率 1.1 Mysql数据库的优化技术 1.mysql优化是一个综合性的技术,主要包括 1. 表的设计合理化(符合3NF) 2. 添加适当索引(index) [四种: 普通索引.主

将Ubuntu 10.04自带2.6.32内核升级成3.0内核图文教程

1.完成如下实践工作,并截屏说明实践步骤:1)下载安装虚拟机VMWare Workstation:2)在虚拟机中安装Linux2.x :3)通过自行编译,将Linux 2.x内核升级到Linux 3.x. 1)     安装VMware Workstation 11.1.0. 2)     在虚拟机中安装Ubuntu 10.04 LTS (ubuntu-10.04-desktop-i386.iso),其Linux内核版本为2.6.32. 3)     从kernel.org下载新版3.0.0内核

04: Mysql性能优化一

1.1 Mysql数据库的优化技术 1.mysql优化是一个综合性的技术,主要包括 1. 表的设计合理化(符合3NF) 2. 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] 3. 分表技术(水平分割.垂直分割) 4. 读写[写: update/delete/add]分离 5. 存储过程 [模块化编程,可以提高速度] 6. 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] 7. mysql服务器硬件升级 8. 定时的去清除不需要的数

python 第十二天2018.04.01 带参数的装饰器,,函数的有用信息

一.带参数的装饰器,函数的有用信息 def func1(): '''此函数的功能是完成的登陆的功能 return: 返回值是登陆成功与否(true,false) ''' print(333) func1() print(func1.__name__)#func1 print(func1.__doc__)#此函数的功能是完成的登陆的功能,return: 返回值是登陆成功与否 打印函数名 from functools import wraps def wrapper(f): @wraps(f) de

12.切换分类-实际信令-切换带优化定义

切换分类 实际信令 站内UE跟踪 X2和S1在基站跟踪 以上都是从基站侧跟踪的 切换带 过大(乒乓切换),过小(掉话),信令风暴 路损模型算出来的距离 过渡区:都满足切换的条件,如大于2db余量 切换执行区:保证切换时延 保护区域:切换后,一定db内防止再切换,如2db 实际:与门限配置一起.通过实际测量感受,切换带与时延. 原文地址:https://www.cnblogs.com/sec875/p/11802881.html

04.SQLServer性能优化之---读写分离&amp;数据同步

汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 过段时间再继续写文章吧,本来准备把SQLServer一个系列写完的,最近状态很差很不好,调节调节吧,这样也能码出更多的好文~

安装ubuntu14.04之后要做的一些事

前言: 用ubuntu14.04也有一段时间了,感觉与之前版本相比还是在挺多方面有了改进.但刚装完还是有一些小问题需要自己动手解决.鉴于网上的内容太过零碎,有些方案也太过老旧,因此在这里为大家总结一些个人使用的优化方式跟配置方案,希望可以为刚接触ubuntu14.04的朋友提供一些帮助:)也欢迎大家补充:) 一.输入法配置 ubuntu14.04自带ibus输入法框架.虽然可以输入中文,但还是存在比较多的bug.在这里给大家推荐基于fcitx输入法框架的搜狗拼音输入法. 配置过程如下:1.安装f

《RocketMQ》

作为一款消息中间件,RocketMQ需要解决的技术问题其实在分布式系统领域中都有所体现.首先如果将分布式系统的领域按照分布式通信.分布式存储.分布式计算以及分布式管理这四大部分进行划分,其实就会发现在这四大技术栈下有很多的子技术.这里列举几个简单的例子,比如在分布式通信领域下对于网络协议的选择上面,像RocketMQ是基于TCP的,而基于RocketMQ内核的Aliware MQ是有基于HTTP协议的网关,同时也提供了MQTT协议网关.除了像网络协议的选择之外,还会有I/O的模型,这也属于分布式

Yii php 环境配置on ubuntu 12.04

ubuntu 12.04自带的php版本是5.3.x的,不支持explode(...)[]的语法,故升级到5.4.x. aptitude install python-software-properties add-apt-repository ppa:ondrej/php5-oldstable aptitude update aptitude upgrade Yii安装依赖: aptitude install php5-mysql Yii php 环境配置on ubuntu 12.04,布布扣