Ramlog 以系统守护进程的形式运行。在系统启动时它创建虚拟磁盘(ramdisk),将 /var/log 下的文件复制到虚拟磁盘中,同时把虚拟磁盘挂载为/var/log。然后所有的日志就会更新到虚拟磁盘上。而当 ramlog 重启或停止时,需要记录到硬盘上的日志就会保留在目录/var/log.hdd中。而关机的时候,(ramdisk上的)日志文件会重新保存到硬盘上,以 确保日志一致性。Ramlog 2.x默认使用tmpfs文件系统,同时也可以支持ramfs和内核ramdisk。使用rsync(译注:Linux数据镜像备份工具)这个工具来同步 日志。

注意:如果突然断电或者内核崩溃(kernel panic)时,没有保存进硬盘的日志将会丢失。

如果你拥有够多的可用内存,而又想把日志放进虚拟磁盘,就安装ramlog吧。它是笔记本用户、带有UPS的系统或是直接在flash中运行的系统的优良选择,可以节省日志的写入时间。

Ramlog的运行机制以及步骤如下:

Ramlog 由第一个守护进程(这取决于你所安装过的其它守护进程)启动。

然后创建目录/var/log.hdd并将其硬链至/var/log。

如果使用的是tmpfs(默认)或者ramfs 文件系统,将其挂载到/var/log上。

而如果使用的是内核ramdisk,ramdisk会在/dev/ram9中创建,并将其挂载至/var/log。默认情况下ramlog会占用所有ramdisk的内存,其大小由内核参数"ramdisk_size"指定。

接着其它的守护进程被启动,并在ramdisk中更新日志。Logrotate(译注:Linux日志轮替工具)和 ramdisk 配合的也很好。

重启(默认一天一次)ramlog时,目录/var/log.hdd将借助rsync与/var/log保持同步。日志自动保存的频率可以通过 cron(译注:Linux例行性工作调度)来控制。默认情况下,ramlog 的调度任务放置在目录/etc/cron.daily下。

系统关机时,ramlog在最后一个守护进程关闭之前关闭。

在ramlog关闭期间,/var/log.hdd中的文件将被同步至/var/log,接着/var/log和/var/log.hdd都被卸载,然后删除空目录/var/log.hdd。

注意:- 此文仅面向高级用户

在Ubuntu中安装Ramlog

首先需要用以下命令,从这里下载.deb安装包:

wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb

下载ramlog_2.0.0_all.deb安装包完毕,使用以下命令进行安装:

sudo dpkg -i ramlog_2.0.0_all.deb

这一步会完成整个安装,现在你需要运行以下命令:

sudo update-rc.d ramlog start 2 2 3 4 5 . stop 99 0 1 6 .

现在,在更新sysklogd的初始化顺序,使之能在ramlog停止运行前正确关闭:

sudo update-rc.d -f sysklogd remove

sudo update-rc.d sysklogd start 10 2 3 4 5 . stop 90 0 1 6 .

然后重启系统:

sudo reboot

系统重启完毕,运行'ramlog getlogsize'来获取你当前的/var/log的空间大小。在此基础之上多分配40%的空间,确保ramdisk有足够的空间(这整个都将作为ramdisk的空间大小)。

编辑引导配置文件,如/etc/grub.conf,、/boot/grub/menu.lst 或/etc/lilo.conf(译注:具体哪个配置文件视不同引导加载程序而定),给你的当前内核的新增选项 'ramdisk_size=xxx' ,其中xxx是ramdisk的空间大小。

配置Ramlog

基于deb的系统中,Ramlog的配置文件位于/etc/default/ramlog,你可以在该配置文件中设置以下变量:

RAMDISKTYPE=0

# 取值:

# 0 -- tmpfs (可被交换到交换分区) -- 默认

# 1 -- ramfs (旧内核不能设置最大空间大小,

# 不能被交换到交换分区,和 SELinux 不兼容)

# 2 -- 老式的内核 ramdisk

TMPFS_RAMFS_SIZE=

# 可以用于 tmpfs 或 ramfs 的最大内存大小

# 这个值可以是百分比或数值(单位是 Mb),例如:

# TMPFS_RAMFS_SIZE=40%

# TMPFS_RAMFS_SIZE=100m

# 该值为空表示 tmpfs/ramfs 的大小是全部内存的 50%

# 更多选项可以参考 ‘man mount' 中的‘Mount options for tmpfs' 一节

# (补充,在较新的内核中,ramfs 支持大小限制,

# 虽然 man 中说没有这个挂载选项)

# 该选项仅用于 RAMDISKTYPE=0 或 1 时

KERNEL_RAMDISK_SIZE=MAX

#以 kb 为单位指定的内核 ramdisk 大小,或者使用 MAX 来使用整个 ramdisk。

#该选项仅用于 RAMDISKTYPE=2 时

LOGGING=1

# 0=关闭, 1=打开 。记录自身的日志到 /var/log/ramdisk

LOGNAME=ramlog

# 自身的日志文件名 (用于 LOGGING=1时)

VERBOSE=1

# 0=关闭, 1=打开 (设置为 1时,启动或停止失败时会调用 teststartstop 将细节

# 写到日志中)

在Ubuntu中卸载ramlog

打开终端运行以下命令:

sudo dpkg -P ramlog

注意:如果ramlog卸载之前仍在运行,需要重启系统完成整个卸载工作。

译文:http://linux.cn/article-5118-1.html

linux 内存日志,性能优化:使用ramlog将日志文件转移到内存中相关推荐

  1. Linux进程调度与性能优化 | 真货

    作者简介: 张毅峰,某主机厂架构师. 一.eBPF安全可观测性的前景展望 本次分享将从监控和可观测性.eBPF安全可观测性分析.内核安全可观测性展望三个方面展开. 1.监控(Monitoring)vs ...

  2. Linux内核网络性能优化

    Linux内核网络性能优化 1. 前言 2. Linux网络协议栈 3. DPDK 4. XDP 4.1 XDP主要的特性 4.2 XDP与DPDK的对比 4.3 应用场景 5. CPU负载均衡 5. ...

  3. gperftools mysql_利用 gperftools 对nginx mysql 内存管理 性能优化

    利用 gperftools 对nginx 与 mysql  进行 内存管理  性能优化 降低负载. Gperftools 是由谷歌开发.官方对gperftools 的介绍为: These tools ...

  4. 视频教程-iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-iOS

    iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化 小码哥教育CEO,曾开发了2个iOS的流行开源框架(MJRefresh.MJExtension),目前在国内的使用率非常高. 李 ...

  5. iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-李明杰-专题视频课程...

    iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-236人已学习 课程介绍         得遇名师,突飞猛进!iOS培训王者MJ(李明杰)老师精心研发,iOS进阶课程,实用技术 ...

  6. android 图片内存缓存文件在哪个文件夹,别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G...

    原标题:别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G 你的手机内存还剩多少G?我们在使用手机时,都会产生大量的缓存数据,如果不定期清理,就会积少成多,导致手机内存空间爆满. 你有定期 ...

  7. linux内存迁移,性能优化:使用Ramlog将日志文件转移到内存中

    Ramlog 以系统守护进程的形式运行.在系统启动时它创建虚拟磁盘(ramdisk),将 /var/log 下的文件复制到虚拟磁盘中,同时把虚拟磁盘挂载为/var/log.然后所有的日志就会更新到虚拟 ...

  8. 鲲鹏性能优化十板斧(二)——CPU与内存子系统性能调优

    1.1 CPU与内存子系统性能调优简介 调优思路 性能优化的思路如下: l   如果CPU的利用率不高,说明资源没有充分利用,可以通过工具(如strace)查看应用程序阻塞在哪里,一般为磁盘,网络或应 ...

  9. Linux 文件系统IO性能优化

    对于LINUX SA来说,服务器性能是需要我们特别关注的,包括CPU.IO.内存等等系统的优化变得至关重要,这里转载一篇非常不错的关于IO优化的文章,供大家参考和学习: 一.关于页面缓存的信息,可以用 ...

最新文章

  1. Java学习总结:21
  2. 心中无码,自然高清 | 联合去马赛克与超分辨率研究论文Pytorch复现
  3. 使用 QEMU 进行系统仿真
  4. c++Selection Sort选择排序的实现算法(附完整源码)
  5. 实用技巧:Linux操作系统Vim/Vi编程提速
  6. 【BZOJ】1013 球形空间产生器
  7. linux 文件大小_整理 | Linux下列出目录内容命令
  8. 滴滴市值超百度 达到791亿美金
  9. 【跃迁之路】【722天】程序员高效学习方法论探索系列(实验阶段479-2019.2.12)...
  10. 人脸识别系列(一):dlib安装和使用
  11. 金蝶服务器组件无法正常工作,K3组件kdsvrmgr无法正常工作
  12. C++——return0
  13. 修改SQL Server名称(@@ServerName)
  14. 创新创造蓝海 远程接入行业又添新品
  15. 计算机桌面上的公文包怎么加密,windows10的我的电脑 windows公文包该怎么使用
  16. OneNote遇到临时服务器无法登录的问题
  17. 上海市电子警察分布表
  18. 蓝桥杯-2020-Java-B组-装饰珠-动态规划
  19. 使用爬虫代理错误问题解决方案
  20. 高速串口通信稳定_长虹配套珠峰5G通信装备,保障直播信号稳定高速传输

热门文章

  1. python如何绘制折线图-python如何画折线图
  2. 自学python还是报班-Python应该自学还是报班好?
  3. python语言用途-python编程语言有什么用途
  4. python读什么英文-Python编程但英语差,能用中文吗?
  5. 自己的电脑上怎么用python-如何做一个任何电脑都能用的python程序?
  6. python第三方库numpy-python第三方库之numpy基础
  7. python常用命令大全-Python常用命令之集合
  8. javascript高级程序设计之函数表达式
  9. 如何摆脱穷打工的命?
  10. 题目1188:约瑟夫环