當前位置:首頁 » 城管服務 » 伺服器線程

伺服器線程

發布時間: 2020-12-10 01:10:17

1. 服務器,使用多進程 與 多線程 請問有什麼區別

關於多進程和多線程,教科書上最經典的一句話是「進程是資源分配的最小單位,線程是CPU調度的最小單位」,這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這么簡單了,選的不好,會讓你深受其害。

經常在網路上看到有的XDJM問「多進程好還是多線程好?」、「Linux下用多進程還是多線程?」等等期望一勞永逸的問題,我只能說:沒有最好,只有更好。根據實際情況來判斷,哪個更加合適就是哪個好。

我們按照多個不同的維度,來看看多線程和多進程的對比(註:因為是感性的比較,因此都是相對的,不是說一個好得不得了,另外一個差的無法忍受)。
適應於多核、多機分布式;如果一台機器不夠,擴展到多台機器比較簡單
適應於多核分布式
進程占優
1)需要頻繁創建銷毀的優先用線程
原因請看上面的對比。
這種原則最常見的應用就是Web伺服器了,來一個連接建立一個線程,斷了就銷毀線程,要是用進程,創建和銷毀的代價是很難承受的
2)需要進行大量計算的優先使用線程
所謂大量計算,當然就是要耗費很多CPU,切換頻繁了,這種情況下線程是最合適的。
這種原則最常見的是圖像處理、演算法處理。
3)強相關的處理用線程,弱相關的處理用進程
什麼叫強相關、弱相關?理論上很難定義,給個簡單的例子就明白了。
一般的Server需要完成如下任務:消息收發、消息處理。「消息收發」和「消息處理」就是弱相關的任務,而「消息處理」裡面可能又分為「消息解碼」、「業務處理」,這兩個任務相對來說相關性就要強多了。因此「消息收發」和「消息處理」可以分進程設計,「消息解碼」、「業務處理」可以分線程設計。
當然這種劃分方式不是一成不變的,也可以根據實際情況進行調整。
4)可能要擴展到多機分布的用進程,多核分布的用線程
原因請看上面對比。
5)都滿足需求的情況下,用你最熟悉、最拿手的方式
至於「數據共享、同步」、「編程、調試」、「可靠性」這幾個維度的所謂的「復雜、簡單」應該怎麼取捨,我只能說:沒有明確的選擇方法。但我可以告訴你一個選擇原則:如果多進程和多線程都能夠滿足要求,那麼選擇你最熟悉、最拿手的那個。
需要提醒的是:雖然我給了這么多的選擇原則,但實際應用中基本上都是「進程+線程」的結合方式,千萬不要真的陷入一種非此即彼的誤區。

消耗資源:
從內核的觀點看,進程的目的就是擔當分配系統資源(CPU時間、內存等)的基本單位。線程是進程的一個執行流,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。
線程,它們彼此之間使用相同的地址空間,共享大部分數據,啟動一個線程所花費的空間遠遠小於啟動一個進程所花費的空間,而且,線程間彼此切換所需的時間也遠遠小於進程間切換所需要的時間。據統計,總的說來,一個進程的開銷大約是一個線程開銷的30倍左右,當然,在具體的系統上,這個數據可能會有較大的區別。
通訊方式:
進程之間傳遞數據只能是通過通訊的方式,即費時又不方便。線程時間數據大部分共享(線程函數內部不共享),快捷方便。但是數據同步需要鎖對於static變數尤其注意

線程自身優勢:
提高應用程序響應;使多CPU系統更加有效。操作系統會保證當線程數不大於CPU數目時,不同的線程運行於不同的CPU上;
改善程序結構。一個既長又復雜的進程可以考慮分為多個線程,成為幾個獨立或半獨立的運行部分,這樣的程序會利於理解和修改。

2. 項目中伺服器最大線程數的問題

不會 這個問題 你根本不需要考慮 如果你考慮的這些問題 是一個問題的話 tomcat 這個開源的東西 還會有人用?

3. 一台java伺服器可以跑多少個線程

Java的多線程可謂是Java編程的精華之一,運用得當可以極大地改善程序的響應時間,提高程序的並行性。在伺服器程序中,由於往往要接收不同客戶機的同時請求或命令,因此

4. Java的伺服器一般運行幾個線程比較合適

  • 首先確認你是cpu密集型的還是io密集型的,

  • 如果是cpu密集型的線程數可以設置到和回cpu個數一致,

  • 如果是io密集型的,首先需答要確認你io wait的時間,線程數和io wait時間成正比,具體需要根據測試得出。

5. 伺服器CPU是不是線程數越多越好另外並發訪問量最多1000的伺服器用什麼CPU比較好

你好.我來解答抄下你的問題
線程數只是衡量CPU性能的參數之一.並不完全由線程數量來決定CPU的性能.當然.在同等平台和同一級別的處理器.線程數越多性能越強.一般情況下.一台普通配置的伺服器最大並發數可以達到幾千.一台至強高配置的伺服器的最大並發數可以達到上萬.你所要求的並發數達到一千.基本上隨便一個普通配置就可以滿足了.除了配置以外.也要帶寬夠用才可以保障訪問速度.
海騰數據楊闖為你解答.若有伺服器問題需要幫忙的可以來找我

6. 如何查看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,有個核
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、硬碟、網卡、磁碟等硬體的信息。

7. 集群環境中,多台伺服器之間多線程如何進行數據同步

如何讓所有伺服器之間數據同步
1、採用高可用sureHA軟體鏡像型,一台回主服務答器,一台備伺服器,通過網線實時將數據備份,實現伺服器雙機互備的功能,此方式保證多台伺服器之間數據的一致性。
2、採用高可用sureHA雙機熱備共享型。一台主伺服器,一台備伺服器,鏈接一台存儲,將數據放到存儲裡面,實現數據的共享。此方式保證多台伺服器之間數據的一致性。
3、可實現伺服器虛擬化,把所有的伺服器物理資源都整理成一個大的資源池,數據都存放在磁碟陣列上面,所有應用系統都通過調用磁碟陣列裡面的數據,此方式保證多台伺服器之間數據的一致性。
不管技術怎麼實現,在伺服器方面還是需要人為的進行操作和監督,伺服器同步也成為不可缺少的一部分。所以海騰數據的伺服器的硬體要求和機房的線路穩定是保障以上實現的關鍵。參考海騰數據伺服器租用

8. 什麼是多線程並發伺服器

有多個 CPU 可用。單核機器上多線程的優勢不明顯。
線程間有共享數據。如果沒有共享數據,用模型 3b 就行。雖然我們應該把線程間的共享數據降到最低,但不代表沒有;
共享的數據是可以修改的,而不是靜態的常量表。如果數據不能修改,那麼可以在進程間用 shared memory,模式 3 就能勝任;
提供非均質的服務。即,事件的響應有優先順序差異,我們可以用專門的線程來處理優先順序高的事件。防止優先順序反轉;
latency 和 throughput 同樣重要,不是邏輯簡單的 IO bound 或 CPU bound 程序;
利用非同步操作。比如 logging。無論往磁碟寫 log file,還是往 log server 發送消息都不應該阻塞 critical path;
能 scale up。一個好的多線程程序應該能享受增加 CPU 數目帶來的好處,目前主流是 8 核,很快就會用到 16 核的機器了。
具有可預測的性能。隨著負載增加,性能緩慢下降,超過某個臨界點之後急速下降。線程數目一般不隨負載變化。
多線程能有效地劃分責任與功能,讓每個線程的邏輯比較簡單,任務單一,便於編碼。而不是把所有邏輯都塞到一個 event loop 里,就像 Win32 SDK 程序那樣。

9. 伺服器一般支持多少線程

這個是根據伺服器配置(處理器)來的,主流的都是核心數* 2。你可以去伺服器廠商(正睿)的網上找找伺服器產品,查看一下參數和配置,幾分鍾就清楚了!

10. 伺服器說的「路、通道、線程」是什麼意思

首先你要明白一點:路、核、線程三者的區別。
路:獨立的CPU的個數。
核:單個CPU的物理核心(也叫真實核心)數量。
線程:程序中順序控制流程的數量。

舉個例子,雙路四核八線程伺服器指的就是該伺服器有2個獨立的CPU,每個CPU有2個物理核心(2x2=4核),每個核心擁有2條線程(4x2=8線程)。個人PC平台上很少出現「路」這個術語,以前奔騰時代英特爾公司面向桌面級用戶倒是做過一些高端的雙CPU平台,就是說一塊主板上裝了兩個獨立的CPU,和現在的雙核CPU不是一個概念。多核CPU是由於後期技術發展後,晶元集成度越來越高,可以把多個物理核心集成在一個CPU上。打個比喻(雖然不恰當),如果把雙路看做一對健康的雙胞胎的話,那麼雙核就是一對連體雙胞胎。

而所謂的四核八線程(注意:這里沒有「路」定義)就是說,一顆獨立的CPU上的真實核心數量為4,但是通過超線程技術又模擬出4個核心,看上去像8個核心了,但有4個是模擬出來的,不是真實的,以此類推。這就是所謂的超線程,目前是英特爾公司獨有的技術。

至於「幾通道」,它指的是伺服器進行資源共享操作時的信道數量,它表現的是伺服器的網路共享通信那一塊的性能,和上面的三個術語面向的對象不同,他們仨表現的是伺服器的數據處理那一塊的性能,數量越高,伺服器多任務處理能力越強。當然,這四個傢伙一起展現了一台伺服器的綜合性能。

熱點內容
影視轉載限制分鍾 發布:2024-08-19 09:13:14 瀏覽:319
韓國電影傷口上紋身找心裡輔導 發布:2024-08-19 09:07:27 瀏覽:156
韓國電影集合3小時 發布:2024-08-19 08:36:11 瀏覽:783
有母乳場景的電影 發布:2024-08-19 08:32:55 瀏覽:451
我准備再看一場電影英語 發布:2024-08-19 08:14:08 瀏覽:996
奧迪a8電影叫什麼三個女救人 發布:2024-08-19 07:56:14 瀏覽:513
邱淑芬風月片全部 發布:2024-08-19 07:53:22 瀏覽:341
善良媽媽的朋友李采潭 發布:2024-08-19 07:33:09 瀏覽:760
哪裡還可以看查理九世 發布:2024-08-19 07:29:07 瀏覽:143
看電影需要多少幀數 發布:2024-08-19 07:23:14 瀏覽:121