我有一个程序(在Ubuntu上的Node.js Web应用程序),在我的家用电脑上加载大约7秒。
最近我把它复制到VPS,在那里,它在15-30秒内加载。
我试图找出为什么这么慢,以及如何使它更快。
我开始检查内存消耗,但发现(使用“顶部”),在VPS上我只使用了2 GB中的大约400 MB。 所以,增加内存可能不是解决scheme。
另一方面,在启动过程中,我发现CPU使用率是100%,所以我想可能是处理器的问题。 所以我比较了处理器types,但差别似乎并不大。
以下是我在家用电脑上从“cat / proc / cpuinfo”得到的信息:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Pentium(R) CPU G620 @ 2.60GHz stepping : 7 microcode : 0x14 cpu MHz : 1600.000 cache size : 3072 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid bogomips : 5188.24 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Pentium(R) CPU G620 @ 2.60GHz stepping : 7 microcode : 0x14 cpu MHz : 1600.000 cache size : 3072 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 2 initial apicid : 2 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid bogomips : 5187.97 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
这里是VPS上“cat / proc / cpuinfo”的结果:
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz stepping : 2 cpu MHz : 2394.153 cache size : 12288 KB physical id : 1 siblings : 8 core id : 0 cpu cores : 4 apicid : 32 initial apicid : 32 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt aes lahf_lm ida arat dts tpr_shadow vnmi flexpriority ept vpid bogomips : 4788.30 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:
(这只是第一个处理器 – 我的VPS上总共有11个相同的处理器,但这并不相关,因为任何单个线程都需要执行相同的初始化)。
我的家用电脑是2600 GHz,VPS电脑是2400 GHz。 这是否有理由相差100-300%的运行时间?
更重要的是:我能做些什么来使我的程序在VPS上运行得更快?
VPS的定义可以回答你的问题:
这是一个虚拟的私人服务器。 您与其他人共享硬件。
(你根本不能看到它们,取决于设置)。
当然,为了增加利润率,在一定程度上加载系统符合VPS提供商的利益。