我有一台 apache/ubuntu 服务器,用于为 php 网站提供服务。它的内存为 2gb。Google Analytics 显示有 4 个用户在线,但我的网络 I/O 为 8/mb 秒,CPU 接近 100%。
我应该从哪里开始寻找问题?
答案1
您的问题有点模糊,但请让我看看是否可以帮助您进行一些基本的诊断。
安装一些东西:
- 打开终端
- 安装 htop (将显示哪些进程正在使用你的 CPU):
sudo apt-get install htop
- 安装 nethogs(将显示哪些进程正在占用您的带宽):
sudo apt-get install nethogs
运行 htop
- 按 F6 进行排序,您将看到终端窗口左侧出现一个小菜单。
- 使用向上和向下箭头来选择
CPU%
。 - 然后您应该会看到耗费 CPU 的进程列表。
以 root 身份运行 nethogs
- 根据服务器连接到互联网的方式,您在下面输入的内容可能会略有不同。我假设您使用的是常规以太网连接。
- 类型
sudo nethogs eth0
- 您应该会看到使用带宽的进程的显示,按其使用情况排序。
如果你没有看到该列表eth0 出现错误,我们只需要确定你通过哪种设备连接
- 找出你的 IP 地址
ifconfig
在终端中输入,然后查找你的 IP 地址,看看哪个设备与之一致
例如我的可能看起来如下所示。如果我正在寻找我的本地 IP 地址 192.168.1.2,我会看到它位于 wlan0 下。然后我会运行sudo nethogs wlan0
。
me@mycomputer:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 50:50:50:50:50:50
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:41 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:174495 errors:0 dropped:0 overruns:0 frame:0
TX packets:174495 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:34273278 (34.2 MB) TX bytes:34273278 (34.2 MB)
wlan0 Link encap:Ethernet HWaddr 78:44:76:93:e0:19
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::fe80:fe80:fe80:fe80/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8745176 errors:0 dropped:0 overruns:0 frame:0
TX packets:4565824 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10226861873 (10.2 GB) TX bytes:519927133 (519.9 MB)
如果这个技巧对你不起作用,你可以尝试以下在黑暗中拍摄的照片
sudo nethogs wlan0
(如果是无线)sudo nethogs eth0
sudo nethogs venet0:0
无论如何,希望这能帮助您找出问题所在。
将来提问的时候,你可以给我们提供一些线索,比如你尝试过什么、你认为你遇到的困难是什么,或者你对当前主题的了解程度。