V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yidinghe
V2EX  ›  程序员

别嫌内存多

  •  
  •   yidinghe · 2018-03-22 09:46:10 +08:00 · 14648 次点击
    这是一个创建于 1528 天前的主题,其中的信息可能已经有所发展或是发生改变。

    内存多不知道怎么用?用来运行数据库!数据库是 IO 频繁的应用,建一个内存盘把数据库放进去运行,速度快的飞起。比如在机械硬盘上导数据可能需要一个小时,在内存盘里面几秒钟就能搞定。

    第 1 条附言  ·  2018-03-22 10:21:06 +08:00
    1. 可以创建磁盘镜像,挂载的时候从磁盘读取镜像文件到内存,使用过程中可以随时手动将内存盘内容刷入磁盘,所以可以做到一定程度的保存。如果你想说实时保存,那就没含义了。

    2. 为什么对数据库做优化不行:数据库读取的时候会用缓存,但是写入的时候会尽可能实时写入磁盘,这也是为了数据安全性。所以大量写入的时候 IO 会受不了,因为是随机写,所以你会看到硬盘灯狂闪,但每秒写入的数据量只有 1M,甚至更低。

    3. 为什么不换内存数据库:我这样做不限数据库类型,你不能为了这就把项目的现有数据库给换了,这不现实吧。

    4. 为什么不买更好的硬件:你说呢?
    128 条回复    2020-01-10 15:45:35 +08:00
    1  2  
    yejinmo
        1
    yejinmo  
       2018-03-22 10:00:31 +08:00
    有什么好用的 RAM Disk 工具推荐么?
    Hucai
        2
    Hucai  
       2018-03-22 10:01:23 +08:00
    死机断电不就歇菜了
    capljf
        3
    capljf  
       2018-03-22 10:05:23 +08:00   ❤️ 2
    把电闸关了你得喊娘
    dndx
        4
    dndx  
       2018-03-22 10:05:23 +08:00
    断电、死机数据就不打算要了?
    yidinghe
        5
    yidinghe  
    OP
       2018-03-22 10:07:29 +08:00   ❤️ 1
    @yejinmo 我在用的是 SoftPerfect RAM Disk

    ![]( )


    @Hucai 可以创建磁盘镜像,挂载的时候从磁盘读取镜像文件到内存,使用过程中可以随时手动将内存盘内容刷入磁盘,所以可以做到一定程度的保存。如果你想说实时保存,那就没含义了。
    gam2046
        6
    gam2046  
       2018-03-22 10:09:48 +08:00
    我知道是时候可以秀一波内存了。

    https://i.loli.net/2018/03/22/5ab30fe9d1dee.jpg

    实际上,这并不是所有的内存。

    https://i.loli.net/2018/03/22/5ab31061d8ea1.jpg
    neoblackcap
        7
    neoblackcap  
       2018-03-22 10:10:25 +08:00   ❤️ 3
    假如我没记错的话,mysql 跟 sqlite 都有仅使用内存的存储引擎或者方案,sql server 好像也有。因此 ramdisk 不是那么必要吧。
    再说了,没记错的话,windows 也是会将没有用到的内存用于文件缓存来加速整个系统,直接使用 ramdisk 也不见得是最优解
    simapple
        8
    simapple  
       2018-03-22 10:11:48 +08:00   ❤️ 8
    我不嫌内存多,就嫌内存贵
    yidinghe
        9
    yidinghe  
    OP
       2018-03-22 10:12:36 +08:00
    @neoblackcap 数据库读取的时候会用缓存,但是写入的时候会尽可能实时写入磁盘,这也是为了数据安全性。所以大量写入的时候 IO 会受不了,你会看到硬盘灯狂闪,但每秒写入的数据量只有 1~2M。
    daviswei
        10
    daviswei  
       2018-03-22 10:12:39 +08:00 via Android
    直接用 redis ?其实内存数据库也是早就有了
    wlwood
        11
    wlwood  
       2018-03-22 10:15:27 +08:00
    可怜巴巴的看着我那 2G 内存。只想说,哇擦,你们这些土豪。。。。。。。。。。。。。。。。。。。。。。。。。
    silencefent
        12
    silencefent  
       2018-03-22 10:15:29 +08:00 via Android
    何必呢,傲腾 900p 了解一下
    yidinghe
        13
    yidinghe  
    OP
       2018-03-22 10:16:40 +08:00
    @daviswei 首先这样做不限数据库类型,你不能为了这就把项目的现有数据库给换了,这不现实吧。
    keximing250
        14
    keximing250  
       2018-03-22 10:16:42 +08:00
    @wlwood 熊 dei 你这逗号怎么超出界面了?
    jasonyang9
        15
    jasonyang9  
       2018-03-22 10:16:56 +08:00   ❤️ 1
    我想把整个人生都放到内存中去运行。。。
    yidinghe
        16
    yidinghe  
    OP
       2018-03-22 10:17:19 +08:00
    @silencefent 有条件可以上
    laoyur
        17
    laoyur  
       2018-03-22 10:19:46 +08:00
    @keximing250 #14 可能是对于连续的标点符号不知道怎么算折行了?测试下:


    你们这些土豪

    [DEACTIVATED FOR POINTLESS REPLY]
    anubiskong
        18
    anubiskong  
       2018-03-22 10:21:49 +08:00
    既然有这么多闲钱,为什么不买几块 sm961 组 raid ?
    Felldeadbird
        19
    Felldeadbird  
       2018-03-22 10:23:12 +08:00
    汗。V2 是存在微信的 句号 BUG ?
    keximing250
        20
    keximing250  
       2018-03-22 10:23:30 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    yidinghe
        21
    yidinghe  
    OP
       2018-03-22 10:24:51 +08:00
    @anubiskong 我想知道什么样的 raid 能将 IO 提升几百倍
    cptbtptpbcptdtpt
        22
    cptbtptpbcptdtpt  
       2018-03-22 10:25:11 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    opengps
        23
    opengps  
       2018-03-22 10:25:17 +08:00
    get 了,曾经见过有人将操作系统装进内存。终于知道有这种工具可以做更高 iops 的数据库分析用途了
    xenme
        24
    xenme  
       2018-03-22 10:27:25 +08:00


    最近刚入的洋垃圾,还差根 8G 就满了,目前换货中。

    等几天再入个 1T 的 NVMe SSD 就完美了
    jjx
        25
    jjx  
       2018-03-22 10:30:06 +08:00
    sap hana

    ```
    内存可能有 1T

    ```
    winterbells
        26
    winterbells  
       2018-03-22 10:35:23 +08:00 via Android
    把缓存文件放内存里,关机自动清除
    FindBoyFriend
        27
    FindBoyFriend  
       2018-03-22 10:35:23 +08:00
    @xenme 这也是垃圾?贫穷限制了我的认知能力
    carlclone
        28
    carlclone  
       2018-03-22 10:36:03 +08:00
    谁会嫌内存多啊 , 还不是贫穷限制了我
    xenme
        29
    xenme  
       2018-03-22 10:36:33 +08:00
    @FindBoyFriend 对大佬来说,这就是垃圾,不入流的配置。
    自己折腾用着不错。
    hpeng
        30
    hpeng  
       2018-03-22 10:38:11 +08:00 via iPhone   ❤️ 1
    才 16g 内存,你就嫌多了。
    Len1133
        31
    Len1133  
       2018-03-22 10:38:59 +08:00
    有钱人的操作就是不一样
    panda001
        32
    panda001  
       2018-03-22 10:43:23 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    wlwood
        33
    wlwood  
       2018-03-22 10:57:07 +08:00
    @xenme 土豪,求带飞
    sola97
        34
    sola97  
       2018-03-22 11:00:38 +08:00 via Android
    16g 勉强够用,还不够开虚拟机的,24g 够用,等我有 32g 再来考虑内存盘
    omg21
        35
    omg21  
       2018-03-22 11:03:45 +08:00
    楼上说风凉话的怕断电可以加不间断电源,以你们的见识,可能还不知道这玩意儿吧
    tangbao
        36
    tangbao  
       2018-03-22 11:06:05 +08:00
    @Livid 排版 BUG
    joyhub2140
        37
    joyhub2140  
       2018-03-22 11:15:59 +08:00
    这帖子会变成晒内存容量的帖子的
    cstj0505
        38
    cstj0505  
       2018-03-22 11:23:48 +08:00
    pg 的 copyin 写入快,普通机械盘之前 4 亿条还带索引也就 400 多 s
    wanhuiming
        39
    wanhuiming  
       2018-03-22 11:34:16 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    z0z
        40
    z0z  
       2018-03-22 11:40:39 +08:00
    @panda001 你不厚道,为什么你的句号(。)里还偷偷的藏着点(.)
    kenshin912
        41
    kenshin912  
       2018-03-22 11:40:44 +08:00
    我原来也想过把数据库放到内存里面 ,后来想想感觉意义不大啊。。。
    shaco
        42
    shaco  
       2018-03-22 11:42:09 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    ximenyuxuan
        43
    ximenyuxuan  
       2018-03-22 11:42:22 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    Herobs
        44
    Herobs  
       2018-03-22 11:46:09 +08:00 via Android
    sap hana 了解一下,我这边内存的单位是 T。
    Antidictator
        45
    Antidictator  
       2018-03-22 11:46:14 +08:00
    @panda001 #32 全 V2 就你最长

    [DEACTIVATED FOR POINTLESS REPLY]
    charexcalibur
        46
    charexcalibur  
       2018-03-22 11:47:24 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    54yinhang
        47
    54yinhang  
       2018-03-22 11:54:55 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    ian19znj
        48
    ian19znj  
       2018-03-22 11:56:25 +08:00 via iPhone
    公司标配 64G 内存,根本用不完怎么办?
    dolphintwo
        49
    dolphintwo  
       2018-03-22 11:59:41 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    hooych
        50
    hooych  
       2018-03-22 12:00:27 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    herozem
        51
    herozem  
       2018-03-22 12:00:54 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    lany
        52
    lany  
       2018-03-22 12:05:14 +08:00 via Android
    [DEACTIVATED FOR POINTLESS REPLY]
    wonders2002ok
        53
    wonders2002ok  
       2018-03-22 12:12:02 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    ooTwToo
        54
    ooTwToo  
       2018-03-22 12:25:53 +08:00 via iPhone   ❤️ 1
    楼上刷屏的,是猪吗
    oh
        55
    oh  
       2018-03-22 12:32:22 +08:00 via iPhone   ❤️ 1
    @Livid 刷屏
    beingbin
        56
    beingbin  
       2018-03-22 12:39:36 +08:00
    搭车问一下,闲置的笔记本 ddr2 内存条还有用武之地吗?
    chaleaoch
        57
    chaleaoch  
       2018-03-22 12:44:49 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    akira
        58
    akira  
       2018-03-22 12:46:35 +08:00
    长期开着 50-100 个 chrome 页面的表示 16G 内存根本不够用啊

    [DEACTIVATED FOR POINTLESS REPLY]
    jowuIM
        59
    jowuIM  
       2018-03-22 12:47:32 +08:00
    [DEACTIVATED FOR POINTLESS REPLY]
    r7st
        60
    r7st  
       2018-03-22 12:48:53 +08:00
    @yidinghe 内存谁会嫌多
    wayne1027
        61
    wayne1027  
       2018-03-22 12:59:04 +08:00   ❤️ 1
    四年前机智地买了 4 条 8G DDR3 填满了 pc,长期闲置 16G 以上
    honeycomb
        62
    honeycomb  
       2018-03-22 13:02:46 +08:00 via Android
    @yidinghe 比较现实的方案是数据库自带支持的内存表或者 redis,既然要放内存一定会考虑断电导致的可靠性问题
    winglight2016
        63
    winglight2016  
       2018-03-22 13:11:32 +08:00
    @akira onetab 了解一下,我以前也是一个 chrome 就把机器内存占一半,现在可好了
    aksoft
        64
    aksoft  
       2018-03-22 13:16:39 +08:00
    十几年了 这东西一直可用。。。
    mztql
        65
    mztql  
       2018-03-22 13:16:45 +08:00 via iPhone   ❤️ 2
    刷屏的可以 ban 了吗
    Livid
        66
    Livid  
    MOD
       2018-03-22 13:20:03 +08:00   ❤️ 4
    上面的一些无意义刷屏的账号,会被 Deactivate。
    Shura
        67
    Shura  
       2018-03-22 13:25:04 +08:00
    看楼上那些刷屏的,貌似来到了贴吧。

    楼上说断电的,ups 了解一下。

    以前没买 ssd 的时候,我就是买内存然后用 ramdisk 虚拟个磁盘放浏览器缓存,效果很好。
    eurokingbai2
        68
    eurokingbai2  
       2018-03-22 13:34:58 +08:00
    NVRAM 了解一下
    leeeeee
        69
    leeeeee  
       2018-03-22 13:36:48 +08:00
    @xenme 多少钱 :p
    whwq2012
        70
    whwq2012  
       2018-03-22 13:37:29 +08:00 via Android
    把 chrome 和它的数据放进内存过,然而启动和使用并没有感觉比在固态快多少。。。
    LokiSharp
        71
    LokiSharp  
       2018-03-22 13:41:01 +08:00
    16G 内存也算大?怕是没用过 PS
    Livid
        72
    Livid  
    MOD
       2018-03-22 13:42:56 +08:00   ❤️ 1
    以下账号已经被 Deactivate,可以通过 https://www.v2ex.com/forgot 找回密码。如果是用假邮箱注册的账号将无法找回密码。Deactivate 之后会有 -2 降权,如果之前已经被 Deactivate 过,那么会被彻底 ban。

    1. @jowuIM
    2. @54yinhang
    3. @dolphintwo
    4. @akira
    5. @chaleaoch
    6. @panda001
    7. @charexcalibur
    8. @herozem
    9. @lany
    10. @wonders2002ok
    11. @hooych
    12. @ximenyuxuan
    13. @shaco
    14. @cptbtptpbcptdtpt
    15. @keximing250
    16. @Antidictator
    17. @wanhuiming
    18. @laoyur
    nicoljiang
        73
    nicoljiang  
       2018-03-22 13:55:20 +08:00
    @gam2046 64G 有啥好秀的。。。
    kk941kk
        74
    kk941kk  
       2018-03-22 14:13:40 +08:00
    [BANNED]
    panda001
        75
    panda001  
       2018-03-22 14:15:10 +08:00   ❤️ 1
    @Livid what the fuck???????? 开个玩笑你这样玩???
    msg7086
        76
    msg7086  
       2018-03-22 14:18:29 +08:00
    简单来说,把内存拿来跑 RAMDISK,是真的在浪费内存,降低系统整体性能。
    另外,只有 16G 还是别拿出来了,跑跑应用再加系统缓存,早就用完了。
    256G 的服务器我跑点无损压缩渲染,一样能用光,根本轮不到 RAMDISK 来占空间。

    @omg21 以你的见识,应该知道死机或者 Windows 的傻叉自动更新一样会丢失内存数据吧。

    @Shura 我倒是还没见过永远不会坏的 UPS ……

    说个鬼故事,买的 UPS 第三年的时候就自己跳电了。
    对,市电一切正常的时候 UPS 自己保护跳电了。
    Livid
        77
    Livid  
    MOD
       2018-03-22 14:20:08 +08:00   ❤️ 4
    @panda001 V2EX 不欢迎你。你的账号及注册所用的手机号已经被彻底 ban。
    tempdban
        78
    tempdban  
       2018-03-22 14:22:26 +08:00
    @xenme 大佬这垃圾在哪买,我也想要一个。
    Azmeont
        79
    Azmeont  
       2018-03-22 14:25:51 +08:00
    内存主要还是贵,没人嫌多的。

    P.S. 完美诠释了:程序员被发现 bug 之后的暴风骤雨
    RHFS
        80
    RHFS  
       2018-03-22 14:29:15 +08:00 via iPhone
    我还以为你是 上次那个 1t 内存的,原来才 16g
    yidinghe
        81
    yidinghe  
    OP
       2018-03-22 14:32:08 +08:00   ❤️ 2
    @msg7086

    首先对我来讲,Java 开发本身用 5G 差不多了,分 8G 出来后,总共内存也就用不到 14 G。每个人情况不同,对我来说 16G 日常使用是很富余的,你也别纠结 16G,我就是说内存有多这个意思。

    其次这又不是什么系统优化大师,这是针对具体情形的,不是 IO 密集型的操作用不着内存盘。对,没错,就算 IO 密集型任务也还有其他办法,花钱嘛,我不花钱能解决的问题干嘛要去花钱。

    断电么,反正我本地是开发数据库没关系,重启后再重新读档就是。
    carakan
        82
    carakan  
       2018-03-22 14:43:32 +08:00
    24G。。没开虚拟机。。。目前够用。。开了虚拟机。。估计够呛
    To5tE
        83
    To5tE  
       2018-03-22 14:47:27 +08:00
    @gam2046 也跟风秀一下

    ![QQ 拼音截图 20180322144343.png]( https://i.loli.net/2018/03/22/5ab35156ad6e2.png)
    ![QQ 拼音截图 20180322144403.png]( https://i.loli.net/2018/03/22/5ab35156b87fe.png)
    laoyur
        84
    laoyur  
       2018-03-22 14:57:16 +08:00
    @jowuIM
    @54yinhang
    @dolphintwo
    @akira
    @chaleaoch
    @charexcalibur
    @herozem
    @lany
    @wonders2002ok
    @hooych
    @ximenyuxuan
    @shaco
    @cptbtptpbcptdtpt
    @keximing250
    @Antidictator
    @wanhuiming

    你们还好吗,哦,不用 at panda001 了,你已经被彻底 ban 掉
    对不起,是我先起的头在 @wlwood 之后打那一坨标点的,或多或少对你们发刷屏帖造成了那么点引诱的效果,不过我扪心自问不是为了刷屏,我是真的在跟 keximing250 回帖猜测这个折行 bug 可能出现的 case

    终于被 Deactivated,在 v2 的人生也算圆满了,看开点咯,账号没完全 ban,1200 多天的纯手工不间断打卡还是可以继续下去的,强迫症不能忍啊

    最后,差点忘记我现在 at 别人,别人已经看不到提醒了,哈哈,发这个回复也算自娱自乐下吧,跟楼主 @yidinghe 说声抱歉,借你的楼聊了这么多 off-topic 的话题,我等会去赞你其他回复,还 20 个铜币给你 :)
    ervqq
        85
    ervqq  
       2018-03-22 15:02:24 +08:00
    sap hana 开机自检内存爽到爆
    oh
        86
    oh  
       2018-03-22 15:04:38 +08:00
    @laoyur 有考虑过手机用户滚了多少屏才出现几行正常内容么?还扪心自问,要测试到 sandbox 节点发个帖子测试去啊
    yejinmo
        87
    yejinmo  
       2018-03-22 15:08:10 +08:00   ❤️ 1
    @laoyur #84

    所以我仅仅是给 #75 点了个赞 且没有对任何人造成不良印象 ( 如果非要说不良影响那就是站长大人不想看到这层被点赞吧 )
    帐号密码被改 IP 被 Ban
    也不知道你还能不能看到我的 AT 提醒

    我点赞是因为我不喜欢任何形式的独裁
    但不代表我认同 #75 以及楼上任何刷屏的做法

    如果这个帐号被彻底 Ban 掉
    无所谓了重新注册一个就是
    Shura
        88
    Shura  
       2018-03-22 15:09:51 +08:00
    @msg7086 如果你要讨论硬件故障等小概率事件,那无解了,非易失性存储器也可能会发生故障。
    laoyur
        89
    laoyur  
       2018-03-22 15:13:53 +08:00
    @oh #86 在 wlwood 发原帖后,我是第一个“接龙”的,我的确是没有考虑到「用户滚了多少屏才出现几行正常内容」,考虑到的话我是万万不会再发的,我不是出于恶意回的帖,用扪心自问有什么问题?

    我用的是电脑浏览,标点没折行只是向右方显示为很长的一行,你说的那个「用户滚了多少屏」,指的是手机上没有出现排版 bug ?
    xenme
        90
    xenme  
       2018-03-22 15:27:35 +08:00
    @tempdban
    @leeeeee

    CPU 贵,1000 块一颗,内存都是以前老的 X58 淘汰下来的,8G 120 一根吧,最近又买了 4 根 170 一根。
    主板机箱凑凑没多少钱。

    算下来三大件算下来 5K~6K 左右吧( CPU/MEM/MotherBoard )
    Livid
        91
    Livid  
    MOD
       2018-03-22 15:59:36 +08:00
    @yejinmo 在我看来,那就只是一种表态。而我只能理解为是对 panda001 的刷屏及对抗行为的支持。
    msg7086
        92
    msg7086  
       2018-03-22 16:00:01 +08:00   ❤️ 1
    @Shura 民用级 UPS 的故障概率要比非易失存储器故障概率高,造成的结果也不同( UPS 故障直接掉电了,SSD 故障还有很大可能恢复数据等等)。不过你说的也没错,都是小概率事件。

    @yidinghe 用了 14G 就等于系统只有 2G 的内存用来给硬盘加速了。
    我个人的习惯是给系统留 6-8G 的内存负责加速,这样读写普通硬盘的时候不至于再去从硬盘上取数据。
    如果是临时的数据库操作,直接用内存当然可以,不过数据库关掉硬盘刷写的话应该也是很快的。

    @yejinmo 个人网站是个人管辖个人担责,当然是独裁制的。
    然而就算是民主制,这一楼里被干扰的人,一人一票照样能 ban 人。
    当然这不意味着我同意点个赞也要被 ban 的做法,我个人倒是觉得是不是误伤了。

    @tempdban @leeeeee
    超微蓝猫 6027 的配置找找二手,能配出很棒的机器来。
    现在 2660v2 处于很好的价格区间(前段时间更便宜?),然后 DDR3 REG ECC 条子也不是很贵。
    msg7086
        93
    msg7086  
       2018-03-22 16:02:01 +08:00
    说来前几天刚刚因为发个普通的回复触发了关键词被 Ban 掉了 IP,签到只能上班到公司才能签了。
    虽然能理解过滤不良内容的做法,但是还是很难受就是了。
    7654
        94
    7654  
       2018-03-22 16:08:30 +08:00
    穷玩车,富玩表,屌丝一直拼电脑,当初我把 48 个框框+96G 内存发到朋友圈被鄙视了,呵呵
    从此以后再也不炫富了
    zhttty
        95
    zhttty  
       2018-03-22 16:15:54 +08:00
    事实上现在很多数据库集群用的都是通过内存异步写入。
    ashong
        96
    ashong  
       2018-03-22 16:17:19 +08:00
    现在 iMac 40G 内存,有时候也出现卡卡的现象
    Telegram
        97
    Telegram  
       2018-03-22 16:18:02 +08:00 via iPhone
    @opengps #23 我用 pe 维护系统时,就是把整个系统放在内存的啊
    t2doo
        98
    t2doo  
       2018-03-22 16:28:43 +08:00
    你们这些用 2 位数甚至 3 位数内存的人,怎么会懂得我这种 2G+4G (还是抢 Java 佬的),G630 上古 CPU,19 ‘显示器,自带键盘肥佬的苦哟
    xeaglex
        99
    xeaglex  
       2018-03-22 16:30:53 +08:00 via Android
    Archlinux 默认使用内存盘
    ColinZeb
        100
    ColinZeb  
       2018-03-22 17:22:22 +08:00
    @Livid 建议增加关键词的时候谨慎一点,或者提供申诉的渠道。
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2677 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:02 · PVG 22:02 · LAX 07:02 · JFK 10:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.