精华内容
下载资源
问答
  • 如何修改安卓日志缓冲区大小

    千次阅读 2020-05-27 14:51:28
    为了提高抓日志的效率,需要把日志缓冲区大小设置更大一点。 分析设置开发者模式的日志大小设置界面 --- DevelopmentSettings,可以知道日志缓冲大小修改后,都会修改属性值persist.logd.size。 因此尝试在开机时...

    安卓8.1 默认日志缓冲大小为64K,当前系统打印的日志比较多时,就容易把前面的日志冲掉,或者出现Unexpected EOF错误导致抓取的日志经常是无效的。

    为了提高抓日志的效率,需要把日志缓冲区大小设置更大一点。

    分析设置开发者模式的日志大小设置界面 --- DevelopmentSettings,可以知道日志缓冲大小修改后,都会修改属性值persist.logd.size。

    因此尝试在开机时就把persist.logd.size配置为4M,

    PRODUCT_PROPERTY_OVERRIDES += \
        persist.logd.size=4194304

    通过adb logcat -g 可以知道已成功配置为4M。

    F:\>adb logcat -g
    main: ring buffer is 4Mb (1Mb consumed), max entry is 5120b, max payload is 4068b
    system: ring buffer is 4Mb (143Kb consumed), max entry is 5120b, max payload is 4068b
    crash: ring buffer is 4Mb (0b consumed), max entry is 5120b, max payload is 4068b

     

    展开全文
  • 日志缓冲区大小设置

    千次阅读 2012-12-24 14:52:15
    设置日志缓冲区时,可以参考下面这个建议的公式来计算:1.5*(平均每个事务所产生的重做记录大小*每秒提交的事务数量)首先找到总事务量是多少:select a.value as trancount from v$sysstat a...
    设置日志缓冲区时,可以参考下面这个建议的公式来计算:1.5*(平均每个事务所产生的重做记录大小*每秒提交的事务数量)

    首先找到总事务量是多少:
    select a.value as trancount from v$sysstat a,v$statname b
    where a.statistic# = b.statistic# and b.name = 'user commits';

    然后找到系统总的运行时间:
    select trunc(sysdate - startup_time)*24*60*60 as seconds from v$instance;

    第三,找到产生的所有重做记录大小:
    select value as redoblocks from v$sysstat where name = 'redo blocks written';

    最后,我们可以分别计算公式中的值:
    平均每个事务所产生的重做记录大小 = redoblocks/trancount;
    每秒提交的事务数量 = trancount/seconds
    这样,最后所建议的日志缓冲区大小可以写为:1.5 * (redoblocks/trancount) * (trancount/seconds)

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23009281/viewspace-751562/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/23009281/viewspace-751562/

    展开全文
  • InnoDB有两个非常重要的日志:undo log、redo log (1)通过undo log可以看到数据较早版本,实现MVCC,或回滚事务等功能。 (2)通过redo log用来保证事务持久性。 Mini-Transaction是用来实现InnoDB的物理逻辑日志...

    InnoDB有两个非常重要的日志:undo log、redo log
    (1)通过undo log可以看到数据较早版本,实现MVCC,或回滚事务等功能。
    (2)通过redo log用来保证事务持久性。

    Mini-Transaction是用来实现InnoDB的物理逻辑日志的写入和页恢复的。
    通过Mini-Transaction来保证并发事务操作和数据库异常时页的一致性。

    Mini-Transaction主要用于innodb redo log和undo log写入,保证两种日志的ACID特性。(注意:是日志的ACID特性)​

    当在MySQL中对InnoDB表进行更改时,这些更改首先存储在InnoDB日志缓冲区的内存中,然后写入通常称为重做日志(redo logs)的InnoDB日志文件中。

    image.png
    redo日志缓冲区是内存存储区域,用于保存要写入磁盘上的日志文件的数据。日志缓冲区大小由innodb_log_buffer_size 变量定义,默认大小为16MB。

    日志缓冲区的内容定期刷新到磁盘。较大的日志缓冲区可以运行大型事务,而无需在事务提交之前将重做日志数据写入磁盘。因此,如果有更新,插入或删除许多行的事务,则增加日志缓冲区的大小可以节省磁盘I/O。

    innodb_flush_log_at_trx_commit :控制如何将日志缓冲区的内容写入并刷新到磁盘。
    innodb_flush_log_at_timeout :控制日志刷新频率。

    如果磁盘I/O导致性能问题,则需要观察事务,例如涉及许多BLOB条目的事务。只要InnoDB日志缓冲区已满,便会将其刷新到磁盘,因此增加缓冲区大小可以减少I/O。

    日志文件的缺省数量为两个: ib_logfile0 和 ib_logfile1 。
    日志具有固定大小,默认大小取决于MySQL版本。
    从5.7版本开始,默认值是每个48MB,从MySQL 5.6.3开始,最大总大小为 512GB。

    如果应用程序是写密集型应用程序,则可以使用48MB,并且鉴于日志以循环方式工作,当日志写满时,有必要对磁盘上的数据文件进行写操作。所以,如redo log大小设置较小,可能会导致频繁的磁盘写入甚至是等待,极大地降低了性能。可通过查看日志序列号状态变量log_lsn_current和log_lsn_last_checkpoint来观察刷新的频率。通过将两个值相减,并与重做日志空间的总大小进行比较,可了解刷新是否比期望的发生更频繁。

    要调整 innodb_log_buffer_size 或 innodb_log_file_size 变量,必须在MySQL的my.cnf配置文件中显式定义。
    attention:
    调整 innodb_log_buffer_size 或 innodb_log_file_size 变量前,建议关闭实例,以确保MySQL正确无误地停止运行。如果在关闭过程中出现错误,则现有的日志文件可能尚未完全写入数据文件,数据可能会丢失。

    这里重点讲述下innodb_flush_log_at_trx_commit,该参数控制如何将日志缓冲区的内容写入并刷新到磁盘。

    先看下图:
    image.png

    innodb_flush_log_at_trx_commit参数在0,1,2下的不同含义:

    1. 属性值为0:事务提交时,不会将redo log buffer写入redo file,而是等待主线程按时(1秒钟)写入。在该值下,写入效率最高,但是数据安全最低。
    2. 属性值为1:事务每次提交时,都会将重做日志写入文件系统缓存,并且调用文件系统的fdatasync(),将文件系统缓冲中的数据真正写入磁盘存储,确保不会出现数据丢失。在该值下,写入效率最低,但是数据安全最高。一般建议将该属性值设置为1,以获得较高的数据安全性,而且也只有设置为1,才能保证事务的持久性。
    3. 属性值为2,事务提交时,也会将日志文件写入redo log buffer和OS层的文件系统缓存,但是不会调用fdatasync(),而是让文件系统自己去判断何时将缓存写入磁盘。在该值下,二者都是中等水平。

    【参考】
    https://blog.csdn.net/weixin_39997438/article/details/107730854

    【参考】
    https://blog.csdn.net/u010647035/article/details/104733939

    文章至此。

    以下为个人公众号,欢迎扫码关注:
    image.png

    展开全文
  • 1、简述 当在MySQL中对InnoDB表进行更改时,这些更改首先存储在InnoDB...日志缓冲区大小由innodb_log_buffer_size 变量定义,默认大小为16MB。 日志缓冲区的内容定期刷新到磁盘。较大的日志缓冲区可以运行大型事...

    1、简述

    在这里插入图片描述

    当在MySQL中对InnoDB表进行更改时,这些更改首先存储在InnoDB日志缓冲区的内存中,然后写入通常称为重做日志(redo logs)的InnoDB日志文件中。

    日志缓冲区是内存存储区域,用于保存要写入磁盘上的日志文件的数据。日志缓冲区大小由innodb_log_buffer_size 变量定义,默认大小为16MB。

    日志缓冲区的内容定期刷新到磁盘。较大的日志缓冲区可以运行大型事务,而无需在事务提交之前将重做日志数据写入磁盘。因此,如果有更新,插入或删除许多行的事务,则增加日志缓冲区的大小可以节省磁盘I/O。

    innodb_flush_log_at_trx_commit :控制如何将日志缓冲区的内容写入并刷新到磁盘。

    innodb_flush_log_at_timeout :控制日志刷新频率。

    2、如何确定InnoDB日志缓冲区大小是否需要调整?

    如果磁盘I/O导致性能问题,则需要观察事务,例如涉及许多BLOB条目的事务。只要InnoDB日志缓冲区已满,便会将其刷新到磁盘,因此增加缓冲区大小可以减少I/O。

    另外需要观察的是MySQL的InnoDB重做日志(redo logs)。它们是磁盘上的一组文件,其中包含对InnoDB表所做的所有最近更改的记录,并在崩溃恢复期间使用。根据环境的不同,这些文件可能需要根据默认设置进行调整,例如日志的总数和大小。

    日志文件的缺省数量为两个,分别名为 ib_logfile0 和 ib_logfile1 。日志具有固定大小,默认大小取决于MySQL版本。从5.7版本开始,默认值是每个48MB,从MySQL 5.6.3开始,最大总大小为 512GB。

    3、如何确定日志文件的大小是否需要调整?

    如果应用程序是写密集型应用程序,则可以使用48MB,并且鉴于日志以循环方式工作,当日志写满时,有必要对磁盘上的数据文件进行写操作。因此,如果日志文件的大小太小,可能会导致频繁的磁盘写入甚至是等待,从而极大地降低了性能。可以通过查看日志序列号状态变量log_lsn_current和log_lsn_last_checkpoint来观察刷新的频率。通过将两个值相减,并与重做日志空间的总大小进行比较,您可以了解刷新是否比期望的发生更频繁。

    要调整 innodb_log_buffer_sizeinnodb_log_file_size 变量,必须在MySQL的配置文件中显式定义它们。在进行这些更改之前,请关闭实例,以确保MySQL正确无误地停止运行。如果在关闭过程中出现错误,则现有的日志文件可能尚未完全写入数据文件,并且数据可能会丢失。

    总结:在考虑MySQL数据库性能时,Innodb_log_buffer_sizeInnodb_log_file_size是要分析的两个重要变量。如果大型事务导致过多的磁盘I/O,则可以增加InnoDB日志缓冲区。出于相同的原因,InnoDB日志文件通常会基于默认值增加。如果它变得太快,则检查点刷新活动会增加,并且可能会导致性能降低。

    4、参考文献

    1. 《高性能MySQL(第3版)》
    2. 《MySQL技术内幕:InnoDB存储引擎(第2版)》
    3. 《MySQL源码库》
    4. 《MySQL参考手册》
    5. 《MySQL实战45讲》
    6. 《数据库内核月报》
    展开全文
  • 概念:志缓冲区是小型的、用于短期存储将写入到磁盘上的重做日志的变更向量的临时区域。"变更向量"是应用于某些对象的修改,执行DML语句会生成应用于数据的变更向量。有了重做日志,数据库就可以确保数据永不丢失:...
  • Android Log缓冲区大小设置

    千次阅读 2018-06-25 14:18:00
    当手机没有连接PC时,手机log缓冲区仍然会保存指定大小的最新log,连接pc,通过adb logcat 仍然可以拿出来 如何查看log缓缓区的大小? 通过adb logcat -g 可以查看 C:\Users\zh>adb logcat -gmain: ring ...
  • window 修改 cmd 窗口以及缓冲区大小

    千次阅读 2019-10-05 16:25:25
    首先打开cmd窗口,把尺寸拉到你喜欢的尺寸,点击窗口属性,查看此时的【布局】,有“屏幕缓冲区大小” 和“窗口大小”两个项,分别记录下他们的宽高值。 很多人不明白缓冲区大小的概念,其实就是能够在一行跟一屏...
  • 日志缓冲区Log_buffer是Oracle专门用于存入重做日志的内存区域。数据库启动时,可以看到:SQL> startupORACLE 例程已经启动。Total System Global Area 85006980 bytesFixed Size 453252 bytesVariable Size ...
  • 其写日志文件的顺序是:程序写入用户地址空间内核从用户地址空间缓冲区复制到内核文件缓冲区内核文件缓冲区满的情况下再放入内核io队列,等待写入到硬盘上。写文件其实不是直接写到硬盘,那样的话一堆程序都同时...
  • 找到 Android Studio的安装目录\bin\idea.properties 文件将文件中的idea.cycle.buffer.size=1024 改成 例如: idea.cycle.buffer.size=102400
  • 此命令执行之时起的全部日志信息到一个文件里,ctrl + C 结束日志输出; 后面不加 > 路径/文件名 的话,则在 stdout (终端窗口)中输出! 例如:$ adb logcat -v long Checkin *:S > ~/桌面/log.txt 一、在 Java ...
  • 调整重做日志缓冲区大小

    千次阅读 2009-08-18 09:41:23
    调整重做日志缓冲区大小 --调整LOG_BUFFER参数 --缺省值:512K或128K * cpu_count的值,二个中较大的一个   v$session_wait视图指明在”log buffer space%”事件过程中,是否存在因会话向日志缓冲区中写入...
  • 怎么判断innodb 日志缓冲区该设置为多大呢 转载于:https://www.cnblogs.com/lehao/p/3911603.html
  • 缓冲提高日志系统性能

    千次阅读 热门讨论 2015-08-11 07:18:50
    本文介绍的是自己用c++11实现的一个简单的多缓冲区日志系统,比较水,仅供参考^_^ 主题: 日志系统及重要性 单缓冲日志系统模型及缺陷 多缓冲buffer介绍及优势 多缓冲区缺陷 Buffer类设计及分析 Logger类设计及分析...
  • Android测试之logcat日志

    2020-02-17 16:03:26
    缓冲区是环形的、首尾相连,用于缓存固定数据大小的日志信息,开发者选项中有一个叫“日志记录器缓冲区大小”,默认为256k,通常写满时会删除最旧日志为新日志保留空间。 android log输出量巨大,特别是通信系统log...
  • 日志缓冲区

    千次阅读 2013-07-18 20:51:57
    日志缓冲区是小型的,用于短期存储将写入磁盘上的重做日志的变更向量的临时区域。 “变更向量”是应用于某些对象的修改,执行DML语句会生成应用于数据的变更向量。 有了重做日志,可以确保数据永不丢失。执行DML...
  • step1: step2: step3:      
  • 知道了缓冲区大小了,接下来就要看它什么时候往缓冲区里装数据了,肯定是在调用read方法读取数据的时候,我们就看常用的read(byte[])这个方法,这个方法又调用了read(byte b[], int off, int len)方法,而这个...
  •  我们可以用printk打印kernel的日志信息(即log信息),根据...那么如何增大缓冲区大小呢? 我们看kernel/printk.c的代码 #define LOG_ALIGN __alignof__(struct printk_log)  #define _
  • IntelliJ IDEA默认的Output输出缓存区大小只有1024KB,超过大小限制的就会被清除,而且还会显示【too much output to process】,可通过如下配置界面进行修改Override console cycle buffer size(Settings→Editor...
  • 重做日志缓冲区

    千次阅读 2013-07-09 13:14:24
    设置重做日志缓冲区的目的就是为了在数据库崩溃的时候可以进行恢复数据库。 当oracle进行dml或者ddl操作的时候,在写数据高速缓冲区之前,先写入重做日志缓冲区。 oracle执行dml操作的时候,只有编译和执行,没有...
  • 日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析redo log buffer日志中记录数据块的地址,更改的时间以及对数据块做了哪些改变。Oracle在执行任何DML和DDL操作改变数据之前,都会将恢复所需要的信息,先写入...
  • App logcat日志分析

    千次阅读 2020-02-23 22:00:06
    文章目录logcat日志文件缓冲区 logcat日志文件 android日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区...开发者选项中有个叫日志记录缓冲区大小,默认是256k,也就是超过了256...
  • 改Android Studio的Logcat缓冲区大小

    千次阅读 2016-08-23 10:38:54
    C:\Android Studio\bin\idea.properties文件中 将idea.cycle.buffer.size=1024改成例如: idea.cycle.buffer.size=1024000
  • SecureCRT缓冲区大小设置

    千次阅读 2014-07-04 13:51:28
    在使用SecureCRT操作设备时,默认的回滚行数为500行。可以通过打开[选项]->[会话选项]->[Terminal]->[Emulation]-[Scrollback],默认为500行,可以最大调整到128000行。 ...
  • MySQL的几个重要的缓冲区配置项

    千次阅读 2019-07-26 17:03:42
    线程栈信息使用内存(thread_stack) 主要用来存放每一个线程自身的标识信息,如线程id,线程运行时基本信息等等,我们可以通过 thread_stack 参数来设置...当我们设置的排序缓存大小无法满足排序实际所需内存的时...
  • MySQL重做日志缓冲 - Redo log Buffer

    千次阅读 2020-08-01 16:55:52
    InnoDB有两个非常重要的日志:undo log、redo log (1)通过undo log可以看到数据较早版本,实现MVCC,或回滚事务等功能。 (2)通过redo log用来保证事务持久性。 Mini-Transaction是用来实现InnoDB的物理逻辑日志...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,767
精华内容 39,106
关键字:

日志缓冲区大小