[有截图] 服务器内存为什么不高 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
someFork
V2EX    程序员

[有截图] 服务器内存为什么不高

  •  
  •   someFork 2013-06-26 11:50:18 +08:00 4602 次点击
    这是一个创建于 4559 天前的主题,其中的信息可能已经有所发展或是发生改变。
    (如何贴图)
    http://i42.tinypic.com/2u4n8zn.png


    我开了100个apache2进程,
    每个进程占8M左右,
    那应该用去800M才对。
    为什么top命令显示才100M多?
    第 1 条附言    2013-06-26 14:24:22 +08:00
    请问我1G的vps,
    MaxClients 应该设置为多少才合理?
    12 条回复    1970-01-01 08:00:00 +08:00
    yanwen
        1
    yanwen  
       2013-06-26 11:57:48 +08:00
    这个是怎么配色的??这么好看??我一般top命令 显示的 只是黑白色的。。没有蓝色。。
    laogui
        2
    laogui  
       2013-06-26 12:09:06 +08:00
    @yanwen 装一个htop就可以了,yum install htop
    est
        3
    est  
       2013-06-26 12:12:08 +08:00
    同属于一个process group进程可以共享内存的呀。copy on write
    goodan
        4
    goodan  
       2013-06-26 12:14:08 +08:00
    帮传图
    someFork
        5
    someFork  
    OP
       2013-06-26 13:01:32 +08:00
    谢谢各位回答,虽然主要是讨论 htop
    msg7086
        6
    msg7086  
       2013-06-26 13:19:22 +08:00
    请先研究下fork函数……
    someFork
        7
    someFork  
    OP
       2013-06-26 14:27:09 +08:00
    @est
    @msg7086
    看来网络上的文章是错的,都是说如果一个apache2占10M左右,那么1G的vps的MaxClients 就应该1G处以10M等于100.

    那么我的MaxClients 应该设置多少才合理?
    AstroProfundis
        8
    AstroProfundis  
       2013-06-26 15:26:17 +08:00
    htop 显示的这个貌似是线程吧
    wppurking
        9
    wppurking  
       2013-06-26 15:28:47 +08:00
    @AstroProfundis 前面是有 pid 的进程.
    ohhe
        10
    ohhe  
       2013-06-26 15:36:34 +08:00
    netstat -anpo | grep "php-cgi" | wc -l
    msg7086
        11
    msg7086  
       2013-06-26 16:11:16 +08:00   2
    @someFork
    @AstroProfundis
    假定楼主用的是prefork方式的apache。fork是linux下的新建进程的函数,fork运行过程中进程会分裂为2个,这2个进程完全共享内存空间,直到任何一方对变量做出修改为止。所以首先进程的程序部分是完全共享的。然后数据区的话,只有进程间变量不同的部分才会实际占用空间。所以具体的maxclient数量你可以先算出每个多一个进程时候的增长量,然后再估算总体的内存空间。另外最好预留一些内存给系统做buffer来提高速度。

    @wppurking htop里线程也有pid。可以在setup里设置关闭或者显示userland threads。线程是绿色显示的,而进程是白色。

    典型的mysql就是多线程模型,而nginx/apache-prefork就是多进程模型。

    linux下的进程非常轻量,不调用exec的话只比多线程多了一点点开销,但是会换取更多的线程安全。
    msg7086
        12
    msg7086  
       2013-06-26 16:23:29 +08:00
    http://img.ly/system/uploads/007/515/834/large_htop-model.png

    上面绿色的是线程 (内存占用一样),下面是进程 (内存占用有少许不同)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2717 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:30 PVG 10:30 LAX 18:30 JFK 21:30
    Do have faith in what you're doing.
    ubao msn 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