将Sphinx的日志放置到/dev/shm里需要注意的事情

可以采用定时器控制,清空日志的办法:

几种快速清空文件内容的方法:
  $ : > filename #其中的 : 是一个占位符, 不产生任何输出.
  $ > filename
  $ echo “” > filename
  $ echo /dev/null > filename
  $ echo > filename
  $ cat /dev/null > filename

但是,日志是有一定作用的,比如下面是个例子:Sphinx重建索引失败安例分析

重建Sphinx索引的时候,可以使用以下命令:

/sphinx/bin/indexer –rotate idx_name
但是这个命令并不是保证一定能重建成功的,有时候重建了之后,发现新的数据并没有加入到索引里,而从日志可以看到这样的记录:

WARNING: rotating index ‘idx_m_tag’: lock: failed to lock /sphinx/data/idx_m_tag.new.spl: Resource temporarily unavailable; using old index
WARNING: rotating index ‘idx_n_tag’: lock: failed to lock /sphinx/data/idx_n_tag.new.spl: Bad file descriptor; using old index
[Sun Mar 24 06:40:01.084 2013] [12413] rotating finished
日志记录了重建索引失败,继续使用旧的索引这一事实。

要分析这个原因,首先要知道sphinx的重建索引的流程,日志里记录的spl文件,实际是一个空文件,只是sphinx加锁的一个标记而已。重建索引时,会生成新的索引文件,即在原来的文件名字后面加上.new标记为新文件,旧文件不变。然后重启searchd进程,所以我们在执行rotate index的时候会看到这样的输出:

rotating indices: succesfully sent SIGHUP to searchd (pid=12413).
searchd进程启动后,会执行一个操作,把旧文件命名为.old文件,把.new文件更新为正常的索引文件名,如果有问题,会有 一个回滚的操作。在这个过程中,通过对spl这个文件的加锁和解锁来进行文件切换。

如果对spl的锁争用出现问题,就会导致新的索引文件不生效,这时候的解决办法是手动重启searchd进程。

如何避免这个问题,最简单的就是对sphinx日志进行监控,通过脚本捕捉到lock spl文件失败的情况,马上处理。

那么一般如何在运维中关注索引的生成情况呢?

Nagios监控Sphinx的indexer日志

http://os.51cto.com/art/201103/247290.htm
时间: 2024-10-04 06:13:31

将Sphinx的日志放置到/dev/shm里需要注意的事情的相关文章

Linux下的tmpfs文件系统(/dev/shm)

转自:http://www.2cto.com/os/201411/354888.html 介绍 /dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统.redhat中默认大小为物理内存的一半,使用时不用mkfs格式化. tmpfs是Linux/Unix系统上的一种基于内存的虚拟文件系统.tmpfs可以使用您的内存或swap分区来存储文件(即它的存储空间在virtual memory 中, VM由real memory和swap组成).由此可见,tmpfs主要存储暂存

Linux 下的tmpfs文件系统(/dev/shm)

介绍 /dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统.redhat中默认大小为物理内存的一半,使用时不用mkfs格式化. tmpfs是Linux/Unix系统上的一种基于内存的虚拟文件系统.tmpfs可以使用您的内存或swap分区来存储文件(即它的存储空间在virtual memory 中, VM由real memory和swap组成).由此可见,tmpfs主要存储暂存的文件.它有如下2个优势 : 1. 动态文件系统的大小.2. tmpfs 使用VM建的文件

amm与/dev/shm

/dev/shm对Oracle 11g的影响: ORACLE 从11g版本开始,引入了一个自动内存管理(Automatic Memory Management)特性,该特性需要更多的共享内存(/dev/shm),因此如果决定应用该特性的话, 必须要确保共享内存大于ORACLE 中初始化参数MEMORY_MAX_TARGET 和MEMORY_TARGET(特别提示,这两个参数即自动内存管理特性对应的初始化参数)的值.      如果在初始化参数中设置了MEMORY_MAX_TARGET 和MEMO

linux下的/dev/shm/及对Oracle 的影响

一./dev/shm/介绍: /dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里.因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果. /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到.但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节:如果它最大为1G,里头放有 100M文件,那剩余的900

浅析/dev/shm

一,/dev/shm 概念 /dev/shm 是一个tmpfs文件系统,临时文件系统,是基于内存的文件系统,也就是说/dev/shm中的文件是直接写入内存的,而不占用硬盘空间. 在Centos和Redhat下,/dev/shm目录是一个链接,指向/run/shm目录,在Ubuntu系统下tmpfs文件系统对应的是/run/shm目录,可以使用df命令查看),因为 /dev/shm/这个目录不在硬盘上,而是在内存里,它就所谓的tmpfs. 在Redhat/CentOS等linux发行版中默认大小为

oerr ora 000845解决方法是扩大/dev/shm空间

打开虚拟机发现实例起不来 [[email protected] ~]# su - oraclesq[[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 2 14:59:54 2016 Copyright (c) 1982, 2013, Oracle.  All rights reserved. Connected to an idle instance. [ema

linux的/dev/shm目录用于优化

我们日常操作中经常df –Th查看磁盘容量,那么/dev/shm的作用到底是什么?  $ df -Th 文件系统      类型    容量  已用 可用 已用% 挂载点 /dev/sda2     ext3     57G   32G   23G  59% / /dev/sda5     ext3    476G  341G  111G  76% /var /dev/sda1     ext3    190M   29M  153M  16% /boot /dev/sdb1     ext2 

oracle对/dev/shm的使用

查看共享内存打开的文件数 [[email protected] ~]# lsof -n | grep /dev/shm | wc -l 34693 共享内存中总共文件数 [[email protected] ~]# ls -l /dev/shm | wc -l 495 Why is Oracle keeping hundreds of thousands Open File descriptors in /dev/shm while there are just hundreds of file

用linux服务器下的/dev/shm/来释放磁盘的压力

巧用linux服务器下的/dev/shm/来释放磁盘的压力 浏览:646 | 更新:2013-06-18 18:08 | 标签: 磁盘 tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的内存或swap分区来存储文件.由此可见,tmpfs主要存储暂存的文件.它有如下2个优势 : 1. 动态文件系统的大小.2. tmpfs 的另一个主要的好处是它闪电般的速度.因为典型的 tmpfs 文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的.同时它也有一个缺点