不要怕大公司面試,找到核心的高頻問題,就解決了80%的面試題
- 請你談談行程和執行緒的區別?
1)行程
行程是程式的一次執行程序,是一個動態概念,是程式在執行程序中分配和管理資源的基本單位,每一個行程都有一個自己的地址空間,至少有 5 種基本狀態,它們是:初始態,執行態,等待狀態,就緒狀態,終止狀態,
2)執行緒
執行緒是CPU調度和分派的基本單位,它可與同屬一個行程的其他的執行緒共享行程所擁有的全部資源,
3)聯系
執行緒是行程的一部分,一個執行緒只能屬于一個行程,而一個行程可以有多個執行緒,但至少有一個執行緒,
4)區別:
根本區別:行程是作業系統資源分配的基本單位,而執行緒是任務調度和執行的基本單位
舉個簡單的例子: 行程比如成火車,執行緒就是車廂
- 執行緒在行程下作業(單純的車廂無法作業)
- 一個行程可以包含多個執行緒(一列火車可以包含多個車廂)
- 不同行程間資料很難共享(一輛火車上的乘客很難換到另一輛火車上)
- 行程使用的記憶體地址可以上鎖,一個執行緒使用某些共享記憶體時候其他的執行緒必須等他結束,才能使用這塊記憶體, (火車上的洗手間,互斥鎖)
- 談談HTTP?
概念:
HTTP 是一個協議,是一個超文本傳輸協議,它基于TCP/IP來傳輸文本,圖片,視頻,音頻等,
但是HTTP不提供資料包傳輸功能,也就是資料包從瀏覽器到服務端來回的傳輸與http沒關系,因為這是tcp/ip干的
所以我們重點強調了互動,HTTP規定了一種互動的格式,大家可以用這個格式來互動,減少互動成本,
HTTP的本質就是客戶端和服務器端約定好的一種通信格式
HTTP是通信協議,而RPC是遠程呼叫,公司內部用RPC,第三方介面都用HTTP協議,
- 檔案想要修改權限,用什么命令,檔案權限755代表什么意思
chmod 命令修改權限
7 root用戶 可讀可寫可執行
5 用戶組 可讀可執行
5 普通用戶 可讀可執行```
chmod 755 a.sh
- 查看cpu,記憶體的情況
[root@itlaoxin-163 ~]# cat /proc/cpuinfo
[root@itlaoxin-163 ~]# lscpu
記憶體
free -m
df -k
top
cat /proc/meminfo
- Tomcat的日志在什么地方
catalina.log
- MySQL的左右鏈接?
SQL提供了多種型別的連接方式,它們之間的區別在于:從相互交疊的不同資料集合中選擇用于連接的行時所采用的方法不同
內連接:
只連接匹配的行
左外連接: 包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行)
以及右邊表中全部匹配的行,a.order_id = b.order_id(+)
右外連接: 包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行)
以及左邊表中全部匹配的行,a.order_id(+) = b.order_id
全外連接:
包含左、右兩個表的全部行,不管另外一邊的表中是否存在與它們匹配的行
- 云環境監控獲取到一臺支撐物理機CPU利用率超標持續告警,如何排查?
從系統層面,業務層面,訪問呼叫層面,資料層面進行展開,逐一排查
- 軟連接和硬鏈接的區別
軟連接可以理解為快捷方式,硬鏈接理解為復制
語法:
軟鏈接:ln -s 源檔案 目標檔案
硬鏈接:ln 源檔案 目標檔案
區別如下:
- 硬鏈接: 與普通檔案沒什么不同,inode 都指向同一個檔案在硬碟中的區塊
- 軟鏈接: 保存了其代表的檔案的絕對路徑,是另外一種檔案,在硬碟上有獨立的區塊,訪問時替換自身路徑,
- Kubernetes有哪些核心組件這些組件負責什么作業?
etcd:提供資料庫服務保存了整個集群的狀態
kube-apiserver:提供了資源操作的唯一入口,并提供認證、授權、訪問控制、API注冊和發現等機制
kube-controller-manager:負責維護集群的狀態,比如故障檢測、自動擴展、滾動更新等
cloud-controller-manager:是與底層云計算服務商互動的控制器
kub-scheduler:負責資源的調度,按照預定的調度策略將Pod調度到相應的機器上
kubelet:負責維護容器的生命周期,同時也負責Volume和網路的管理
kube-proxy:負責為Service提供內部的服務發現和負載均衡,并維護網路規則
container-runtime:是負責管理運行容器的軟體,比如docker
- 描述一下Pod的生命周期有哪些狀態?
status 屬性里面有一個phase欄位記錄了Pod的狀態
正常情況下起一個新Pod的程序
Pending表示Pod已經被同意創建,正在等待kube-scheduler選擇合適的節點創建,一般是在準備鏡像
Running表示Pod中所有容器已經被創建,并且至少有一個容器正在運行或者是正在啟動或者正在重啟
Succeeded表示所有容器已經成功終止,且不會再啟動
Failed表示Pod中所有容器都是非0狀態退出
Unknown表示無法讀取Pod狀態通常是kube-controller-manager無法與Pod通信
- 怎么看Pod中的容器是否健康?
status 屬性里面有一個conditions欄位記錄了容器狀態
其中 type: Ready=True 表示Pod已經準備就緒,切已經加入了Service的負載均衡當中
type: ContainersReady=True表示所有Pod中所有容器都通過了健康檢查(如有),并全部準備就緒
- 撰寫腳本實作以下功能;
每天早上5點開始做備份
要備份的是/var/mylog里所有檔案和目錄可以壓縮進行備份
備份可以保存到別一臺器上192、168、1、2 FTP帳號 aaa 密碼 bbb
要示每天的備份檔案要帶有當天的日期標記
#cat /root/mylogbak.sh
#!/bin/bash
bakdir=mylog
date=date +%F
cd /var
tar zcf ${bakdir}_${date}.tar.gz ${bakdir}
sleep 1
ftp -n <<- EOF
open 192.168.142.129 #遠程ftp服務器IP
user aaa bbb
put mylog_*.tar.gz
bye
EOF
rm -rf mylog_*.tar.gz
添加crontab:
crontab -l
00 05 * * * /bin/bash /root/mylogbak.sh #每天早上5點開始執行備份腳本
總結:
騰訊運維崗的面試偏基礎,基礎一定要牢固,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276999.html
標籤:其他
上一篇:五十九、Oozie的簡介與安裝
