原创 Install and use CentOS 7 or RHEL 7 as KVM virtualization host

When thinking about virtualization, everybody immediately thinks about VMWare. And it must be said, the product th

原创 管理文件權限和所有權

概述 在本文中,瞭解通過文件、目錄權限和所有權的正確使用控制文件訪問。學習: 管理普通和特殊文件及目錄的訪問權限 使用訪問模式,如 suid、sgid 和粘貼位(sticky bit),維護安全性 變更文件創建屏蔽 向組成員授予訪問

原创 全面深入分析TCP的TIME_WAIT和CLOSE_WAIT(下)

討論前大家可以拿手頭的服務器摸摸底,記住「ss」比「netstat」快: shell> ss -ant | awk ' NR>1 {++s[$1]} END {for(k in s) print k,s[k]} ' 如果你只是

原创 全面深入分析TCP的TIME_WAIT和CLOSE_WAIT(上)

你遇到過TIME_WAIT的問題嗎? 我相信很多都遇到過這個問題。一旦有用戶在喊:網絡變慢了。第一件事情就是,netstat -a | grep TIME_WAIT | wc -l 一下,哎呀媽呀,幾千個TIME_WAIT。

原创 未來在遠方

隨着科技領域快速的發展,固步自封只會讓自己越來越邊緣。而緊隨新興技術和發展的趨勢,並學習那些重要的技能,纔會讓你保持領先。那麼,問題來了,哪一類科技類技能值得我們去投入時間與精力呢? 回顧 2016 年,在教育與科技領域發生了兩件大事。

原创 Linux日誌文件系統及性能分析

日誌文件系統可以在系統發生斷電或者其它系統故障時保證整體數據的完整性,Linux是目前支持日誌文件系統最多的操作系統之一,本文重點研究了Linux常用的日誌文件系統:EXT3、ReiserFS、XFS和JFS日誌技術,並採用標準的測試工具

原创 從文件 I/O 看 Linux 的虛擬文件系統

Linux 允許衆多不同的文件系統共存,並支持跨文件系統的文件操作,這是因爲有虛擬文件系統的存在。虛擬文件系統,即VFS(Virtual File System)是 Linux 內核中的一個軟件抽象層。它通過一些數據結構及其方法向實際

原创 地理空間距離計算優化

#1 地理空間距離計算面臨的挑戰 打開美團app,不管是篩選團購還是篩選商家,默認的排序項都是“離我最近”或者“智能排序”(如下圖所示)。 不管是“離我最近”還是“智能排序”,都涉及到計算用戶位置與各個團購單子或者商家的距離(注:

原创 深入理解多線程編程

sleep和wait到底什麼區別 其實這個問題應該這麼問——sleep和wait有什麼相同點。因爲這兩個方法除了都能讓當前線程暫停執行完,幾乎沒有其

原创 淺談TCP/IP網絡編程中socket的行爲

想要熟練掌握Linux下的TCP/IP網絡編程,至少有三個層面的知識需要熟悉: 1. TCP/IP協議(如連接的建立和終止、重傳和確認、滑動窗口和擁塞控制等等) 2. Socket I/O系統調用(重點如read/write),這

原创 使用異步 I/O 大大提高應用程序的性能

Linux® 中最常用的輸入/輸出(I/O)模型是同步 I/O。在這個模型中,當請求發出之後,應用程序就會阻塞,直到請求滿足爲止。這是很好的一種解決方案,因爲調用應用程序在等待 I/O 請求完成時不需要使用任何中央處理單元(CPU)。但

原创 Linux資源管理之cgroups簡介

cgroups 是Linux內核提供的一種可以限制單個進程或者多個進程所使用資源的機制,可以對 cpu,內存等資源實現精細化的控制,目前越來越火的輕量級容器 Docker 就使用了 cgroups 提供的資源限制能力來完成cpu,內存等

原创 unix系列系統鏡像下載

中國大陸開源鏡像站彙總 1.企業貢獻:  搜狐開源鏡像站:http://mirrors.sohu.com/ 網易開源鏡像站:http://mirrors.163.com/  2.大學教學:  北京理工大學:http://mirror.

原创 多進程單線程模型與單進程多線程模型之爭

服務器,事件 多進程單線程模型典型代表:nginx 單進程多線程模型典型代表:memcached 另外redis, mongodb也可以說是走的“多進程單線程模”模型(集羣),只不過作爲數據庫服務器,需要進行寫保護,只提供了讀同步。 原因

原创 Linux多線程編程講解之系列八

條件變量詳解 在 上一篇文章結束時,我描述了一個比較特殊的難題:如果線程正在等待某個特定條件發生,它應該如何處理這種情況?它可以重複對互斥對象鎖定和解鎖,每次都會檢查共享數據結構,以查找某個值。但這是在浪費時間和資源,而且這種