① linux內核產生的core文件怎麼看
Core,又稱之為Core Dump文件,是Unix/Linux操作系統的一種機制,對於線上服務而言,Core令人聞之色變,因為出Core的過程意味著服務暫時不能正常響應,需要恢復,並且隨著吐Core進程的內存空間越大,此過程可能持續很長一段時間(例如當進程佔用...
② 如何查看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操作系統生成core mp文件的默認路徑
經過分析發現系統默認的core文件生成路徑是/var/logs,但/var/logs目錄並非系統自帶的,系統初始安裝默認自帶的是/var/log,最終導致該系統出現core mp後並沒能生成core文件,因此如何查詢和修改系統默認的core mp文件生產路徑呢?
方法如下:一. 查詢core mp文件路徑:
方法1: # cat /proc/sys/kerne怠琺糙貉孬股茬癱長凱l/core_pattern。
方法2: # /sbin/sysctl kernel.core_pattern二. 修改core mp文件路徑:
方法1:臨時修改/proc/sys/kernel/core_pattern文件,但/proc目錄本身是動態載入的,每次系統重啟都會重新載入,因此這種方法只能作為臨時修改。 /proc/sys/kernel/core_pattern 例:echo 『/var/log/%e.core.%p』 > /proc/sys/kernel/core_pattern
方法2:永久修改:使用sysctl -w name=value命令。 例:/sbin/sysctl -w kernel.core_pattern=/var/log/%e.core.%p為了更詳盡的記錄core mp當時的系統狀態,可通過以下參數來豐富core文件的命名: %% 單個%字元。
④ 怎麼查看Linux的core開關,以及如何打開和關閉
mp文件可以在程序crash時,方便我們查看程序crash的地方和上下文信息。在window下,要能生成mp文件,需要自己編寫相應的代碼。不過現在網上可以找到相應的代碼,只要把它下載後然後加到自己的工程中去,就可以了!在linux下面就簡單的許多。只要打開相應的開關,linux會自動在程序crash時生成相應的core文件。這個文件和window下的mp文件類似。
下面是簡單的一些步驟:
1.查看當前是否已經打開了此開關
通過命令:ulimit -c 如果輸出為 0
,則代表沒有打開。如果為unlimited則已經打開了,就沒必要在做打開。
2.通過命令打開
ulimit -c unlimited .然後通過步驟1,可以監測是否打開成功。
3.如果你要取消,很簡單:ulimit -c 0 就可以了
通過上面的命令修改後,一般都只是對當前會話起作用,當你下次重新登錄後,還是要重新輸入上面的命令,所以很麻煩。我們可以把通過修改
/etc/profile文件 來使系統每次自動打開。步驟如下:
1.首先打開/etc/profile文件
一般都可以在文件中找到 這句語句:ulimit -S -c 0 /dev/null
2&1.ok,根據上面的例子,我們只要把那個0 改為
unlimited 就ok了。然後保存退出。
2.通過source /etc/profile 使當期設置生效。
3.通過ulimit -c 查看下是否已經打開。
其實不光這個命令可以加入到/etc/profile文件中,一些其他我們需要每次登錄都生效的都可以加入到此文件中,因為登錄時linux都會載入此文件。比如一些環境變數的設置。
還有一種方法可以通過修改/etc/security/limits.conf文件來設置,這個方法沒有試過,也是網上看到。不過上面兩種就可以了!
最後說一下生成core
mp文件的位置,默認位置與可執行程序在同一目錄下,文件名是core.***,其中***是一個數字。core
mp文件名的模式保存在/proc/sys/kernel/core_pattern中,預設值是core。通過以下命令可以更改core
mp文件的位置(如希望生成到/tmp/cores目錄下)
echo 「/tmp/cores/core」
/proc/sys/kernel/core_pattern
設置完以後我們可以做個測試,寫個程序,產生一個異常。然後看到當前目錄會有個core*的文件。然後我們可以
gdb core。* 程序 進行調試。
⑤ linux core 怎麼打開
core文件是由應用程序收到系統信號後崩潰產生的,該文件中記錄了程序崩潰的原因(例如收到那種信號),調用堆棧和崩潰時的內存及變數值等等的信息。
打開core文件與編譯時使用的編譯器有關,但絕大多數linux程序是使用gcc編譯器編譯的,因此可使用對應gdb調試器打開,命令格式如下:
$ gdb 應用程序文件名 core文件名
舉例:
$ gdb /usr/bin/gedit ~/core ------ 查看由gedit崩潰產生的core文件
(gdb) bt ------ 或者backtrace, 查看程序運行到當前位置之前所有的堆棧幀情況)
(gdb) quit ------ 退出
如果不知道core文件由哪個文件產生的,可使用file命令顯示
$ file core
⑥ 如何用命令檢查Linux伺服器性能
1、查看物理cpu個數:
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
2、查看每個物理cpu中的core個數:
cat /proc/cpuinfo |grep "cpu cores"|wc -l
3、邏輯cpu的個數:
cat /proc/cpuinfo |grep "processor"|wc -l
物理cpu個數*核數=邏輯cpu個數(不支持超線程技術的情況下)
⑦ 怎麼查看linux伺服器的cpu信息和核心數
Linux查看CPU基本信息,可以使用命令:
cat /proc/cpuinfo
例如筆者的虛擬機:
[root@promote ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
stepping : 5
cpu MHz : 2394.049
cache size : 3072 KB
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm ida arat dts
bogomips : 4788.09
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
可見,筆者這台虛擬機,有一個邏輯CPU,主頻是2.4。
延伸:
processor 邏輯處理器的id。
physical id 物理封裝的處理器的id。
core id 每個核心的id。
cpu cores 位於相同物理封裝的處理器中的內核數量。
siblings 位於相同物理封裝的處理器中的邏輯處理器的數量。
# 總核數 = 物理CPU個數 X 每顆物理CPU的核數
# 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數
# 查看物理CPU個數
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每個物理CPU中core的個數(即核數)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看邏輯CPU的個數
cat /proc/cpuinfo| grep "processor"| wc -l
查看CPU信息(型號)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
⑧ 如何查看linux的物理cpu信息
linux查看硬體信息
(1)查看硬碟大小:df-h
(2)查看內存大小
free-m
ll-h/proc/kcore
(3)查看CPUcat/proc/cpuinfo
linux下/proc/cpuinfo文件會顯示cpu的信息
邏輯CPU個數是指cat/proc/cpuinfo所顯示的processor的個數
#cat
/proc/cpuinfo
|
grep
processor
|
wc
-l
物理CPU個數,是指physical
id(的值)的數量
#cat
/proc/cpuinfo
|
grep
physical
id
|
sort
|
uniq
|
wc
-l
每個物理CPU中Core的個數:每個相同的physical
id都有其對應的core
id。如core
id分別為1、2、3、4,則表示是Quad-Core
CPU,若core
id分別是1、2,則表示是Dual-Core。
#cat
/proc/cpuinfo
|
grep
cpucores
|
wc
-l
邏輯CPU:每個物理CPU中邏輯CPU(可能是core,threads或both)的個數:
#cat
/proc/cpuinfo
|
grep
siblings
它既可能是cores的個數,也可能是core的倍數。當它和core的個數相等時,表示每一個core就是一個邏輯CPU,若它時core的2倍時,表示每個core又enable了超線程(Hyper-Thread)。
比如:一個雙核的啟用了超線程的物理cpu,其core
id分別為1、2,但是sibling是4,也就是如果有兩個
邏輯CPU具有相同的core
id,那麼超線程是打開的。
查看linux內核版本[root@q1test01~]#uname-a
Linuxq1test01
2.6.9-22.ELsmp#1
SMP
Mon
Sep
19
18:00:54
EDT
2005x86_64
x86_64
x86_64
GNU/Linux
[root@q1test01~]#lsb_release-a
LSB
Version::core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-
3.0-ia32:graphics-3.0-noarch
Distributor
ID:RedHatEnterpriseAS
Description:Red
Hat
Enterprise
Linux
AS
release
4(Nahant
Update
2)
Release:4
Codename:NahantUpdate2
註:這個命令適用於所有的linux,包括Redhat、SuSE、Debian等發行版
⑨ linux 怎麼分析core文件
從接觸unix開始就一直聽到和遇到core mp,特別是剛學著使用C語言在AIX下編寫程序的時候,core mp更是時不時就會不請自來。記得當時剛寫應用的時候,提交程序時最怕的就是在運行過程時遇到core mp,對於銀行核心系統,特別是使用靜態應用進程,如果一個相對頻繁一點的交易導致core mp,那麼毫無疑問,除了趕緊定位錯誤改程序外,重啟進程甚至無法爭取到多少緩沖的時間來進行代碼的更正和測試。而且往往導致core mp的,就是程序中一個小小的未注意到或者未測試到的一個疏忽。
雖然常常遇到core mp,不過很長時間內,都是出於知道這個名字,知道它導致的後果,知道一部分導致它出現的原因,其他的就都不甚了了了。說起來,就是自己太懶了,懶得看書......少壯不努力啊。看過一則統計,說60歲以上的老人,超過70%都後悔少壯不努力,不知統計的數據能否反映整個社會的情況。不過總的來說,這句古話還是有些道理的。大家不要學我。哈哈
core mp,翻譯過來講,就是核心轉儲。大致上就是指,如果由於應用錯誤,如浮點異常、指令異常等,操作系統將會轉入內核的異常處理,向對應的進程發送特定的信號(SIGNAL),如果進程中沒有對這些信號進行處理,就會轉入默認的處理,core mp就是其中的一種。如果進程core mp,系統將會終止該進程,同時系統會產生core文件,以供調試使用。這個core文件其實就是內存的映像,即進程執行的時候內存的內容,也就是所謂的core mp。平常大家說某某進程core mp了,其實主要的意思就是說:某某進程因為錯誤而被系統自動終止了。
AIX上提供了dbx工具可以對core mp進行調試,協助定位引起core mp的代碼。最普通的語法是:
dbx 應用名 core文件, 然後使用where命令來顯示調試信息
一般來講,根據工作中遇到的情況,dbx還是能夠比較輕松的根據提示的內容來定位代碼的。不過也有一些特殊情況時,dbx顯示的調試信息過於模糊或者不直觀,這個時候就只能根據經驗來逐步定位了。有時定位起來會耗用相當長的時間。遇到這種情況時,使用日誌文件,通過在代碼中穿插多個寫log的語句,也可以協助發現。因為進程core mp時,日誌當然也中斷了,根據日誌在哪個代碼行之後或之前中止了,可以有效縮小尋找的范圍。甚至,在有些情況下,使用日誌定位是唯一簡便的方法了。
⑩ linux 找出當前用戶主目錄下所有的.core文件
先運行 cd 到用戶的主目錄
執行find . -name ".core"執行