2011年5月5日 星期四

系統觀察與設定

系統觀察與設定

 目標:

1. 了解系統資源,何謂系統資源 ?
 a. 硬碟 - 硬碟有多大 ? 如何分割 ? 分割區編號 ? 有無掛載點 ?
 b. 記憶體容量 - 記憶體多大 ? 虛擬記憶體多大 ? 目前記憶體狀態 ? 是否有記憶體不足情況 ?
 c. 音效卡 - ??
 d. CPU - 廠牌、型號、速度、是否有 bug、指令集、共幾個核心
 e. 網路卡 - 廠牌、型號、速度
 f. 顯示卡 - 廠牌、型號
 g. 其它資源 - 例如外接式硬碟、webcam .. 等

2. 了解系統資源後我們才能設定並使用這些系統資源,上述的內容都是所謂的系統資源。

***


觀察目前掛載之硬碟:

df -h

檔案系統              Size  Used Avail Use% 掛載點
/dev/sda1              37G  3.1G   32G   9% /
tmpfs                 2.0G  4.0K  2.0G   1% /lib/init/rw
udev                  2.0G  184K  2.0G   1% /dev
tmpfs                 2.0G     0  2.0G   0% /dev/shm
/dev/sda5              74G   58G   13G  83% /home
/dev/sda2             138G   92G   40G  71% /opt
/dev/sda3              28G  7.1G   20G  27% /usr

上面的資訊告訴我們目前掛載的硬碟為 /dev/sda,其分割區分別掛載至不同目錄,我們亦可從上述資料中發現每個分割區的大小及所剩容量。與之前上課不同的是 /opt 為獨立掛載之分割區,其原因是我們需要 /opt 來安裝 EDA 伺服器。但是我們無法得知是否有 swap,以及 swap 位於那個分割區,因此需要以下指令:

fdisk -lu /dev/sda

Disk /dev/sda: 320.1 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625140335 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00036986

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63    78124094    39062016   83  Linux
/dev/sda2        78124095   371085434   146480670   83  Linux
/dev/sda3       371085435   429674489    29294527+  83  Linux
/dev/sda4       429674551   625137344    97731397    5  Extended
/dev/sda5       429674553   585922679    78124063+  83  Linux
/dev/sda6       585922743   625137344    19607301   82  Linux swap / Solaris

從上面資訊我們可看出 /dev/sda 硬碟為 320 GB大小之硬碟,其分割區 /dev/sda6 為 swap。


觀察記憶體容量

free -m

             total       used       free     shared    buffers     cached
Mem:          4004        959       3045          0        346        240
-/+ buffers/cache:        372       3632
Swap:        19147          0      19147

Mem:指的是實體記憶體,總共有 4004 MB
Swap: 指的是虛擬記憶體,總共有 19147 MB,當實體記憶體夠大,且沒有用完的情況下,虛擬記憶體不會被使用到。

cache - 快取記憶體,小抄


1. 觀看本機之介面,請執行 lspci 指令來觀察系統資源,以某台主機來說,其輸出如下:

00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 10)
00:01.0 PCI bridge: Intel Corporation 82G33/G31/P35/P31 Express PCI Express Root Port (rev 10)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9400 GT] (rev a1)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)

因此藉由 lspci 指令,我們可以讀取系統之硬體組態,除非某硬體太新變成 Unknown,否則一般常見介面卡、顯卡、USB .. 等均可以此指令讀出。

練習:請執行 lspci,並觀測自身主機的介面型號
Shift + PageUP 往上捲
Shift + PageDn 往下捲


2. 觀看本機 CPU 資訊
cat /proc/cpuinfo    -> 觀察 CPU 型號

X86 CPU 為 CISC -> Complex Instruction Set CPU
ARM CPU 為 RISC -> Reduced Instruction Set CPU

3. free -m           -> 觀察主記憶體及虛擬記憶體容量

3.1 如何支援超過 4G 以上之主記憶體  ?

我們使用 aptitude 可以查到有個套件名稱為

linux-image-2.6.32-5-686

其中 2.6.32-5 是核心版本,而 686 指的是 CPU 架構。

另一個套件名稱為:

linux-image-2.6.32-5-686-bigmem

後面加 bigmem 的主要意思是支援 4GB ~ 64 GB 記憶體之主機。

4. uname -a     -> 觀看開機核心版本


5. dmesg -> 觀察系統訊息,由於系統訊息太多行,因此通常的作法是「轉向」至某一個檔案,再使用 vi 觀看,請執行:

dmesg > dmesg.log

hint: 轉向請參考鳥哥第11章 - http://linux.vbird.org/linux_basic/0320bash.php


6. 網路設定檔:/etc/network/interfaces

其內容如下:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface -> lo 是指本機 IP,
auto lo                          -> 每一台 lo 的 IP 都是 127.0.0.1
iface lo inet loopback

# The primary network interface
allow-hotplug eth0              -> eth0 是網路卡的第一個介面
iface eth0 inet static
        address 10.7.1.29
        netmask 255.255.255.0
        network 10.7.1.0
        broadcast 10.7.1.255
        gateway 10.7.1.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8
        dns-search eecs.stut.edu.tw


網路設定:

ifconfig

root@pc-29:/home/herman# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:24:1d:12:5c:c7
                               ^^^^^^^^^^^^^^^^^^^^^^^^ 網卡卡號
          inet addr:10.7.1.29  Bcast:10.7.1.255  Mask:255.255.255.0
                    ^^^^^^^^^        ^^^^^^^^^^       ^^^^^^^^^^^^^
                    IP 位址          廣播位址         網路遮罩
          inet6 addr: fe80::224:1dff:fe12:5cc7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2169750 errors:0 dropped:1177 overruns:0 frame:0
          TX packets:245495 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:403019350 (384.3 MiB)  TX bytes:39846652 (38.0 MiB)
          Interrupt:43 Base address:0x4000

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:142137 errors:0 dropped:0 overruns:0 frame:0
          TX packets:142137 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8077705 (7.7 MiB)  TX bytes:8077705 (7.7 MiB)



7. 呼叫網路上的主機 ping 主機名稱/IP,例如:

   ping 163.26.229.252

假設我們發現系統好像當掉了,接下來請輸入 Ctrl+C 中斷 ping 指令,會出現以下訊息:
^C
--- 163.26.229.252 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3023ms

上面訊息告訴我們送給 163.26.229.252 的 4 個封包全部被退回, 100 % 的封包消失,我們可以因而推論 163.26.229.252 目前是沒有連線/無法動作/維護當中


先確定網路連線正確,而且是 eth0 網路介面。第一次登入後,我們先確定網路有連線,請執行:

ping 163.26.229.254 (Gateway - 閘道 IP)

如果沒有動作,請按 Ctrl+C 中斷此程式,此時我們可以看到有多少封包傳輸,多少封包丟掉。如果出現以下訊息:

herman@debian:~$ ping 163.26.229.254
PING 163.26.229.254 (163.26.229.254) 56(84) bytes of data.
64 bytes from 163.26.229.254: icmp_seq=1 ttl=255 time=0.392 ms
64 bytes from 163.26.229.254: icmp_seq=2 ttl=255 time=0.362 ms
64 bytes from 163.26.229.254: icmp_seq=3 ttl=255 time=0.408 ms
64 bytes from 163.26.229.254: icmp_seq=4 ttl=255 time=0.754 ms
64 bytes from 163.26.229.254: icmp_seq=5 ttl=255 time=0.638 ms
64 bytes from 163.26.229.254: icmp_seq=6 ttl=255 time=0.438 ms
64 bytes from 163.26.229.254: icmp_seq=7 ttl=255 time=0.493 ms
64 bytes from 163.26.229.254: icmp_seq=8 ttl=255 time=0.327 ms
^C
--- 163.26.229.254 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7003ms
rtt min/avg/max/mdev = 0.327/0.476/0.754/0.139 ms

表示工作正常。理論上,上面的 icmp_seq 順序要從 1、2 .. 開始往上數。萬一其數字不連貫的話叫「掉封包」。掉封包表示網路不穩,這必須進行網路除錯。

另一個要注意的重點是 time=0.xxx ms 這個訊息,這個數字愈小愈好,萬一數字很大表示我們這台主機跟對方主機的連線不順暢。

最後有一行訊息如下:
8 packets transmitted, 8 received, 0% packet loss, time 7003ms

這表示送了 8 個封包,回收 8 個封包,丟掉 0% 封包,總共時間為 7003 ms

沒有留言:

張貼留言