1. 程式人生 > >記一次Linux伺服器top命令us負載很高,但是找不到高負載程序,引起伺服器頻繁重啟的錯誤,核心升級

記一次Linux伺服器top命令us負載很高,但是找不到高負載程序,引起伺服器頻繁重啟的錯誤,核心升級

最近發現一臺測試伺服器頻繁重啟,各種排錯找不到原因,
伺服器:CentOS6
核心:2.6.32-431.1.2.0.1.el6.x86_64
這裡要注意了,引起伺服器頻繁重啟的原因很有可能是核心引起的
隨後查找了目前為止有缺陷的核心版本,如下:

Centos 6:

2.6.32-220.el6.x86_64
2.6.32-431.el6.x86_64
2.6.32-71.el6.x86_64

Centos 7:

3.10.0-229.el7.x86_64
這裡說一下,核心升級一定要編譯安裝的方式升級,請勿使用yum。因為伺服器在機房,做核心升級用yum,導致開機起不來的情況時有發生。

問題:

隨後用top命令檢視伺服器負載不高,但是發現使用者態佔用cpu使用率非常高,16核cpu,經常12個都是100%,但是檢視程序並沒有cpu佔用太高的程序,從右側上方檢視cpu負載也不是很高
如圖:
這裡寫圖片描述
如果是核心態佔用率高的話也就好懷疑是核心的問題了,但是核心態看起來一切正常。通過ps aux命令檢視所有程序進行逐一排查,並停掉所有在使用的程序,並沒有發現異常程序。使用者態佔用還是奇高。加上此核心在缺陷核心列表內,所以接下來進行核心升級。

升級核心:

官網現在最新穩定版kernel,截至2018.5.28最新穩定版本是4.16.11,因為伺服器在國外,所以下載很慢,這裡推薦多執行緒下載器 mwget 命令列多執行緒下載器,安裝也很簡單,因為伺服器很不穩定,所以我加上了nohup進行後臺下載,這裡的mwget是指定幾個執行緒同時下載。當然用wget下載也是可以的。mwget只是推薦。

  • 下載:
nohup mwget -c0 -n 32 https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.16.11.tar.xz &

然後解壓核心:

tar xJf linux-4.16.11.tar.xz -C /usr/src/kernel

  • 環境準備:

    yum yum groupinstall "Development Tools" -y

    yum -y install openldap openldap-clients openldap-developenldap-servers gcc gcc-c++ glibc automake autoconf libtool makelibmcrypt-devel
    mhash-devel libxslt-devel libjpeg libjpeg-devel libpnglibpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-develglibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-develcurl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-developenssl openssl-devel hmaccalc binutils-devel elfutils-libelf-devel bc
    • 編譯安裝核心:
      cd /usr/src/kernel/linux-4.16.11/
      因為已經有老核心,所以用老核心的配置檔案,省事。複製老核心配置檔案到當前目錄下並改名為.config
      1. cp /boot/config-2.6.32-431.el6.x86_64 ./.config
      接下來本應該執行這個命令: make mrproper && make clean進行編譯但是沒安裝的檔案進行清空,因為我是剛解壓過來的,所以就免了。直接下一步。
      2. make menuconfig
      用這個命令可以對核心模組進行定製,我只改個名其它沒有修改。
      這裡記錄一下,這個命令是基於.config進行核心模組的修改。建議沒什麼特殊需求,直接用改個名字退出就行,退出的時候問你是否儲存,當然要儲存,也可以先save進行儲存。
      3. make -j 16
      這裡說一下,-j 就是指定幾個cpu進行編譯。我希望快點,所以用了所有cpu,當然 也可以用make all


    也不是絕對的,我升級了兩個機器,虛擬機器正常,但是實體機會報錯。
    * Error during update of the configuration.
    make[2]: * [silentoldconfig] 錯誤 1
    make[1]: * [silentoldconfig] 錯誤 2
    SYSTBL arch/x86/include/generated/asm/syscalls_32.h
    SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
    SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
    SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
    make: * 沒有規則可以建立“include/config/kernel.release”需要的目標“include/config/auto.conf”。 停止。
    make: * 正在等待未完成的任務….


    思路就是複製老核心的auto.conf給新核心使用。
    cp /usr/src/kernels/2.6.32-431.1.2.0.1.el6.x86_64/include/config/auto.conf /usr/src/kernel/linux-4.16.11/incloud/config/
    如果沒有config目錄,就建立這個目錄。然後再進行編譯就不報錯了。

4. make modules_install
編譯安裝 .config給定的各種模組
5. make install
進行安裝。然後等待安裝完畢,如果安裝成功,開啟/etc/grub.conf。會顯示有兩個版本的核心,預設啟動老核心,更改default預設值,從上往下依次從0開始,儲存/etc/grub.conf並重啟。

[[email protected] ~]# uname -r
4.16.11dongsi

6.然後就是重啟伺服器
大功告成,負載也下來了。伺服器平穩執行:
這裡寫圖片描述
下面這個問題好像全網都沒解決辦法,不少人也遇到了,再貼一下,為了幫助更多人
* Error during update of the configuration.
make[2]: * [silentoldconfig] 錯誤 1
make[1]: * [silentoldconfig] 錯誤 2
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
make: * 沒有規則可以建立“include/config/kernel.release”需要的目標“include/config/auto.conf”。 停止。
make: * 正在等待未完成的任務….

思路就是複製老核心的auto.conf給新核心使用。
cp /usr/src/kernels/2.6.32-431.1.2.0.1.el6.x86_64/include/config/auto.conf /usr/src/kernel/linux-4.16.11/incloud/config/
如果沒有config目錄,就建立這個目錄。然後再進行編譯就不報錯了。

相關推薦

maven父專案pom.xml檔案中的報依賴到(dependency not found)紅線錯誤

    今天新建了一個maven工程,在父工程中的pom.xml檔案中新增<dependencyManagement>用於管理jar。但是發現:報如圖所示紅線錯誤。我查看了自己的本地倉庫,發現並沒有此jar包,於是以為是無法將jar包下載下來。一頓百度發現也沒解決

Linux伺服器top命令us負載但是負載程序引起伺服器頻繁錯誤核心升級

最近發現一臺測試伺服器頻繁重啟,各種排錯找不到原因, 伺服器:CentOS6 核心:2.6.32-431.1.2.0.1.el6.x86_64 這裡要注意了,引起伺服器頻繁重啟的原因很有可能是核心引起的 隨後查找了目前為止有缺陷的

Linux伺服器磁碟空間佔用大檔案查詢

好久沒寫東西了,很久之前弄了個伺服器玩玩,寫了點東西在上面放著,一直在不停的抓資料,也就沒怎麼看,最近閒來無事登入後臺檢視,發現我的媽呀,伺服器磁碟快滿了 剛開始以為抓取的太多,資料庫資料膨脹佔用了,於是登入MySQL檢視,發現有20多萬條記錄,咋看似乎佔

linux伺服器被攻擊的處理經歷

首先發現IO、流量異常。查詢登入記錄,果不其然last命令沒有結果,/var/log/wtmp檔案被刪除。查詢/var/log/secure檔案中的登入記錄:grep "Accept" /var/log/secure查dstat的日誌檔案,正是10:51分開始出現IO異常。用

Linux伺服器上查殺木馬經歷

[[email protected] tmp]# tar xvzf zlib-1.2.7.tar.gz [[email protected] tmp]# cd zlib-1.2.7 [[email protected] zlib-1.2.7]# ./configure Che

linux伺服器入侵應急響應

近日接到客戶求助,他們收到託管電信機房的資訊,通知檢測到他們的一臺伺服器有對外發送攻擊流量的行為。希望我們能協助排查問題。   一、確認安全事件 情況緊急,首先要確認安全事件的真實性。經過和伺服器運維人員溝通,瞭解到業務只在內網應用,但伺服器竟然放開到公網了,能在公網直接ping通,且開放了

linux運維面試問題~l

以及 負載均衡 可執行文件 記錄 固定 lin 公司 比較 均衡 簡介:群友在面試一家公司中,公司出了這樣的一個問題:我有兩組機器,A組機器地址為10.0.1.10到10.0.1.30,B組機器地址為10.0.1.60到10.0.1.90 把本地一個aaa的可執行文件,上傳

Linux下JavaWeb環境的搭建

上傳 部署 x64 blog 兩個 family cif 解壓 啟動   今天重裝了騰訊雲VPS的系統,那麽幾乎所有運行環境都要重新部署了。過程不難懂,但是也比較繁瑣,這次就寫下來,方便他人也方便自己日後參考參考。   我采用的是JDK+Tomcat的形式來進行Java

LINUX-CRONTAB失敗的排查案例

一段時間 執行 linu linux-c 權限 排查 左右 完成 進行 在LINUX中,使用crontab來做計劃任務是一件很常見的事。本文記錄一次排查過程 故障描述 在crontab 設置計劃任務,每天淩晨3點執行腳本 conrtab(3點)tomcat用戶--執行腳本

Linux系統安裝的異常(AMI配置)

pos 網卡配置 software blog let 一次 war win 版本 一、背景 安裝Linux系統(Debian 8.8),老是失敗,卡在Install Software (12%的位置) 二、解決? 網上搜到的解決方法 1. 安裝過程中不要拔網線(我沒拔)

linux下用git安裝fastadmin的過程

1.安裝寶塔面板,阿里雲配置對應的安全組.在軟體管理介面下載mysql,php,apache,pm2管理器,phpmyadmin.(php版本最好只安裝一個,不然你需要確定你安裝的擴充套件是否安裝在你所選擇的php版本,php -v可以檢視當前預設的php版本) 2.進入網站目錄,clone

linux pv missing故障

現象描述: linux一個邏輯卷lv_home丟失,無法正常掛載,之前掛載在/home目錄下: [root@VM001 ~]# cat /etc/fstab ....... /dev/VolGroup/lv_home /home ext4

linux系統gpfs系統故障處理

故障現象:      客戶反應業務系統不能正常訪問,物理主機面板有告警燈。 故障判斷處理:    我們到達現場直接用顯示器接物理主機,顯示登入介面且可以正常登入。 1.檢視之後發現網路與閘道器不通。當時思路是將網路服務重啟。重啟網路服務卡死無法啟動,(思考:當時應該只

linux修改ip地址

step1: 預設linux關於ip的配置位於   /etc/sysconfig/network-scripts step2: 根據ipconfig獲取當前配置對應的檔名,我的這個是  enp2s0 step3:修改相應目錄下的配置檔案 IPAD

linux下串列埠資料丟包解決過程

專案中兩個晶片之間用串列埠進行通訊,由於傳輸格式中有校驗位,在資料量很大的時候總是校驗失敗。於是花了很長的時間最終解決了這個問題。 首先串列埠丟資料有兩種情況(明顯排除傳送端傳送的資料不對),第一種是通道也就是串列埠線或者連線口不行,無法承受很高的波特率(我使用的波特率是9

Linux下安裝pyspider的過程

首先執行pip install pyspider此時系統提示Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-Lau0Qp/pycurl/ You are using p

Linux磁盤空間占滿無法刪除的故障

解決方案 占用 dac sof print 51cto 分享 int code 問題介紹 近日發現公司服務器的磁盤空間越來越滿,感覺快要爆掉的感覺,於是開始著手清清磁盤空間,但是找來找去,發現根目錄已經使用了90%以上,可是/下的目錄占的空間都非常小,始終找不到占滿磁盤空間

Linux防毒過程

不久前發現機器流出流量突然增加,經檢視在/tmp目錄下存在可疑檔案,並且存在.ssh程序,於是安裝clamav全盤掃描,最終確定機器中毒。 病毒現象 1、在tmp目錄下moni.lod、gates.lod、time、sess、java等可疑檔案 2、存在.ssh、gett

挖礦病毒zz.sh——linux(centos)成為礦機後的排查與修復過程

我們工作組的主機叢集某天被發現cpu利用率600%多,顯然被種了後門來挖礦。寫一下這篇文章來記錄排查過程中遇到的問題。 1.怎麼發現變礦機? 1)top 發現cpu炸了。這個也是常見的檢視方法 2) netstat -natp 發現有幾個異常的tcp連線,一查ip,

Linux修改MySQL配置生效的問題

背景 自己手上有一個專案服務用的是AWS EC2,最近從安全性和效能方面考慮,最近打算把騰訊雲的MySQL資料庫遷移到AWS RDS上,因為AWS的出口規則和安全組等問題,我需要修改預設的3306埠和Bind Address限制特定的IP訪問,我在Stackoverflow上查詢瞭如何修改,但是網上的資料