原创 Java問題排查常用linux命令

系統配置相關:查看內核/操作系統/CPU信息: uname -a 查看操作系統版本: head -1 /etc/issue 查看網卡信息:cat  /sbin/ifconfig 查看cpu配置: cat /proc/cpuinfo 查看

原创 Java NIO系列教程(九) Java NIO與BIO

當學習了Java NIO和BIO的API後,一個問題馬上湧入腦海: 我應該何時使用BIO,何時使用NIO呢?在本文中,我會盡量清晰地解析Java NIO和BIO的差異、它們的使用場景,以及它們如何影響您的代碼設計。 Java NIO

原创 Java線上排查總結

線上有一個功能,只要用戶一使用馬上FGC飈的很高而且一直不能回收內存。利用這個case來總結一下線上如何來排查問題找到代碼BUG並修復的。 1. Java heap dump日誌分析 一般分析內存溢出分析哪些應用佔用內存比較多情況有用

原创 阿里巴巴集團去IOE運動的思考與總結

預計2012年5月7日,阿里巴巴集團將正式公佈技術團隊合併的事情,涉及的部門:阿里巴巴運維團隊、阿里巴巴DBA團隊、阿里巴巴平臺技術部、大淘寶運維團隊、大淘寶DBA團隊、大淘寶核心系統部、阿里雲計算運維團隊、阿里雲計算DBA團隊和阿里巴

原创 JavaCore/HeapDump文件分析工具

BM HeapAnalyzer更多信息見官方網站地址:http://www.alphaworks.ibm.com/tech/heapanalyzer  在我們的應用程序發生內存泄露的時候,會生成heapdump文件,文件名字類似於這樣

原创 mysql中的SQL優化與執行計劃

一,如何判斷SQL的執行效率?      通過explain 關鍵字分析效率低的SQL執行計劃。 比如: explain select sum(moneys) from sales a, company b              

原创 Java NIO系列教程(七) DatagramChannel

Java NIO中的DatagramChannel是一個能收發UDP包的通道。因爲UDP是無連接的網絡協議,所以不能像其它通道那樣讀取和寫入。它發送和接收的是數據包。 打開 DatagramChannel 下面是 Datagra

原创 Java NIO系列教程(八) FileChannel

Java NIO中的FileChannel是一個連接到文件的通道。可以通過文件通道讀寫文件。 FileChannel無法設置爲非阻塞模式,它總是運行在阻塞模式下。 打開FileChannel 在使用FileChannel之前,

原创 MySQL聚簇索引和非聚簇索引的原理及使用

索引分爲聚簇索引和非聚簇索引。 以一本英文課本爲例,要找第8課,直接翻書,若先翻到第5課,則往後翻,再翻到第10課,則又往前翻。這本書本身就是一個索引,即“聚簇索引”。 如果要找"fire”這個單詞,會翻到書後面的附錄,這個附錄是按字母

原创 數據庫分庫分表(sharding)系列(四) 多數據源的事務處理

系統經sharding改造之後,原來單一的數據庫會演變成多個數據庫,如何確保多數據源同時操作的原子性和一致性是不得不考慮的一個問題。總體上看,目前對於一個分佈式系統的事務處理有三種方式:分佈式事務、基於Best Efforts 1PC模

原创 數據庫Sharding的基本思想和切分策略

本文着重介紹sharding的基本思想和理論上的切分策略,關於更加細緻的實施策略和參考事例請參考我的另一篇博文:數據庫分庫分表(sharding)系列(一) 拆分實施策略和示例演示  一、基本思想       Sharding的

原创 數據庫分庫分表(sharding)系列(五) 一種支持自由規劃無須數據遷移和修改路由代碼的Sharding擴容方案

作爲一種數據存儲層面上的水平伸縮解決方案,數據庫Sharding技術由來已久,很多海量數據系統在其發展演進的歷程中都曾經歷過分庫分表的Sharding改造階段。簡單地說,Sharding就是將原來單一數據庫按照一定的規則進行切分,把數

原创 關於垂直切分Vertical Sharding的粒度

垂直切分的粒度指的是在做垂直切分時允許幾級的關聯表放在一個shard裏.這個問題對應用程序和sharding實現有着很大的影響. 關聯打斷地越多,則受影響的join操作越多,應用程序爲此做出的妥協就越大,但單表的路由會越簡單,與業

原创 Spring 框架的設計理念與設計模式分析

Spring 作爲現在最優秀的框架之一,已被廣泛的使用,並且有很多對其分析的文章。本文將從另外一個視角試圖剖析出 Spring 框架的作者設計 Spring 框架的骨骼架構的設計理念,有那幾個核心組件?爲什麼需要這些組件?它們又是如何

原创 【直觀梳理深度學習關鍵概念】優化算法、調參基本思路、正則化方式等

深度學習論文衆多,而理解的前提是對基礎概念的掌握。本文旨在直觀系統地梳理深度學習各領域常見概念與基本思想,使讀者對深度學習的重要概念與思想有一直觀理解,從而降低後續理解論文及實際應用的難度。引言 深度學習目前已成爲發展最快、最令人興