linux內核cpu
㈠ linux 裡面 內核 cpu 內存 之間的關系
建議你看下linux redhat 寶典,這個裡面就是linux的優勢坐在,優秀的內存管理方法
比windows性能強N倍,有限緩存內存,然後再緩存虛擬內存,保證速度最快
㈡ linux內核配置 cpu類型怎麼選擇
linux內核配置 cpu類型怎麼選擇
系統調用:是操作系統為用戶態運行的進程和硬體設備(如CPU、磁碟、列印機等)進行交互提供的一組介面,即就是設置在應用程序和硬體設備之間的一個介面層。可以說是操作系統留給用戶程序的一個介面。再來說一下,linux內核是單內核,結構緊湊,執行速度快,各個模塊之間是直接調用的關系。放眼望整個linux系統,從上到下依次是用戶進程->linux內核->硬體。其中系統調用介面是位於Linux內核中的,如果再稍微細分一下的話,整個linux系統從上到下可以是:用戶進程->系統調用介面->linux內核子系統->硬體,也就是說Linux內核包括了系統調用介面和內核子系統兩部分;或者從下到上可以是:物理硬體->OS內核->OS服務->應用程序,其中操作系統起到「承上啟下」的關鍵作用,向下管理物理硬體,向上為操作系服務和應用程序提供介面,這里的介面就是系統調用了。 一般地,操作系統為了考慮實現的難度和管理的方便,它只提供一少部分的系統調用,這些系統調用一般都是由C和匯編混合編寫實現的,其介面用C來定義,而具體的實現則是匯編,這樣的好處就是執行效率高,而且,極大的方便了上層調用。 庫函數:顧名思義是把函數放到庫里。
㈢ Linux伺服器 內核佔用cpu過高
在linux中,內存使用是按照最大化原則來的,也就是說你的內存在滿足應用使用的情況下,剩餘部分會被當作高速緩存來使用。看你的內存夠不夠用關鍵看的是swap區的使用量,swap區使用量較小或者不使用則說明你的內存是足夠使用的,如果swap區不停的在增長,或者使用了很多則說明你的內存已經不夠用了。
㈣ 如何查看linux cpu 內核
1.查看邏輯CPU個數:
#cat /proc/cpuinfo |grep "processor"|sort -u|wc -l
24
2.由於有超線程技術有必要查看一下物理CPU個數:
#grep "physical id" /proc/cpuinfo|sort -u|wc -l
2
#grep "physical id" /proc/cpuinfo|sort -u
physical id : 0
physical id : 1
查看每個物理CPU內核個數:
#grep "cpu cores" /proc/cpuinfo|uniq
cpu cores : 6
每個物理CPU上邏輯CPU個數:
#grep "siblings" /proc/cpuinfo|uniq
siblings : 12
判斷是否開啟了抄超線程:
如果多個邏輯CPU的"physical id"和"core id"均相同,說明開啟了超線程
或者換句話說
邏輯CPU個數 > 物理CPU個數 * CPU內核數 開啟了超線程
邏輯CPU個數 = 物理CPU個數 * CPU內核數 沒有開啟超線程
相關知識延伸閱讀:
一次性查詢所有信息:
#!/bin/bash
physicalNumber=0
coreNumber=0
logicalNumber=0
HTNumber=0
logicalNumber=$(grep "processor" /proc/cpuinfo|sort -u|wc -l)
physicalNumber=$(grep "physical id" /proc/cpuinfo|sort -u|wc -l)
coreNumber=$(grep "cpu cores" /proc/cpuinfo|uniq|awk -F':' '{print $2}'|xargs)
HTNumber=$((logicalNumber / (physicalNumber * coreNumber)))
echo "****** CPU Information ******"
echo "Logical CPU Number : ${logicalNumber}"
echo "Physical CPU Number : ${physicalNumber}"
echo "CPU Core Number : ${coreNumber}"
echo "HT Number : ${HTNumber}"
echo "*****************************"
執行結果:
#./cpuinfo
****** CPU Information ******
Logical CPU Number : 24
Physical CPU Number : 2
CPU Core Number : 6
HT Number : 2
㈤ 怎樣查看cpu支持的linux內核
linux內核是跨硬體平台的OS,一般內核都是支持各種你能見到的CPU的,從ARM到powerPC,唯一需要你關心的可能是安裝64位的內核,或者32位的內核。
㈥ Linux內核中cpu的選擇
你說的是編譯器定製還是內核的cpu選項呀?
gcc可以改,kernel以可以
只是我沒見過pxa2xx
內核沒有詳細的cpu選項,只有core2,core,i486,arm7,arm9之類的系列
也許是我沒啥見識
㈦ linux內核 如何 兼容 cpu
1、一個cpu和一個內核想要運行起來還需要很多配套的東西。畢竟要想搭建起一個智能系統就需要一定的條件。以下從軟體系統層面和硬體系統簡要說下:
1.1、軟體系統,linux內核可以理解為一個對硬體進行封裝的提供多任務的調度器。linux想要運行起來除了需要一個硬體系統外,還需要一些引導程序比如bootlooder。也就是硬體運行起來的時候,需要有一個引導器引導linux內核載入啟動。
1.2、硬體系統,一塊cpu是運行不了的,至少需要一個最小系統,比如單片機至少需要一個晶振提供脈沖信號,然後單片機就可以運行。而對於復雜的cpu來說可能最小系統的需求更多,比如需要flash用於裝載程序,ram用於程序的運行空間等。
2、如果想要自己一步一步的搭建起整套系統是比較困難的,不過現階段市面上又很多這種開發套件,不管是出於學習還是商用,都可以使用這些套件,例如國內的可以買海思,全志,瑞芯微的開發板學習和做產品。淘寶上都有,有些專門做開發板的廠商資料還比較齊全。
㈧ 如何查看linux伺服器的cpu數量,內核數,和cpu線程數
lscpu命令,查看的是cpu的統計信息.
blue@blue-pc:~$ lscpu
Architecture: i686 #cpu架構
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian #小尾序
CPU(s): 4 #總共有4核
On-line CPU(s) list: 0-3
Thread(s) per core: 1 #每個cpu核,只能支持一個線程,即不支持超線程
Core(s) per socket: 4 #每個cpu,有4個核
Socket(s): 1 #總共有1一個cpu
Vendor ID: GenuineIntel #cpu產商 intel
CPU family: 6
Model: 42
Stepping: 7
CPU MHz: 1600.000
BogoMIPS: 5986.12
Virtualization: VT-x #支持cpu虛擬化技術
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
查看/proc/cpuinfo,可以知道每個cpu信息,如每個CPU的型號,主頻等。
#cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
.....
上面輸出的是第一個cpu部分信息,還有3個cpu信息省略了。
內存
概要查看內存情況
free -m
total used free shared buffers cached
Mem: 3926 3651 274 0 12 404
-/+ buffers/cache: 3235 691
Swap: 9536 31 9505
這里的單位是MB,總共的內存是3926MB。
查看內存詳細使用
# cat /proc/meminfo
MemTotal: 4020868 kB
MemFree: 230884 kB
Buffers: 7600 kB
Cached: 454772 kB
SwapCached: 836 kB
.....
查看內存硬體信息
dmidecode -t memory
# dmidecode 2.11
SMBIOS 2.7 present.
Handle 0x0008, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
....
Maximum Capacity: 32 GB
....
Handle 0x000A, DMI type 17, 34 bytes
....
Memory Device
Array Handle: 0x0008
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
.....
我的主板有4個槽位,只用了一個槽位,上面插了一條4096MB的內存。
磁碟
查看硬碟和分區分布
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├—sda1 8:1 0 1G 0 part /boot
├—sda2 8:2 0 9.3G 0 part [SWAP]
├—sda3 8:3 0 74.5G 0 part /
├—sda4 8:4 0 1K 0 part
├—sda5 8:5 0 111.8G 0 part /home
└—sda6 8:6 0 269.2G 0 part
顯示很直觀
如果要看硬碟和分區的詳細信息
# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00023728
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2148351 1073152 83 Linux
/dev/sda2 2148352 21680127 9765888 82 Linux swap / Solaris
/dev/sda3 21680128 177930239 78125056 83 Linux
/dev/sda4 177932286 976771071 399419393 5 Extended/dev/sda5 177932288 412305407 117186560 83 Linux
/dev/sda6 412307456 976771071 282231808 83 Linux
網卡
查看網卡硬體信息
# lspci | grep -i 'eth'
02:00.0 Ethernet controller: Realtek Semiconctor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
查看系統的所有網路介面
# ifconfig -a
eth0 Link encap:乙太網 硬體地址 b8:97:5a:17:b3:8f
.....
lo Link encap:本地環回
.....
或者是
ip link show
1: lo: <LOOPBACK> mtu 16436 qdisc noqueue state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether b8:97:5a:17:b3:8f brd ff:ff:ff:ff:ff:ff
如果要查看某個網路介面的詳細信息,例如eth0的詳細參數和指標
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full #支持千兆半雙工,全雙工模式
Supported pause frame use: No
Supports auto-negotiation: Yes #支持自適應模式,一般都支持
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes #默認使用自適應模式
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
.....
Speed: 100Mb/s #現在網卡的速度是100Mb,網卡使用自適應模式,所以推測路由是100Mb,導致網卡從支 持千兆,變成要支持百兆
Duplex: Full #全雙工
.....
Link detected: yes #表示有網線連接,和路由是通的
其他
查看pci信息,即主板所有硬體槽信息。
lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09) #主板晶元
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) #顯卡
00:14.0 USB controller: Intel Corporation Panther Point USB xHCI Host Controller (rev 04) #usb控制器
00:16.0 Communication controller: Intel Corporation Panther Point MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation Panther Point High Definition Audio Controller (rev 04) #音效卡
00:1c.0 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 1 (rev c4) #pci 插槽
00:1c.2 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 3 (rev c4)
00:1c.3 PCI bridge: Intel Corporation Panther Point PCI Express Root Port 4 (rev c4)
00:1d.0 USB controller: Intel Corporation Panther Point USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Panther Point LPC Controller (rev 04)
00:1f.2 IDE interface: Intel Corporation Panther Point 4 port SATA Controller [IDE mode] (rev 04) #硬碟介面
00:1f.3 SMBus: Intel Corporation Panther Point SMBus Controller (rev 04)
00:1f.5 IDE interface: Intel Corporation Panther Point 2 port SATA Controller [IDE mode] (rev 04) #硬碟介面
02:00.0 Ethernet controller: Realtek Semiconctor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06) #網卡
03:00.0 PCI bridge: Integrated Technology Express, Inc. Device 8893 (rev 41)
如果要更詳細的信息:lspci -v 或者 lspci -vv
如果要看設備樹:lscpi -t
查看bios信息
# dmidecode -t bios
......
BIOS Information
Vendor: American Megatrends Inc.
Version: 4.6.5
Release Date: 04/25/2012
.......
BIOS Revision: 4.6
......
dmidecode以一種可讀的方式mp出機器的DMI(Desktop Management Interface)信息。這些信息包括了硬體以及BIOS,既可以得到當前的配置,也可以得到系統支持的最大配置,比如說支持的最大內存數等。
如果要查看所有有用信息
dmidecode -q
以上是linux查看硬體信息的所有命令,可以查看CPU、硬碟、網卡、磁碟等硬體的信息。
㈨ 如何查看linux內核運行在哪個cpu上
方法一
如果一個進程使用 taskset 命令明確的被固定(pinned)到 CPU 的特定內核上,你可以使用 taskset 命令找出被固定的 CPU 內核:
$ taskset -c -p <pid>
例如, 如果你對 PID 5357 這個進程有興趣:
$ taskset -c -p 5357
pid 5357's current affinity list: 5
輸出顯示這個過程被固定在 CPU 內核 5上。
但是,如果你沒有明確固定進程到任何 CPU 內核,你會得到類似下面的親和力列表。
pid 5357's current affinity list: 0-11
輸出表明該進程可能會被安排在從0到11中的任何一個 CPU 內核。在這種情況下,taskset 不能識別該進程當前被分配給哪個 CPU 內核,你應該使用如下所述的方法。
方法二
ps 命令可以告訴你每個進程/線程目前分配到的 (在「PSR」列)CPU ID。
$ ps -o pid,psr,comm -p <pid>
PID PSR COMMAND
5357 10 prog
輸出表示進程的 PID 為 5357(名為」prog」)目前在CPU 內核 10 上運行著。如果該過程沒有被固定,PSR 列會根據內核可能調度該進程到不同內核而改變顯示。
方法三
top 命令也可以顯示 CPU 被分配給哪個進程。首先,在top 命令中使用「P」選項。然後按「f」鍵,顯示中會出現 「Last used CPU」 列。目前使用的 CPU 內核將出現在 「P」(或「PSR」)列下。
$ top -p 5357
相比於 ps 命令,使用 top 命令的好處是,你可以連續監視隨著時間的改變, CPU 是如何分配的。
方法四
另一種來檢查一個進程/線程當前使用的是哪個 CPU 內核的方法是使用 htop 命令。
從命令行啟動 htop。按 鍵,進入」Columns」,在」Available Columns」下會添加 PROCESSOR。
每個進程當前使用的 CPU ID 將出現在「CPU」列中。
請注意,所有以前使用的命令 taskset,ps 和 top 分配CPU 內核的 IDs 為 0,1,2,…,N-1。然而,htop 分配 CPU 內核 IDs 從 1開始(直到 N)。