V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Tianpu
V2EX  ›  问与答

/dev/shm 能不能当作一般文件系统使用?

  •  
  •   Tianpu · 2015-05-15 16:31:12 +08:00 · 2533 次点击
    这是一个创建于 3509 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有临时文件读写需求,写入频繁,无论是写入数据库、memcached、还是直接硬盘,都觉得不够快,这个能不能作为/tmp使用?

    不怕文件丢

    谢谢
    第 1 条附言  ·  2015-05-15 17:28:30 +08:00
    简单测试下 结果很奇怪

    key value r/w memcached tmpfs
    32 33 10 2.6 1.6
    32 330 10 3.2 1.6
    32 3330 10 4.6 1.6

    tmpfs无论怎么测试 结果都是1.6ms 大概是内存响应速度吧
    第 2 条附言  ·  2015-05-15 17:29:28 +08:00
    32 33330 10 21.6 3.3
    第 3 条附言  ·  2015-05-15 17:30:03 +08:00
    测试代码:

    $k = md5(mt_rand());
    for($i=0;$i<10;$i++){
    $t.= md5(mt_rand()).PHP_EOL;
    }
    $s = microtime(true);
    for($i=0;$i<100;$i++){
    $memd->set($k,$t,100);
    $t = $memd->get($k);
    }
    echo $t;
    echo number_format((microtime(true)-$s)*1000,9).'ms'.PHP_EOL;
    $s = microtime(true);
    for($i=0;$i<100;$i++){
    file_put_contents(init_memdisk($k),$t);
    file_get_contents(init_memdisk($k));
    }
    echo $t;
    echo number_format((microtime(true)-$s)*1000,9).'ms'.PHP_EOL;
    第 4 条附言  ·  2015-05-15 17:30:25 +08:00
    得把依赖memcached的部分数据迁移到tmpfs了 真快啊
    第 5 条附言  ·  2015-05-15 18:14:18 +08:00
    系统响应时间降低 0.003s 效果比较显著
    7 条回复    2015-05-18 07:55:58 +08:00
    Tiande
        1
    Tiande  
       2015-05-15 16:40:26 +08:00
    move 到 /go/linux 节点比较好。

    当然可以直接当 内存盘 使用 ;)
    Tianpu
        2
    Tianpu  
    OP
       2015-05-15 16:41:41 +08:00
    多谢


    @dtdnqsb

    有无性能损失呢?相当于直接读内存,这样子的理解没问题吧?
    Septembers
        3
    Septembers  
       2015-05-15 16:43:45 +08:00
    Tianpu
        4
    Tianpu  
    OP
       2015-05-15 16:46:31 +08:00
    多谢

    那我能确定了 一堆计数器 定时写入数据库 即使是memcached也有一定的系统损耗 现在切换到/dev/shm的 以文件形式保存
    Tiande
        5
    Tiande  
       2015-05-15 16:50:00 +08:00   ❤️ 1
    @Tianpu 性能损失我不懂,只知道快 ;)
    容量 inode 是有限制的,如果读的 文件数量 非常之多,可以重新 mount 一下:
    #mount -o size=6000M -o nr_inodes=4000000 -o noatime,nodiratime -o remount /dev/shm
    需要永久实现就改 /etc/fstab
    Tianpu
        6
    Tianpu  
    OP
       2015-05-15 17:06:44 +08:00
    @dtdnqsb 就几千个文件
    ryd994
        7
    ryd994  
       2015-05-18 07:55:58 +08:00 via Android
    memcached不是纯内存么?应该不比shm差啊?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   995 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:37 · PVG 02:37 · LAX 10:37 · JFK 13:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.