最近我从Ubuntu的32位版本切换到64位版本。 而现在我遇到了一些问题。
所有的应用程序需要更多的内存 而一些应用程序需要更多。 例如在新服务器上的sshd:
root 6608 0.0 0.0 67972 2912 ? Ss 14:43 0:00 sshd: deploy [priv] deploy 6616 0.0 0.0 67972 1724 ? S 14:43 0:00 sshd: deploy@pts/4 root 20892 0.0 0.0 50916 1160 ? Ss 15:53 0:00 /usr/sbin/sshd root 21170 0.0 0.0 67972 2912 ? Ss 15:56 0:00 sshd: deploy [priv] deploy 21173 0.0 0.0 67972 1728 ? S 15:56 0:00 sshd: deploy@pts/0 root 23802 0.0 0.0 67972 2912 ? Ss 16:08 0:00 sshd: deploy [priv] deploy 23804 0.0 0.0 67972 1724 ? S 16:08 0:00 sshd: deploy@pts/1 root 24570 0.0 0.0 67972 2908 ? Ss 12:45 0:00 sshd: deploy [priv] deploy 24573 0.0 0.0 68112 1804 ? S 12:45 0:00 sshd: deploy@pts/3 deploy 25014 0.0 0.0 5168 852 pts/0 S+ 16:13 0:00 grep ssh
旧服务器上的相同:
root 4867 0.0 0.0 5312 1028 ? Ss Mar23 0:00 /usr/sbin/sshd root 23753 0.0 0.0 8052 2556 ? Ss 16:15 0:00 sshd: deploy [priv] deploy 23755 0.0 0.0 8052 1524 ? S 16:15 0:00 sshd: deploy@pts/0 deploy 23770 0.0 0.0 3004 748 pts/0 D+ 16:15 0:00 grep ssh
与postfix,nginx和其他一些应用程序相同的问题。
这比这更复杂一点。
是的,64位可执行文件将消耗更多内存,因为在64位系统上,某些程序的基本构build块较大。
但是,看看你提供的输出并不是那么糟糕。 除非实际存在物理内存争用,否则RSS(Resident Set Size,物理RAM中进程的一部分)列更为合适,并且查看您的输出,这比RAM消耗的翻倍要less得多。
关于内存使用的更全面的讨论可以在这里find: 了解linux上的内存使用情况
欢迎来到64位。 由于默认数据types的大小是默认指令大小的两倍,因此内存中的图像将更大。
编辑 :一些(而不是SSH)程序不适应64位系统。 在一个案例中,一个众所周知的UPS供应商的电源监控守护进程在64位Java运行时运行时,从一个已经很大的400M到一个巨大的1.5G。 他们对错误报告的回应是告诉我在32位Java上运行它。 🙂