为什么我看到 7 个用户、虚拟内存使用异常、大量流连接并且所有进程都处于休眠状态?

为什么我看到 7 个用户、虚拟内存使用异常、大量流连接并且所有进程都处于休眠状态?

使用东芝 Satellite l645d s4025 amd 双核 p320 2.1ghz 3gb ddr3 ram 250 gb hdd

以下是不完整的顶部报告(不知道如何选择全部复制)使用 Ubuntu 12.04 amd64 安装/live dvd

最近卸载了 Ubuntu 12.04,因为进程(大多数情况下,每个进程有 4-5 个正在运行)都使用接近上面列出的相同虚拟内存。(可能是 fork 炸弹……我太无知了,竟然相信了后来我不应该读的指令(wget http),因为我不记得整个字符串。

由于这些进程没有占用太多物理内存,也没有使用任何交换空间,因此我没有遇到性能问题。到目前为止,我重新格式化了硬盘,并且没有为我的 Live 会话分配交换空间。

这是正常的虚拟内存使用情况吗?我需要设置磁盘缓存大小吗?(在磁盘缓存上找不到太多信息)我读过很多帖子,但几乎所有帖子都是物理内存、交换空间(文件)或交换分区的问题。

top - 18:46:34 up  1:22,  7 users,  load average: 0.69, 0.83, 0.85
Tasks: 161 total,   1 running, 160 sleeping,   0 stopped,   0 zombie
Cpu(s): 15.8%us,  6.6%sy,  0.0%ni, 77.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2816560k total,  2263988k used,   552572k free,   269668k buffers
Swap:        0k total,        0k used,        0k free,  1297120k cached


  PID USER      PR  NI  VIRT %MEM  RES  SHR S %CPU    TIME+  COMMAND            
 3544 ubuntu    20   0 1272m  2.9  79m  36m S    1   0:32.63 compiz             
 3571 ubuntu    20   0 1150m  1.0  27m  17m S    0   0:01.31 nautilus           
 2265 root      20   0 1018m  0.1 3940 2744 S    0   0:00.13 console-kit-dae    
 3910 ubuntu    20   0 1015m  0.4  11m 7724 S    0   0:01.12 unity-applicati    
 3916 ubuntu    20   0 1002m  0.2 6600 5200 S    0   0:00.14 unity-files-dae    
 3572 ubuntu    20   0  866m  1.0  27m  13m S    0   0:02.56 nm-applet          
 3374 ubuntu    20   0  834m  1.0  28m  12m S    0   0:02.54 gnome-settings-    
 3986 ubuntu    20   0  808m  0.6  17m 8588 S    0   0:00.30 unity-scope-vid    
 3914 ubuntu    20   0  800m  0.3 8532 6400 S    0   0:00.10 unity-music-dae    
 4128 ubuntu    20   0  742m  3.5  97m  34m S    0   1:57.77 firefox            
 3778 ubuntu    20   0  702m  0.2 4820 3404 S    0   0:02.09 hud-service        
 3725 ubuntu    20   0  698m  0.3 7324 5708 S    0   0:00.07 indicator-datet    
 3952 ubuntu    20   0  654m  0.2 4320 3500 S    0   0:00.04 unity-musicstor    
 3726 ubuntu    20   0  649m  0.2 6488 4880 S    0   0:00.09 indicator-messa    
 3728 ubuntu    20   0  631m  0.4 9.9m 7484 S    0   0:00.07 indicator-print    
 3716 ubuntu    20   0  601m  0.7  20m  11m S    0   0:03.88 unity-panel-ser    
 3731 ubuntu    20   0  599m  0.2 6900 5380 S    0   0:00.08 indicator-sound    
 3729 ubuntu    20   0  598m  0.2 6000 4676 S    0   0:00.07 indicator-sessi    
 4356 ubuntu    20   0  593m  0.6  17m  11m S    0   0:02.96 gnome-terminal 

7 个用户?这对于实时 DVD 来说正确吗?我相信在格式化之前从硬盘运行时,我只有两个用户:root 和我的用户名。(我可能错了)

ubuntu@ubuntu:~$ who
ubuntu   tty5         2012-06-04 17:25
ubuntu   tty6         2012-06-04 17:25
ubuntu   tty2         2012-06-04 17:25
ubuntu   tty4         2012-06-04 17:25
ubuntu   tty3         2012-06-04 17:25
ubuntu   tty1         2012-06-04 17:25
ubuntu   pts/0        2012-06-04 17:32 (:0.0)

ubuntu@ubuntu:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
631                        DENY        Anywhere
22                         DENY        Anywhere (v6)
631                        DENY        Anywhere (v6)

ubuntu@ubuntu:~$ sudo ufw app list
Available applications:
  CUPS

ubuntu@ubuntu:~$ sudo ufw app info CUPS
Profile: CUPS
Title: Common UNIX Printing System server
Description: CUPS is a printing system with support for IPP, samba, lpd,
and other protocols.

Port:
  631

netstat -ap(为了发帖不得不删除太长的内容)显示大约 100 个连接,大部分是流...还有大约 7 个正在监听,这对我来说似乎很糟糕,任何帮助都将不胜感激。

仅 1 个正在运行的进程(top)?所有进程都处于休眠状态是正常的吗?

我已尝试包含尽可能多的信息(仅限于我可以发布的内容),如果还有其他我需要检查的内容,请告诉我...我想重新安装 Ubuntu 12.04,任何提示都会有帮助。

答案1

您看到的是一个完全健康的桌面。

虚拟内存

虚拟内存与实际内存(又称 RAM)无关。这是对黑客/Linux 开发人员有用的信息。基本上在大多数操作系统上,进程不会将其内存直接映射到物理内存,而是映射到虚拟内存。如果您有足够的空间,它全部都在您的 RAM 中,但如果您需要更多空间,操作系统可以将部分空间放在交换文件中,这对应用程序来说是透明的(除了性能影响)。

虚拟内存大小的计算方式有点复杂,我甚至不知道具体是怎么回事。但它漏洞百出,所以您应该将这些数字视为“映射”的最大数量,但这并不是进程实际使用的物理内存。

用户数

同样,无需担心。您有 6 个 ubuntu 用户连接到 tty。这是本地连接。您可以使用以下组合键切换到它们:Ctrl+Alt+Fn 和n一个从 1 到 7 的数字,7 是您的图形会话。

网络状态

流套接字是本地 Unix 套接字。许多应用程序都在使用这些套接字,您不必担心它们。尝试该命令,sudo netstat -tulpen它会给您带来更有趣的结果。

不用担心“监听”状态,这意味着您有一个服务正在运行。上面的命令将告诉您哪个服务在哪个端口上运行。由于您使用了防火墙,只要防火墙关闭了所有端口,就无法访​​问监听服务。

netstat 输出示例:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      0          13331       1597/dnsmasq    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          9494        535/sshd        
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      0          9880        899/cupsd       
tcp6       0      0 :::22                   :::*                    LISTEN      0          9492        535/sshd        
tcp6       0      0 ::1:631                 :::*                    LISTEN      0          9879        899/cupsd       
udp        0      0 127.0.0.1:53            0.0.0.0:*                           0          13330       1597/dnsmasq    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          10498       1136/dhclient   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          10492       1115/dhclient   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           106        9645        915/avahi-daemon: r
udp        0      0 0.0.0.0:42730           0.0.0.0:*                           106        9647        915/avahi-daemon: r
udp6       0      0 :::43066                :::*                                106        9648        915/avahi-daemon: r
udp6       0      0 :::5353                 :::*                                106        9646        915/avahi-daemon: r

进程状态

进程大部分时间处于空闲状态,等待来自用户、资源(例如文件)或其他进程的交互。如果进程没有休眠,它将运行并消耗 CPU,如果所有进程都这样,您将无法使用系统 :)

答案2

这种行为是正常的。7 个“用户”实际上并不是 7 个用户。它只是 7 个控制台会话,它们什么都不做,只是坐在控制台上,准备使用 [Ctrl]+[Alt]+N 进行切换时执行命令。此外,“休眠”也是正常的,因为大多数进程都处于非活动状态,但正在等待用户交互或从另一个进程委派的工作。几乎所有 Linux 系统中的大多数进程都处于休眠状态。此外,还有一些隐藏的用户和组,除了委派权限外,它们几乎不做任何事情。此外,我还看到许多网络连接。不用担心。监听意味着它们要么准备好接收数据,要么准备好发送数据,只有少数连接真正在起作用。(例如,Dropbox 客户端在整个会话期间保持其连接处于监听状态,但它几乎不占用任何带宽。)

相关内容