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

PHP+MYSQL+Nginx 在 WIN7 和 LINUX 环境下执行效率差多少?

  •  
  •   Mac · 2014-09-16 09:11:05 +08:00 · 8684 次点击
    这是一个创建于 3509 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司的生产环境用的是WIN7,总体用下来速度越来越慢,数据不是很多,但字段很多。20个字段,6000多条记录,现在分页首页加载成网页表格,需要2.2秒。

    请问有没有必要换成linux环境?服务器CPU是E6700,内存2G。是升硬件还是换系统?
    第 1 条附言  ·  2014-09-16 17:43:51 +08:00
    @cdffh
    @lyragosa

    MYSQL 语句上,外网IP访问
    /* Affected rows: 0 已找到记录: 6,399 警告: 0 持续时间 1 query: 0.032 sec. (+ 0.327 sec. network) */

    局域网IP访问
    /* Affected rows: 0 已找到记录: 6,399 警告: 0 持续时间 1 query: 0.031 sec. (+ 0.156 sec. network) */

    应该不是MYSQL效率的问题,PHP输出方面,由于用到了一个jquery ui库,是用tr td之类的表格标签来输出的,会不会是因为这个原因,我现在分页每页30条记录,20个字段,就是要生成约600个td 标签,还不算个元素的id name和style 。PHP输出的瓶颈在哪?I/O还是内存还是CPU?
    第 2 条附言  ·  2014-09-16 21:28:24 +08:00
    把PHP版本升到了5.4,提速40%,方向看来是对的。
    37 条回复    2014-09-17 01:53:12 +08:00
    sambohuang
        1
    sambohuang  
       2014-09-16 09:21:21 +08:00
    如果是公司系统,访问量不大,我觉得这点差异应该是你的数据库或者查询语句需要优化,内存可能小了点
    cdffh
        2
    cdffh  
       2014-09-16 09:35:11 +08:00
    一般的系统,操作系统这个层面不会成为瓶颈。但是你这个内存太小了。你2g就光跑一个win7都有点难受。如果是小内存还是比较建议linux。 但是如果没人愿意搞定linux,直接换8g内存解决。又不会太贵。
    avichen
        3
    avichen  
       2014-09-16 09:36:12 +08:00
    windows server 也比win7 要跑的快呀。
    Mac
        4
    Mac  
    OP
       2014-09-16 09:41:17 +08:00
    @cdffh
    @sambohuang
    我在任务管理器里看到内存只用了一半
    hjc4869
        5
    hjc4869  
       2014-09-16 09:42:09 +08:00 via iPhone
    用windows server 2012 r2 64位核心版,就是不带GUI的版本,跟linux一样的速度。
    Sunyanzi
        6
    Sunyanzi  
       2014-09-16 09:51:06 +08:00
    用 Windows 7 当生产环境到底是个什么诉求 ..?
    Mac
        7
    Mac  
    OP
       2014-09-16 09:53:05 +08:00
    @Sunyanzi 小公司,至少在IT不在的时候,还有人能操作一下服务器。换成其他版本,尤其是LINUX,那IT不在基本就歇菜了。
    skydiver
        8
    skydiver  
       2014-09-16 09:58:14 +08:00 via Android
    生产环境……Win7……也是醉了
    cdffh
        9
    cdffh  
       2014-09-16 10:05:17 +08:00
    @Sunyanzi 好歹用个xp啊!
    cdffh
        10
    cdffh  
       2014-09-16 10:08:39 +08:00   ❤️ 1
    你试一下win server。表示没有win7做生产环境得经验,不过我在本地开发用过win7,也是php+nginx+mysql,字段也是20+,貌似也不慢啊。然后你开一下日志吧 看一下时间花在哪些地方。是数据库查询 还是网络或者是其他的io上面。
    lyragosa
        11
    lyragosa  
       2014-09-16 10:09:12 +08:00   ❤️ 1
    首先只要跑php就请走linux环境。实在要用win,请用windows server(至于是正版盗版不在本题讨论范围)

    另外就是在操作系统成为瓶颈之前,IO肯定会早早的成为瓶颈,之所以IO成为瓶颈就是因为SQL语句太复杂以及访问人数太多。
    我本地有一个网络环境 大约10万条记录,100多个字段都没有出现你这么慢(win8.1+apache+mysql),nginx只会更快。

    实在打死也不想换linux的话:
    - 尽可能优化程序,实在懒得改,就加memcache/redis
    - 换windows server
    - 换个SSD
    mornlight
        12
    mornlight  
       2014-09-16 10:22:21 +08:00   ❤️ 1
    才几千条件记录....
    楼主你先把瓶颈确认一下,这个不像是操作系统载体的问题
    harrychuh
        13
    harrychuh  
       2014-09-16 10:28:57 +08:00 via Android   ❤️ 1
    6000行记录,20字段,2.2秒!
    这绝对不是硬件瓶颈,不是语言弱势,PHP win版微软介入花大力气优化过,大部分情况下不输在Linux下。
    相信我,MySQL的iops,PHP的菊花绝对不是6000行,20字段可以爆的,所以,问题极有可能出在你程序的逻辑,SQL语句上,优化这两个才是正道。
    harrychuh
        14
    harrychuh  
       2014-09-16 10:33:57 +08:00 via Android   ❤️ 1
    另外,在win下面,你应该用Apache+PHP32位+MySQL作为首选,次之用IIS+PHP+MySQL,最后才是nginx.
    wy315700
        15
    wy315700  
       2014-09-16 10:34:21 +08:00   ❤️ 1
    首先看看有没有人拿那台服务器干别的事情吧,比如 下片
    wwek
        16
    wwek  
       2014-09-16 10:38:49 +08:00   ❤️ 1
    楼上有人瞎扯.
    win下最好的webserver是iis啊,亲!
    2008 2012 ii+fast cgi php 性能不低.
    楼主你这个情况,和系统有毛的关系, win下也不至于跑到2秒多
    看你sql语句 php程序逻辑 mysql索引的问题吧. 瓶颈和操作系统无关`
    mind3x
        17
    mind3x  
       2014-09-16 10:39:59 +08:00   ❤️ 1
    @harrychuh 说的是正解……
    loading
        18
    loading  
       2014-09-16 10:41:30 +08:00   ❤️ 2
    @Sunyanzi
    @cdffh

    你们都没玩过win7的扫雷么?比xp那个炫多了,运维玩起来都醉了!!!
    whywhywhy
        19
    whywhywhy  
       2014-09-16 10:45:29 +08:00
    @loading 是很好 但是win8没有了这是闹哪样!
    hello570111
        20
    hello570111  
       2014-09-16 10:54:40 +08:00
    如果用户数不多的话,用个人电脑装win7也不应该是这个速度呀,何况只有6000多条数据,甚至都可以不用建索引,先从sql语句找找原因吧。2G虽然不多,但是也应该够用了的。
    akira
        21
    akira  
       2014-09-16 11:01:17 +08:00
    6000条数据,除非你里面一堆超长字段,不然根本不可能这样的。

    最大的可能是sql各种乱用了,分析下瓶颈sql然后做优化吧
    xiaou
        22
    xiaou  
       2014-09-16 11:02:34 +08:00   ❤️ 2
    跟楼主说的差不多,正在犹豫使用excel还是php+mysql。。。
    mornlight
        23
    mornlight  
       2014-09-16 11:04:19 +08:00
    @xiaou 噗,真是够了。
    lentrody
        24
    lentrody  
       2014-09-16 11:10:17 +08:00   ❤️ 1
    loading
        25
    loading  
       2014-09-16 11:12:46 +08:00
    @xiaou 我用asp+access快得很!
    lazyphp
        26
    lazyphp  
       2014-09-16 11:54:06 +08:00
    应该是sql语句问题。估计该用的索引没用上。
    alex321
        27
    alex321  
       2014-09-16 12:09:49 +08:00
    2003 现在 php+mysql 小项目 6w 数据分页 0.00xs ///////
    taobeier
        28
    taobeier  
       2014-09-16 12:46:47 +08:00
    看这情况也是醉了~ . 2G内存跑server都比win 7 快啊!
    kisshere
        29
    kisshere  
       2014-09-16 14:21:25 +08:00
    采用cursor分页的方式吧
    sarices
        30
    sarices  
       2014-09-16 14:31:20 +08:00
    每一步统计一下时间吧,可以看到耗时在那里,这是最简单的调试方式了,只要在页面输出就可以了
    liulinsoar
        31
    liulinsoar  
       2014-09-16 15:52:30 +08:00
    用win7和linux比,起码用个server版好不
    lygmqkl
        32
    lygmqkl  
       2014-09-16 16:23:38 +08:00
    查程序逻辑 mysql语句吧
    typcn
        33
    typcn  
       2014-09-16 16:35:16 +08:00
    我32位和64位的PHP和mysql 性能差太多 你看一下是不是用的32的
    vimutt
        34
    vimutt  
       2014-09-16 16:42:27 +08:00
    说实在的看到这贴 我不由得羡慕起码农职业来 真的是术业有专攻 分析起来头头是道啊 看的我也醉了^0^
    cdffh
        35
    cdffh  
       2014-09-16 18:18:35 +08:00
    优化这种东西是很磨人的:
    1,mysql开慢查询日志。1秒以上都记录下来。
    2,chrome 开发者工具看一下时间主要消耗在那些地方。有缓存和没有缓存得时候都看一下,有时候慢不一定是后端慢,可能是前端需要加载的东西太多。
    3,php里面加入时间记录的代码,记录php的执行时间。

    先把问题切分:看一下到底是那一块慢 是前端得东西太多,还是后端请求慢。
    如果是后端 在定位具体问题 是mysql慢 还是说php慢 因为你是本机mysql 所以php和mysql的连接应该不会慢。
    你既然决定要优化了,那就先定位问题,一点一点来吧。 你现在给的信息太少了。
    vibbow
        36
    vibbow  
       2014-09-17 00:08:35 +08:00
    根据我个人的测试,Windows下能快一点。。。。。。
    GPU
        37
    GPU  
       2014-09-17 01:53:12 +08:00 via iPhone
    关闭虚拟内存你就会知道你是多么缺内存了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5635 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:40 · PVG 09:40 · LAX 18:40 · JFK 21:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.