2T 总容量的日志服务器 插入性能持续衰减 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Banio
V2EX    Linux

2T 总容量的日志服务器 插入性能持续衰减

  •  
  •   Banio 2016-11-20 10:44:47 +08:00 4334 次点击
    这是一个创建于 3248 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们现在有台日志服务器 总容量 2T 内存 2G 4 核服务器 表关系比较简单 就是俩表 一个表记录 session 触发的时间和条件 另一个表统计当前 session 包含了多少条内容

    现在用分表 ( postgresql 分表功能感觉不是很好)在单表数据量到 300w 以后发现插入性能下降的特别明显 可能是索引太多 插入速度也就达到刚开始的 1/10 插入日志的时候磁盘 io 较高 请问有没有什么好的优化方案

    或者可用 nosql 或者别的数据库处理 谢谢! 小弟数据库这方面积累比较薄弱 麻烦大神指教 谢谢

    22 条回复    2016-11-24 04:26:09 +08:00
    yidinghe
        1
    yidinghe  
       2016-11-20 10:56:48 +08:00
    如果楼主觉得索引太多,可以尝试减少索引。如果确实是这个原因的话,恐怕换成 nosql 性能也高不起来。日志这东西也就一个日期时间索引就可以了吧。
    ryd994
        2
    ryd994  
       2016-11-20 10:58:21 +08:00 via Android
    既然是日志服务器,能不能陈旧数据分离转移?
    另外索引设置是否合理?
    有没有钱上 SSD ?至少热数据要在 SSD 里
    内存 2G 也许不是很够,检查一下是不是所有索引能放得下?
    Banio
        3
    Banio  
    OP
       2016-11-20 11:12:15 +08:00
    @ryd994 我们第一个表是 11 个索引 对应我们网页端 的 11 个筛选条件 也不知道是不是合理。。。 300w 条的时候 每个索引就将近 100m 了 索引是都放在内存中读取吗。。。那看来是不够了 其实我们这日志系统要求比较简单 插入 删除 查询 不涉及更新什么的
    ryd994
        4
    ryd994  
       2016-11-20 11:27:48 +08:00 via Android
    @Banio 一般要求索引在内存里,否则性能会很差
    11 个筛选条件也许有重合可以精简索引,这个不是我专业
    jimzhong
        5
    jimzhong  
       2016-11-20 13:08:14 +08:00
    增加内存试试, 2G 偏小了
    owt5008137
        6
    owt5008137  
       2016-11-20 13:15:16 +08:00 via Android
    perf top 看下? 2GB 内存确实有点小。看看交换区是不是占用过大呗? linux 的交换区性能屎一样
    Banio
        7
    Banio  
    OP
       2016-11-20 14:35:48 +08:00
    @jimzhong
    @owt5008137 指望内存增加是不可能了。。。。现在要求日志系统每秒插入 1w 条日志。。。。我觉得好渺茫
    Banio
        8
    Banio  
    OP
       2016-11-20 15:18:59 +08:00
    @owt5008137 每次都发现内容占用满了 但是 swap 分区并没有占用 这是需要配置么
    jhaohai
        9
    jhaohai  
       2016-11-20 15:23:39 +08:00 via iPhone
    既然是日志那就用 es 吧
    Banio
        10
    Banio  
    OP
       2016-11-20 15:45:35 +08:00
    @jhaohai elasticsearch??
    realpg
        11
    realpg  
    PRO
       2016-11-20 16:25:15 +08:00
    2G 内存……

    DDR3 REG 的白菜价,我们开发的测试服务器都 48G 内存……
    Banio
        12
    Banio  
    OP
       2016-11-20 16:29:35 +08:00
    @realpg 你们有没有测试数据什么的 你们这级别的服务器 日志每秒最大插入多少条 带索引么
    realpg
        13
    realpg  
    PRO
       2016-11-20 16:33:37 +08:00
    @Banio
    我们日志服务器从来都不用索引 除了 pk , opid ,其他全没有索引
    谁没事儿天天大量检索日志服务器玩 索引开销远大于查询次数
    日志服务器完善分表,按日,按时分表,单一组容量有限
    reticentfat
        14
    reticentfat  
       2016-11-20 16:49:49 +08:00
    es +1
    neoblackcap
        15
    neoblackcap  
       2016-11-20 17:54:49 +08:00
    日志请上 es ,毕竟别人就是专门搞这个
    sopato
        16
    sopato  
       2016-11-20 21:25:29 +08:00
    按天分表,就按时间做索引,性能应该不会下降太多的呀,上一个公司就是这么做的,感觉性能还行,除非查询的时候跨天数太多。
    Nexvar
        17
    Nexvar  
       2016-11-20 21:30:01 +08:00
    日志不用 ELK 技术栈?
    Banio
        18
    Banio  
    OP
       2016-11-21 13:33:54 +08:00
    @realpg 请问你们用没用过 mangodb 这种 nosql 日志也不需要完整的事务性的
    Tony8Finet
        19
    Tony8Finet  
       2016-11-21 22:21:45 +08:00
    不怕死的话 PostgreSQL 9.1 起有:
    CREATE UNLOGGED TABLE ...;
    ALTER TABLE tablename SET UNLOGGED;
    Banio
        20
    Banio  
    OP
       2016-11-22 21:55:55 +08:00
    @Tony8Finet 这个啥意思 不写入数据库吗 还是不根据事务类型
    RangerWolf
        21
    RangerWolf  
       2016-11-23 17:05:44 +08:00
    为什么不可能加内存?不解~

    另外,直接程序内部进行分表,比如每小时一张表,超过 X 小时直接删除,类似这种。
    还有就是,尽量批量写、

    PostgreSQL 并没有听说对日志友好啊
    Tony8Finet
        22
    Tony8Finet  
       2016-11-24 04:26:09 +08:00
    @Banio 不产生事务类日志, 写入效能会比一般表来得快。

    看一下文件: CREATE TABLE

    UNLOGGED

    If specified, the table is created as an unlogged table. Data written to unlogged tables is not written to the write-ahead log (see Chapter 29), which makes them considerably faster than ordinary tables. However, they are not crash-safe: an unlogged table is automatically truncated after a crash or unclean shutdown.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3784 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 118ms UTC 00:12 PVG 08:12 LAX 17:12 JFK 20:12
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86