首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kafka组成&使用场景---Kafka从入门到精通(四)

    上篇文章介绍了kafka的设计概要,有点对点的队列模式,和消费生产的topic模式,kafka有着高吞吐,低延迟,伸缩性,消息持久化,负载均衡故障转移特性,kafka跟其他处理内存方式不同,内存高命中率来保证发送消息直接在内存操作,而持久化直接交给系统去处理,并且持久化采用的是顺序IO,sendFile零拷贝来保证高吞吐。Kafka的负载均衡则是采用broken和topic每个都有一个master和flower,每个topic的matser和flower不在同一个broken,这样保证一个服务器宕机,其他的flower也会存储数据,不会丢失,故障转移则是 会通过会话心跳的机制跟zookeeper来实现,通过服务注册入zookeeper中,一旦服务器停止,则会选举新的服务。伸缩性也是由zookeeper来配合的,因为有多个服务,这时候则需要考虑多个服务的一致性,服务的无状态 或者 轻量级状态可以保证效率更高,所以他们统一吧状态写入zookeeper保存。

    01

    从ORA-27300,ORA-27301到ORA-00064

    最近由于session数量增加,需要调整session,也就是要调整process参数。看是比较简单的一个问题,却遭遇了ORA-27300,ORA-27301。因为这个涉及到了有关内核参数kernel.sem的修改。下面是其具体描述。 1、故障现象 OS版本:SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l) DB版本: SQL*Plus: Release 10.2.0.3.0 - Production  需求:Processes参数由1000修改到2000 SQL> startup pfile=/u02/database/MRDB/initMRDB.ora; ORA-27154: post/wait create failed ORA-27300: OS system dependent operation:semget failed with status: 28 ORA-27301: OS failure message: No space left on device ORA-27302: failure occurred at: sskgpcreates 2、故障的分析与解决 #起初咋一看还以为空间不够呢,如下,显然不是空间的问题,其次有个很重要的表示"semget" SQL> ho df -h Filesystem            Size  Used Avail Use% Mounted on /dev/sda3             1.8T  826G  885G  49% / udev                   32G  116K   32G   1% /dev /dev/sda1              99M  9.5M   85M  11% /boot #后台日志如下 Tue Aug  5 18:07:22 2014 Starting ORACLE instance (normal) Tue Aug  5 18:07:22 2014 Errors in file /u02/database/MRDB/udump/mrdb_ora_30366.trc: ORA-27154: post/wait create failed ORA-27300: OS system dependent operation:semget failed with status: 28 ORA-27301: OS failure message: No space left on device ORA-27302: failure occurred at: sskgpcreates #Google了一些文章,描述的是需要调整内核参数kernel.sem,也就是信号量的问题 v2012db02u:~ # grep kernel.sem /etc/sysctl.conf kernel.sem = 1250    32000   100    256     #这个是当前的值 信号量设置示例     SEMMSL应该设置为服务器中实例中具有最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。     SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为5010,SEMMNI的值一般为128,则SEMMNS参数应为(5010*128)=641280。     SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010     因此对于信号量建议做如下设置     sysctl -w kernel.sem="5010 641280 5010 128" #关于这个参数的具体描述及设置可以参考:Linux 内核参数优化(for oracle) #由于当前服务器存在N个实例,因此给了一个比较大的值,生产环境应慎重修改,如下     v2012db02u:~ # vi /etc/sysctl.conf v2012db02u:~ # sysctl -p     ........... kernel.sem = 7000 1792000 7000 256     ...........  #再次启动,狂汗.... SQL> startup pfile=/u02/database/MR/initMR.ora; ORA-00064: object is too large to allocate on this O/S (1,5150880) v2012db02u:~ > oerr ora 00064 00064, 00000, "object is too large to allocate on this O/S (%s,%s

    01
    领券