分類
發燒車訊

熬夜之作:一文帶你了解Cat分佈式監控

Cat 是什麼?

CAT(Central Application Tracking)是基於 Java 開發的實時應用監控平台,包括實時應用監控,業務監控。

CAT 作為服務端項目基礎組件,提供了 Java, C/C++, Node.js, Python, Go 等多語言客戶端,已經在美團點評的基礎架構中間件框架(MVC 框架,RPC 框架,數據庫框架,緩存框架等,消息隊列,配置系統等)深度集成,為美團點評各業務線提供系統豐富的性能指標、健康狀況、實時告警等。

CAT 很大的優勢是它是一個實時系統,CAT 大部分系統是分鐘級統計,但是從數據生成到服務端處理結束是秒級別,秒級定義是 48 分鐘 40 秒,基本上看到 48 分鐘 38 秒數據,整體報表的統計粒度是分鐘級;第二個優勢,監控數據是全量統計,客戶端預計算;鏈路數據是採樣計算。

Github: https://github.com/dianping/cat

Cat 功能亮點

  • 實時處理:信息的價值會隨時間銳減,尤其是事故處理過程中
  • 全量數據:全量採集指標數據,便於深度分析故障案例
  • 高可用:故障的還原與問題定位,需要高可用監控來支撐
  • 故障容忍:故障不影響業務正常運轉、對業務透明
  • 高吞吐:海量監控數據的收集,需要高吞吐能力做保證
  • 可擴展:支持分佈式、跨 IDC 部署,橫向擴展的監控系統

為什麼要用 Cat?

場景一:用戶反饋 App 無法下單,用戶反饋無法支付,用戶反饋商品無法搜索等問題

場景一的問題在於當系統出現問題后,第一反饋的總是用戶。我們需要做的是什麼,是在出問題后研發第一時間知曉,而不是讓用戶來告訴我們出問題了。

Cat 可以出故障后提供秒級別的異常告警機制,不用再等用戶來反饋問題了。

場景二:出故障后如何快速定位問題

一般傳統的方式當出現問題后,我們就會去服務器上看看服務是否還存活。如果存活就會看看日誌是否有異常信息。

在 Cat 後台的首頁,會展示各個系統的運行情況,如果有異常,則會大片飄紅,非常明顯。最直接的方式還是直接查看 Problem 報表,這裡會為我們展示直接的異常信息,快速定位問題。

場景三:用戶反饋訂單列表要 10 幾秒才展示,用戶反饋下單一直在轉圈圈

場景三屬於優化相關,對於研發來說,優化是一個長期的過程,沒有最好只有更好。優化除了需要有對應的方案,最重要的是要對症下藥。

所謂的對症下藥也就是在優化之前,你得先知道哪裡比較慢。RPC 調用慢?數據庫查詢慢?緩存更新慢?

Cat 可以提供詳細的性能數據,95 線,99 線等。更細粒度的就是可以看到某個請求或者某個業務方法的所有耗時邏輯,前提是你做了埋點操作。

Cat 報表

Cat 目前有五種報表,每種都有特定的應用場景,下面我們來具體聊聊這些報表的作用。

Transaction 報表

適用於監控一段代碼運行情況,比如:運行次數、QPS、錯誤次數、失敗率、響應時間統計(平均影響時間、Tp 分位值)等等場景。

埋點方式:

public void shopService() {
    Transaction transaction = Cat.newTransaction("ShopService", "Service");
    try {
        service();
        transaction.setStatus(Transaction.SUCCESS);
    } catch (Exception e) {
        transaction.setStatus(e); // catch 到異常,設置狀態,代表此請求失敗
        Cat.logError(e); // 將異常上報到cat上
        // 也可以選擇向上拋出: throw e;
    } finally {
        transaction.complete();
    }
}

可以在基礎框架中對 Rpc, 數據庫等框架進行埋點,這樣就可以通過 Cat 來監控這些組件了。

業務中需要埋點也可以使用 Cat 的 Transaction,比如下單,支付等核心功能,通常我們對 URL 進行埋點就可以了,也就包含了具體的業務流程。

Event 報表

適用於監控一段代碼運行次數,比如記錄程序中一個事件記錄了多少次,錯誤了多少次。Event 報表的整體結構與 Transaction 報表幾乎一樣,只缺少響應時間的統計。

埋點方式:

 Cat.logEvent("Func", "Func1");

Problem 報表

Problem 記錄整個項目在運行過程中出現的問題,包括一些異常、錯誤、訪問較長的行為。

如果有人反饋你的接口報 500 錯誤了,你進 Cat 后就直接可以去 Problem 報表了,錯誤信息就在 Problem 中。

Problem 報表不需要手動埋點,我們只需要在項目中集成日誌的 LogAppender 就可以將所有 error 異常記錄,下面的段落中會講解如何整合 LogAppender。

Heartbeat 報表

Heartbeat 報表是 CAT 客戶端,以一分鐘為周期,定期向服務端彙報當前運行時候的一些狀態。

系統指標有系統的負載信息,內存使用情況,磁盤使用情況等。

JVM 指標有 GC 相關信息,線程相關信息。

Business 報表

Business 報表對應着業務指標,比如訂單指標。與 Transaction、Event、Problem 不同,Business 更偏向於宏觀上的指標,另外三者偏向於微觀代碼的執行情況。

這個報表我也沒怎麼用過,用的多的還是前面幾個。

Cat 在 Kitty Cloud 中的應用

Kitty Cloud 的基礎組件是 Kitty,Kitty 裏面對需要的一些框架都進行了一層包裝,比如擴展,增加 Cat 埋點之類的功能。

Cat 的集成

Kitty 中對 Cat 封裝了一層,在使用的時候直接依賴 kitty-spring-cloud-starter-cat 即可整合 Cat 到項目中。

 <dependency>
       <groupId>com.cxytiandi</groupId>
       <artifactId>kitty-spring-cloud-starter-cat</artifactId>
       <version>Kitty Version</version>
 </dependency>

然後在 application 配置文件中配置 Cat 的服務端地址信息,多個英文逗號分隔:

cat.servers=47.105.66.210

在項目的 resources 目錄下創建 META-INF 目錄,然後在 META-INF 中創建 app.properties 文件配置 app.name。此名稱是在 Cat 後台显示的應用名

app.name=kitty-cloud-comment-provider

最後需要配置一下 Cat 的 LogAppender,這樣應用在記錄 error 級別的日誌時,Cat 可以及時進行異常告警操作。

在 logback.xml 增加下面的配置:

 <appender name="CatAppender" class="com.dianping.cat.logback.CatLogbackAppender"></appender>
 <root level="INFO">
     <appender-ref ref="CatAppender" />
 </root>

更詳細的內容請移步 Cat 的 Github 主頁進行查看。

MVC 框架埋點

基於 Spring Boot 做 Web 應用開發,我們最常用到的一個 Starter 包就是 spring-boot-starter-web。

如果你使用了 Kitty 來構建微服務的框架,那麼就不再需要直接依賴 spring-boot-starter-web。而是需要依賴 Kitty 中的 kitty-spring-cloud-starter-web。

kitty-spring-cloud-starter-web 在 spring-boot-starter-web 的基礎上進行了封裝,會對請求的 Url 進行 Cat 埋點,會對一些通用信息進行接收透傳,會對 RestTemplate 的調用進行 Cat 埋點。

在項目中依賴 kitty-spring-cloud-starter-web:

<dependency>
      <groupId>com.cxytiandi</groupId>
      <artifactId>kitty-spring-cloud-starter-web</artifactId>
      <version>Kitty Version</version>
</dependency>

啟動項目,然後訪問你的 REST API。可以在 Cat 的控制台看到 URL 的監控信息。

點擊 URL 進去可以看到具體的 URL 信息。

再進一步可以看到整個 URL 的信息,比如數據庫的查詢,緩存的操作,Http 的調用等。後端同學在優化性能的時候就直接從 URL 下手可以將整個請求的鏈路耗時的情況都分析清楚。

Mybatis 埋點

Kitty 中 Mybatis 是用的 Mybatis Plus, 主要是對數據庫相關操作的 SQL 進行了 Cat 埋點,可以很方便的查看 SQL 的耗時情況。

依賴 kitty-spring-cloud-starter-mybatis:

 <dependency>
     <groupId>com.cxytiandi</groupId>
     <artifactId>kitty-spring-cloud-starter-mybatis</artifactId>
     <version>Kitty Version</version>
 </dependency>

其他的使用方式還是跟 Mybatis Plus 一樣,具體參考 Mybatis Plus 文檔:https://mp.baomidou.com

只要涉及到數據庫的操作,都會在 Cat 中進行數據的展示。

點擊 SQL 進去還可以看到是哪個 Mapper 的操作。

再進一步就可以看到具體的 SQL 語句和消耗的時間。

有了這些數據,後端研發同學就可以對相關的 SQL 進行優化了。

Redis 埋點

如果需要使用 Spring Data Redis 的話,直接集成 kitty-spring-cloud-starter-redis 就可以,kitty-spring-cloud-starter-redis 中對 Redis 的命令進行了埋點,可以在 Cat 上直觀的查看對應的命令和消耗的時間。

添加對應的 Maven 依賴:

<dependency>
     <groupId>com.cxytiandi</groupId>
     <artifactId>kitty-spring-cloud-starter-redis</artifactId>
     <version>Kitty Version</version>
 </dependency>

直接使用 StringRedisTemplate:

@Autowired
private StringRedisTemplate stringRedisTemplate;
 
stringRedisTemplate.opsForValue().set("name", "yinjihuan");

Cat 中可以看到 Redis 信息。

點擊 Redis 進去可以看到有哪些命令。

再進去可以看到命令的詳細信息,比如操作的 key 和消耗的時間。

MongoDB 埋點

Kitty 中對 Spring Data Mongodb 做了封裝,只對 MongoTemplate 做了埋點。使用時需要依賴 kitty-spring-cloud-starter-mongodb。

<dependency>
    <groupId>com.cxytiandi</groupId>
    <artifactId>kitty-spring-cloud-starter-mongodb</artifactId>
    <version>Kitty Version</version>
</dependency>

在發生 Mongo 的操作后,Cat 上就可以看到相關的數據了。

點進去就可以看到是 MongoTemplate 的哪個方法發生了調用。

再進一步就可以看到具體的 Mongo 參數和消耗的時間。

還有 Dubbo, Feign,Jetcache,ElasticSearch 等框架的埋點就不細講了,感興趣的可以移步 Github 查看代碼。

Cat 使用小技巧

埋點工具類

如果要對業務方法進行監控,我們一般會用 Transaction 功能,將業務邏輯包含在 Transaction 裏面,就能監控這個業務的耗時信息。

埋點的方式也是通過 Cat.newTransaction 來進行,具體可以參考上面 Transaction 介紹時給出的埋點示列。

像這種埋點的方式最好是有一個統一的工具類去做,將埋點的細節封裝起來。

public class CatTransactionManager {
    public static <T> T newTransaction(Supplier<T> function, String type, String name, Map<String, Object> data) {
        Transaction transaction = Cat.newTransaction(type, name);
        if (data != null && !data.isEmpty()) {
            data.forEach(transaction::addData);
        }
        try {
            T result = function.get();
            transaction.setStatus(Message.SUCCESS);
            return result;
        } catch (Exception e) {
            Cat.logError(e);
            if (e.getMessage() != null) {
                Cat.logEvent(type + "_" + name + "_Error", e.getMessage());
            }
            transaction.setStatus(e);
            throw e;
        } finally {
            transaction.complete();
        }
    }
}

工具類使用:

public SearchResponse search(SearchRequest searchRequest, RequestOptions options) {
    Map<String, Object> catData = new HashMap<>(1);
    catData.put(ElasticSearchConstant.SEARCH_REQUEST, searchRequest.toString());
    return CatTransactionManager.newTransaction(() -> {
        try {
            return restHighLevelClient.search(searchRequest, options);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }, ElasticSearchConstant.ES_CAT_TYPE, ElasticSearchConstant.SEARCH, catData);
}

通過使用工具類,不再需要每個監控的地方都是設置 Transaction 是否 complete,是否成功這些信息了。

註解埋點

為了讓 Transaction 使用更方便,我們可以自定義註解來做這個事情。比如需要監控下單,支付等核心業務方法,那麼就可以使用自定義的 Transaction 註解加在方法上,然後通過 AOP 去統一做監控。

定義註解:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface CatTransaction {
    /**
     * 類型, 默認為Method
     * @return
     */
    String type() default "";
    /**
     * 名稱, 默認為類名.方法名
     * @return
     */
    String name() default "";
    /**
     * 是否保存參數信息到Cat
     * @return
     */
    boolean isSaveParamToCat() default true;
}

定義切面:

@Aspect
public class CatTransactionAspect {
    @Around("@annotation(catTransaction)")
    public Object aroundAdvice(ProceedingJoinPoint joinpoint, CatTransaction catTransaction) throws Throwable {
        String type = catTransaction.type();
        if (StringUtils.isEmpty(type)){
            type = CatConstantsExt.METHOD;
        }
        String name = catTransaction.name();
        if (StringUtils.isEmpty(name)){
            name = joinpoint.getSignature().getDeclaringType().getSimpleName() + "." + joinpoint.getSignature().getName();
        }
        Map<String, Object> data = new HashMap<>(1);
        if (catTransaction.isSaveParamToCat()) {
            Object[] args = joinpoint.getArgs();
            if (args != null) {
                data.put("params", JsonUtils.toJson(args));
            }
        }
        return CatTransactionManager.newTransaction(() -> {
            try {
                return joinpoint.proceed();
            } catch (Throwable throwable) {
               throw new RuntimeException(throwable);
            }
        }, type, name, data);
    }

}

註解使用:

@CatTransaction
@Override
public Page<ArticleIndexBO> searchArticleIndex(ArticleIndexSearchParam param) {
}

你可能關心的幾個問題

Cat 能做鏈路跟蹤嗎?

Cat 主要是一個實時監控系統,並不是一個標準的全鏈路系統,主要是 Cat 的 logview 在異步線程等等一些場景下,不太合適,Cat 本身模型並不適合這個。Cat 的 Github 上有說明:在美團點評內部,有 mtrace 專門做全鏈路分析。

但是如果在 Mvc,遠程調用等這些框架中做好了數據的無縫傳輸,Cat 也可以充當一個鏈路跟蹤的系統,基本的場景足夠了。

Cat 也可以構建遠程消息樹,可以看到請求經過了哪些服務,每個服務的耗時等信息。只不過服務之間的依賴關係圖在 Cat 中沒有。

下圖請求從網關進行請求轉發到 articles 上面,然後 articles 裏面調用了 users 的接口。

Cat 跟 Skywalking 哪個好用?

Skywalking 也是一款非常優秀的 APM 框架,我還沒用過,不過看過一些文檔,功能點挺全的 ,界面也挺好看。最大的優勢是不用像 Cat 一樣需要埋點,使用字節碼增強的方式來對應用進行監控。

之所以列出這個小標題是因為如果大家還沒有用的話肯定會糾結要選擇落地哪個去做監控。我個人認為這兩個都可以,可以自己先弄個簡單的版本體驗體驗,結合你想要的功能點來評估落地哪個。

用 Cat 的話最好有一套基礎框架,在基礎框架中埋好點,這樣才能在 Cat 中詳細的显示各種信息來幫助我們快速定位問題和優化性能。

感興趣的 Star 下唄:https://github.com/yinjihuan/kitty-cloud

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計最專業,超強功能平台可客製化

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家公司費用怎麼算?

分類
發燒車訊

上位機開發之西門子PLC-S7通信實踐

 

寫在前面:

就目前而言,在中國的工控市場上,西門子仍然佔了很大的份額,因此對於上位機開發而言,經常會存在需要與西門子PLC進行通信的情況。然後對於西門子PLC來說,通信方式有很多,下面簡單列舉一下:

 

(1)  S7通信:PLC作為服務器,上位機作為客戶端

(2)  開放式TCP通信:PLC作為服務器,上位機作為客戶端

(3)  開放式TCP通信:PLC作為客戶端,上位機作為服務器

(4)   ModbusTCP通信:PLC作為服務器,上位機作為客戶端

(5)   ModbusTCP通信:PLC作為客戶端,上位機作為服務器

(6)   ModbusRTU通信:PLC作為主站,上位機作為從站

(7)   ModbusRTU通信:PLC作為從站,上位機作為主站

(8)   Simatic Net OPCDA通信

(9)   Simatic Net OPCUA通信

(10) KepServer OPCDA通信

(11) KepServer OPCUA通信

由於篇幅有限,這次僅以西門子S7通信為例,說明下如何基於S7通信協議實現與西門子PLC之間的通信。

 

1. PLC軟件安裝及配置

目前西門子PLC主要使用的軟件包括STEP7-MicroWIN SMART、SIMATIC STEP7以及TIA Portal。TIA Portal已經完全兼容STEP 7,因此以後應該是STEP 7-MicroWIN SMART作為小型PLC的編程軟件,TIA作為中大型PLC的編程軟件,這裏主要以博途為例進行說明:

如果大家需要軟件的,可以關注左上方公眾號,或者搜索微信公眾號:dotNet工控上位機,關注后發送關鍵詞:200SMART編程軟件即可獲取STEP 7-MicroWIN SMART V2.5軟件,發送關鍵詞:博圖V15即可獲取TIA V15.1編程軟件。

軟件安裝完成后,PLC的配置也很簡單,如果大家手頭沒有實際的PLC,也可以通過仿真的方式搭建PLC環境,具體可以參考文章:戳↓

基於S7-PLCSIM Advanced搭建S7通信仿真環境

 

無論使用何種方式,以下兩個地方需要進行配置一下:

PLC配置一:需要將PLC的允許來自遠程對象的PUT/GET通信訪問勾選。

PLC配置二:對於DB塊的訪問,需要取消勾選優化訪問。

 

2. 通信平台測試

(1)完成以上配置后,就可以通過自己開發的喜科堂通信測試平台軟件進行測試,導航欄中選擇西門子PLC,然後輸入正確的IP地址,在CPU類型中選擇自己的CPU類型:

圖表 1新閣通信測試平台

 

(1)輸入完成之後,點擊建立連接,建立連接之後,日誌欄會有連接成功提示。

(2)在讀寫測試中,輸入相應的變量地址及變量類型,即可實現相關變量的通信讀寫及測試。

圖表 2新閣通信測試平台測試

 

3. 項目級別應用

通信測試平台僅僅只是用於測試通信是否正常,實現正常的單變量數據讀取和寫入。但是如果是項目級別開發,還需要有一套更完善的通信架構,這裏我採用的是自主開發的上位機通信配置一體化軟件(簡稱CMS配置軟件)。

(1)通過PLC設備右擊選擇西門子PLC,在打開的窗體中設置好相關參數:

設備名稱:根據實際情況填寫(無特殊字符即可)

設備備註:根據實際情況填寫(無特殊字符即可)

IP地址:根據實際PLC的IP地址填寫

機架號、插槽號:根據實際PLC的情況填寫

PLC類型:根據實際PLC的情況填寫

連接超時:PLC連接時的超時時間,默認是2000ms

容錯次數:判斷連接故障的容錯次數,默認為1,即表示某次讀取出錯,即判斷連接故障,根據實際情況可以適當放大

重連周期:通信過程中,出現斷線時,重連的周期,默認是5000ms

圖表 3創建PLC

 

(2)在PLC設備下,右擊添加通信組,根據需要填寫相應的存儲區及起始地址及長度:

圖表 4添加通信組

 

(3)通信組下面,根據實際情況配置相應的變量,輸入開始地址及變量類型即可,變量地址會自動變換,這裏可以輸入比例係數及偏移量,用於做線性變換使用:

圖表 5添加變量

 

(4)對於變量配置,左下角會有一個報警歸檔配置,主要用於配置該變量的報警類型、歸檔方式及設定限制:

圖表 6報警歸檔配置

 

(5)完成上述配置后,可以點擊保存配置,再點擊啟動運行,即可實現實時通信:

圖表 7實時通信

 

(6)同時可以通過另存為,存儲為一個配置文件的形式,再基於配置dll,可以通過快速方式實現配置解析及通信數據解析,這樣整個項目的通信框架即可搭建完成。

 

4. 整體總結

本文主要針對西門子PLC的通信配置、通信配置及項目應用做了較為詳細的描述,希望可以給一些想要去開發西門子PLC項目的同學一些幫助。這樣的一套思路同樣適用於其他品牌的PLC,我們旨在節約大家開發項目中在通信方面的時間,而將更多的精力投放在項目工藝開發中。

 

寫在後面:

很多小夥伴想要CMSPro軟件來進行學習,因此綜合考慮,現提供CMSPro軟件試用版供大家學習使用,試用版功能方面可能會存在部分刪減,但是可以滿足大部分小夥伴的學習需求,目前僅針對本公眾號粉絲,具體獲取方式,通過關注本公眾號:dotNet工控上位機,發送關鍵詞:CMSPro試用,即可獲取。同時我們的通信庫xktComm.dll也提供試用版,大家可以通過nuget搜索xktComm,安裝使用,最後祝大家工作生活愉快。

 

更多精彩內容:

(點擊即可閱讀)

西門子PLC上位機軟件開發歷程

上位機C#通過TCP/IP和庫卡機器人通訊

上位機C#通過OPCUA和西門子PLC通信

基於C#實現本地數據上傳至雲服務器

上位機開發之三菱Q系列PLC通信實踐

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※回頭車貨運收費標準

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

分類
發燒車訊

保值率有啥用?看了才知道這些十幾萬的國產SUV這麼值錢

無論是從消費者口中還是市場銷量,無一不證明傳祺GS4擁有過人的產品實力。首先是原創度極高的外觀設計,年輕運動的造型風格拉攏了多少追求個性的年輕人,在整個自主SUV市場可是非常搶眼。與此同時,傳祺GS4的空間表現、動力總成,均在同級中有不錯的產品賣點,加上實惠的購車、養車成本。

二手車市場中流傳着這麼一句話:新車落地打八折。不管你是豪車還是家用車,只要是用過一段時間,先在新車的售價基礎上砍掉20%再談。因此,很多精打細算的消費者也會在準備購車前,未雨綢繆,盡量多方打聽某款車型的保值率,以便未來出手時能預測虧損區間。但是,保值率是什麼,你真的了解嗎?



長安CS75

新車價:9.28-15.88萬

保值率:57.70%

長安作為一家自主品牌的老大哥,旗下的CS系列均有口皆碑。其中,最受好評的還是長安CS75,沉穩大氣的外觀形象,雖然看起來中庸點,但卻非常符合國人骨子里對於傳統SUV的想象,寬敞又舒適的大空間也為長安CS75贏得一片掌聲。

除此之外,同級別非常有誠意的配置,成熟可靠的強勁動力,綜合起來真的不比合資SUV差。一句話下來,但凡SUV應該具備的特質,長安CS75都一個不漏地呈現給消費者,這也難怪長安CS75在二手車市場依然那麼搶手,保值率居高不下自然是常態。更何況,近期長安CS75 1.5T車型的上市,無疑進一步降低了購車門檻和成本。



傳祺GS4

新車價:9.98-15.38萬元

保值率:58.90%

上市不足兩年的傳祺GS4,一舉成為當今最受關注度的自主SUV之一。無論是從消費者口中還是市場銷量,無一不證明傳祺GS4擁有過人的產品實力。首先是原創度極高的外觀設計,年輕運動的造型風格拉攏了多少追求個性的年輕人,在整個自主SUV市場可是非常搶眼。

與此同時,傳祺GS4的空間表現、動力總成,均在同級中有不錯的產品賣點,加上實惠的購車、養車成本。這樣既有顏值又有實力,性價比還不低的傳祺GS4,又豈有賣不好的道理。另外,步入今年以來,傳祺GS4的市場表現愈加穩定,月銷兩三萬輛穩居SUV市場亞軍,以上有利因素都造就了傳祺GS4較高的保值率。值得一提的是,隨着傳祺GS4 6AT變速箱車型的上市,相信消費者對於其購買熱情只會有增無減。



哈弗H6

新車價:8.88-16.28萬

保值率:56.40%

提到自主SUV的保值率,是無法如何是避不開神車哈弗H6的。事實上,關於哈弗H6保值率高的原因也不難理解,只要了解它一個月賣出去的天量,再算一算哈弗H6在神州大地的保有量規模,你會發現其它的國產車簡直是渣渣的存在。

當然,哈弗H6的熱銷不是憑空而來,其一是抓對了早期自主SUV市場的空白期,可以算是第一個吃大螃蟹的自主SUV,為哈弗H6今時今日的頭把交椅奠定了良好的群眾基礎。其二是哈弗H6基本上完全針對國人的審美點出發打造,無論外觀還是空間,都讓人非常容易接受。此外,哈弗H6多到數不清的車型(紅藍標,運動升級版…),一定程度上幫助了哈弗H6滿足不同需求的消費者,再加上終端方面的讓利促銷。哈哈哈,如此才會延續哈弗H6越賣越好的節奏,哪怕是在二手車市場也是一車難求。

總結

以上推薦的幾款國產SUV,只是在保值率較高中比較有代表性的幾位。事實上,隨着國產SUV整體品質的提升,以及市場保有量的不斷擴大,許多有顏值有實力的國產SUV也越來越值錢,告別了以往二市車市場無人問津的尷尬。相比之下,國產轎車仍需加把勁啊。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

分類
發燒車訊

國產三巨頭15台轎車/SUV點評 總有一台適合你

38萬11月銷量10105輛H8、H9的上市問題產能問題等導致兩個好数字的產品銷量表現不佳,但H7很快就邁進萬輛俱樂部,也許能讓長城在中型SUV身上看到了希望。比起H6高達七萬多輛的銷量,H7的萬台銷量的意義一點也不小。15萬-20萬元這個價位區間一直被合資把持着,被稱為自主品牌難以逾越的天花板,而H7的定價正是位於這個區間,並且取得了初步的成功,這個成功不僅對於長城,甚至對於整個自主品牌都是極大的鼓勵。

為什麼有些車甚至不停加價都供不應求,而有些車一再優惠卻門可羅雀?為什麼同是國產車企,以下這些車型卻月月熱賣?

很多網友在評論中留言:“美編你覺得CS15這車怎樣?”“CS35現在還值得買嗎?”“CS75哪個配置好啊?”“H6那麼多款我應該買哪款?”“吉利博越很好看但我們這邊老是沒車怎麼辦?”

面對這些潮水般的相似問題,美編恨自己不能變成千手觀音回復大夥,於是整理出這篇長長的文章來作為解答。如果這裏剛好解答了你或者你的朋友類似的問題,在評論區留言或者把這篇文章傳遞給他們好不好?

長安CS75

指導價:9.28-15.88萬

11月銷量:21978輛

長安CS75面對榮威RX5以及吉利博越的熱銷,絲毫沒有影響其銷量,11月份銷量更是達到了21978輛,這也可以說明消費群體不同,長安CS75更實用外觀設計也偏沉穩。也不能忽略購置稅減半金融政策,臨近年底,也能刺激消費者購車慾望,而長安CS75也最大功臣莫過於1.5T車型,帶動着長安CS75銷量一路攀升。

長安CX70

指導價:6.89-8.49萬

11月銷量:10125

長安CX70從銷量過萬以來,一直維持在一萬輛/月左右。銷量難突破主因,應該是缺乏自動擋車型。畢竟現在成熟路況駕馭自動擋會更舒適,就算是新手駕馭也不會手忙腳亂。其次還是同尺寸配置更高的自主品牌車型越來越多,產品競爭力也越來越強,CX70真該升級換代了。

長安CS35

指導價:7.89-9.89萬

11月銷量:13902輛

2012年10月底上市至今4年過去了,CS35外觀就沒有改變過,不斷優化的小細節包括內飾的變化,好開的手動車型,易用舒適的駕駛體驗乃至各種實用的配置,讓CS35即使面對後來者哈弗H2、瑞風S3雖然銷量有所下降但依然有着不錯的成績。

長安CS15

指導價:5.79-7.79萬

11月銷量:10430輛

看完CS15你會明白,為什麼CS35沒有進行外觀改款了—兩款車車身尺寸相當,CS15價格還便宜些,雖然從型號來說跟CS35相差了20代(CS15→ CS35,開玩笑的)但其實對於真正買車的用戶來說他們差別真的是價格和配置了。CS15還有望搭載1.0T發動機,配合DCT雙離合變速箱,能爆發出最多功率82千瓦和170牛·米的最大扭矩,相比2016年頭髮布車型上那套1.5L發動機的78.5最大功率和145牛·米最大扭矩,動力強勁不少。11月份CS15銷量也突破了1萬輛。自動擋車型的上市也直接提高長安CS15銷量,畢竟擁堵的城市路況駕駛自動擋更加舒適,年輕消費群體也更愛自動擋車型。

悅翔(系列)

指導價:4.69(V3)-8.69萬(V7)

11月銷量:10263輛

長安悅翔系列可謂是國產轎車中不錯的車型,美編身邊也有幾個朋友在用,相比艾瑞澤5和新遠景來說,這個車系特點是保留了長安一貫以來皮實耐用的特點,手動擋車型即使是女司機也能很好駕馭。

逸動

指導價:8.09-24.99萬

11月銷量:10571

相比皮實耐用的悅翔來說,逸動更經典老道的外形,以及勉強夠用的配置,很大程度上限制了銷量增長,所以本月逸動銷量同比下跌了33%。或許長安應該向最近頻繁曝光的吉利學習,提高更新換代的速度以及新增多些配置,至少能讓人覺得誠意滿滿。但整體來說逸動綜合能力並不差。

11月,長安汽車旗下已經有8款車型銷量過萬,這個成績也相當不錯。希望長安汽車加緊對新車型的開發,趁着市場反應熱烈推出CS95這樣的重量級車型,其次在轎車市場多增加配置乃至像奔奔mini那樣提供越級的換擋撥片,應該可以更好刺激目前成熟的消費市場,畢竟作為老牌車企,相信長安的技術儲備還是很驚人的。

我是一條細長的分割線

難怪長城這麼积極的公布銷量數據,因為H6在11月份的銷量竟然為70292台,七萬多台是什麼概念啊,抵得上一些小廠一年的總銷量了。除了H6之外,H2、H7的銷量也算是爆表了。而且今年長城的累計銷量已經達到了92萬輛,距離2017年還有一個月,長城今年完成百萬銷量的目標應該是板上釘釘的事情。下面我們開始對重點車型點評。

哈弗H6

指導價:8.88-16.28萬

11月銷量70292輛

10月份H6的銷量為56667輛,那時候我和朋友們都在討論,這應該就是最高了,就算以後藉著購置稅結束的大潮,它也不會增長太多了。萬萬沒想到啊,一個月之後就被打臉了,今年1-11月哈弗H6已經累銷售50萬零188輛,同比增長51.26%,這也就意味着,就算12月份H6的銷量為0(開玩笑這當然是不可能的),也不能阻止H6成為中國SUV的銷量冠軍,作為中國乃至世界上銷量最好的SUV,H6的銷量神話將會被人傳頌。

如果把H6比作一個人的話,那麼H6絕對是個“人精”,無論外在內在都在不停變化適應各種人群,眾口難調在H6身上真的是個反面例子,因為到目前為止,算上H6藍標、紅標運動版以及H6 Couple、H6升級版,就是在產在銷的車型,已經達到了63款!加上停售車型,市面上能夠買到的哈弗H6已經有85款,實在誇張!

所以H6銷量有這樣的銷量是完全有基礎的,例如H6 coupe它和H6完全不是同一台車,但是它的銷量也會被統計在H6的銷量範圍之內。據估計H6 coupe月銷量佔H6銷量的20%-30%。

哈弗H7

指導價:14.98-19.38萬

11月銷量10105輛

H8、H9的上市問題產能問題等導致兩個好数字的產品銷量表現不佳,但H7很快就邁進萬輛俱樂部,也許能讓長城在中型SUV身上看到了希望。比起H6高達七萬多輛的銷量,H7的萬台銷量的意義一點也不小。

15萬-20萬元這個價位區間一直被合資把持着,被稱為自主品牌難以逾越的天花板,而H7的定價正是位於這個區間,並且取得了初步的成功,這個成功不僅對於長城,甚至對於整個自主品牌都是極大的鼓勵。

H7+H7L,7座+5座,同時還有豐富的配置,超高的顏值,精緻的內飾,實惠的價格,所以H7也取得了很好的銷量,H7L的車身尺寸4900*1925*1785mm,軸距為2850mm,這樣H7L看起來更加大氣,當GS8宣稱要做同級別標杆的時候,H7的銷量已經上萬了。所以就現在而言,H7算是國內首款比較成功的中型SUV。

哈弗H2

指導價:8.68-12.88萬

11月銷量26039輛

H2目前也是哈弗最成功的車型之一,雖然兩萬多的銷量沒有辦法和自己大哥H6的銷量比,但是和“外人”比起來,26039輛銷量也是非常成功的。H2是美編比較喜歡的一款車型,雖然H6看着感覺更實惠,但是比起H6,我更願意選擇H2。同時伴隨着H2s的上市,H2的銷量還會走高。

哈弗H5

指導價:9.48-16.38萬

11月銷量2082輛

H5的銷量比較穩定,這車其實說配置也勉強夠用,幾乎萬年不變的外觀真的沒什麼特別。這樣的銷量一是和它越野的定位有關係,另外就是H5全系是2.0L和2.0T發動機,不會受到購置稅優惠的影響。其實H5絕對是哈弗裏面性價比最高的車型之一,非承載式車身+分時四驅,有一定的越野能力,但是價格卻比較實惠。

哈弗H8

指導價:18.88-25.68萬

11月銷量676輛

哈弗H8是一款銷量不高的車型。不過H8雖然銷量不高,畢竟這是哈弗走向高端的第一步,間接的拉升了哈弗的品牌形象,同時為H7的成功積累了不少經驗。

至於長城的轎車,也沒啥好說的,除了能在路上看到幾年前的C30之外,C50幾乎很難在市面上看得到,變成了一台限量版車型。因為長城SUV的重心傾斜,轎車已經被邊緣化了…..

我是一條細長的分割線

和國內“偏科生”哈弗不一樣的是,吉利屬於那種體美勞全面發展、各項素質綜合能力都比較好的學生,吉利在11月的銷量首次突破10萬輛大關,轎車和SUV均衡發展,其中有6款車型月銷量上萬。

吉利11月份的總銷量為102422輛,去年同期為51367,同比增長99.4%,銷量幾乎翻倍。旗下主力車型個個生龍活虎的,銷量增長很快。

帝豪

指導價:6.98-24.98萬

11月份銷量28842輛

帝豪11月銷量28842輛,10月份的銷量25015輛,9月份的銷量20198輛,每月3000-5000輛增幅很嚇人,自主轎車能拿出將近3萬輛的銷量,實在驚天地泣鬼神。我們都知道自主轎車在和合資轎車的對抗中,幾乎全軍覆沒,像朗逸、軒逸、福睿斯、英朗等這些合資轎車,月銷三萬台以上都不是什麼難事。

但是自主轎車月銷量能上萬的車型目前也只有帝豪、逸動、艾瑞澤5、遠景、比亞迪F3等,不過這些車子的月銷量僅僅在在萬台以上,要知道三五十萬的奧迪A6L、寶馬5系也能月銷上萬啊!轎車前10的銷量幾乎沒有自主轎車。

因轎車競爭太激烈,合資轎車價格下壓的太狠,幾乎是密不透風的車型定位,自主品牌的轎車生存壓力太大、所以自主品牌在轎車領域的投入也就較少,導致轎車領域自主品牌呼聲越來越低。不過帝豪的熱賣讓自主轎車的旗幟重新立起,在合資車型上不至於全軍覆沒。畢竟有着幾年歷史的帝豪口碑很不錯,所以得到了大家的熱捧。

博越

指導價:9.88-15.78萬

11月份銷量18402輛

博越11月銷量18402輛,10月銷量16779輛,9月銷量14053輛,8月銷量10130輛,可以看出來博越隨着產能的逐步釋放,銷量也在穩步上升。作為現階段自主品牌中綜合實力最強的SUV之一,博越的熱銷是板上釘釘的事情。

不過還是因為吉利產能的限制,導致吉利旗下的博越也是不能按時交車,等車是家常便飯,甚至還出現了變相加價的行為,如果吉利可以儘快把產能問題解決了,那麼博越的銷量還會更高。

遠景SUV

指導價:7.49-10.19萬

11月份銷量10942輛

其實遠景SUV從公布售價的時候就註定了銷量不會太差,因為7.49萬元的起售價。還標配ESp、上坡輔助、陡坡緩降、真皮方向盤、日間行車燈等,同時車內空間足夠大,動力系統也比較可靠,底盤調教也很過關,所以月銷上萬不是夢。

帝豪GL

指導價:7.88-11.38萬

11月份銷量10010輛

作為吉利3.0時代的重要作品之一,帝豪GL不負眾望,這款被大家普遍看好的車型找到了它應該處於的位置,達到了上萬的水準。GL憑藉較大的車身,更高的顏值,更寬裕的乘坐空間,取得了不錯的成績。

另外還有遠景轎車、帝豪GS和博瑞,都有着不錯的表現。而且現在吉利的產能也特別吃緊,訂單甚至都排到了兩三個月開外了,所以只要吉利能把產能問題解決了,銷量還會進一步走高,畢竟國內的汽車市場容量真的是太大了。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

分類
發燒車訊

9.6萬起國內才有的合資車 為什麼更值得買?

價格低、配置挺高、空間也比較夠用,所以綜合實力不錯。廣汽本田-凌派指導價:10。98-14。98萬凌派採用了1。8L i-VTEC發動機,這款機型在本田的其他車型上已經服役多年,供油方式是多點電噴,雖然是這樣,但是它的動力輸出一點不差,也很耐用。

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

分類
發燒車訊

爆款SUV的兩個小兄弟之間有什麼區別?

藍標版本的H2除了前臉的進氣格柵造型不太同,保留了藍標哈弗家族的多邊形大嘴以外,整體設計語言與紅標版本保持一致,都給人以一種偏向穩重厚實的形象。內飾:新創意VS家族風哈弗H2s的內飾設計元素源自手風琴,初次見到這款內飾的時候會覺得這不是哈弗品牌,儘管方向盤是四幅式,但別緻的造型也不會使得哈弗H2s的內飾看上去老氣,相反更具有一種時尚和個性。

哈弗H2s與H2到底啥關係?

月銷七萬多輛哈弗H6的哈弗品牌顯然不太滿足僅憑藉一款車打天下,哈弗最近出了一款名為H2S的小型SUV,作為哈弗H2的“兄弟車型”,此車一出,很多網友在後台給小編留言,問這車是不是H2的改款車型,與現款的哈弗H2之間應該如何抉擇?今天就帶着疑問,給各位有意向於哈弗H2和H2S兩款車之間的朋友進行一番解答。

哈弗H2s

指導價格:8.38-10.28萬

H2s是否就是哈弗H2的改款?相信這是大家最為關心的問題,小編在這裏明確回答,哈弗H2s並不是H2的改款,而是一款完全獨立開發的全新小型SUV。

而且哈弗H2s的設計團隊可謂是來頭不小,它的設計總監pierre Leclercq,曾負責設計第一代寶馬X6和第二代寶馬X5,現在任職長城汽車全球設計總監。pierre入駐長城汽車,也有望在以後的日子里提升哈弗品牌的車型整體設計水平。

外觀:H2S更顯年輕

H2s的外觀設計靈感源自2015年上海車展哈弗品牌發布的Concept B以及Concept R兩款概念車型,而實車誕生之後我們可以看出哈弗H2s在概念車的還原程度上保留了相當高的水平。

無論是紅標版本抑或是藍標版本,哈弗H2s都显示出了一種時尚感非常充沛的視覺感受。藍標版本使用了更多銳利的角度與線條,讓整個前臉顯得非常具有攻擊性。而紅標版則用了更加粗壯的風格,提升了整車的力量感。

而哈弗H2的外觀則顯得與自家銷量王者H6十分的相近,紅標版H2外觀敦實圓潤,整體看上去四平八穩,不仔細分辨的話乍一眼看上去就像是一台小了半號的H6。

藍標版本的H2除了前臉的進氣格柵造型不太同,保留了藍標哈弗家族的多邊形大嘴以外,整體設計語言與紅標版本保持一致,都給人以一種偏向穩重厚實的形象。

內飾:新創意VS家族風

哈弗H2s的內飾設計元素源自手風琴,初次見到這款內飾的時候會覺得這不是哈弗品牌,儘管方向盤是四幅式,但別緻的造型也不會使得哈弗H2s的內飾看上去老氣,相反更具有一種時尚和個性。

哈弗H2的話或許會顯得比較平淡,平直簡練的線條設計與哈弗家族汽車產品非常相近,沒有過多的亮點可言。但是這種設計也有一種好處,便是可以有着非常廣泛的接受人群,可以輕鬆的做到老少咸宜。

空間&動力:差別都不大

同樣是定位於小型SUV,哈弗H2s與哈弗H2使用了同一台1.5T渦輪增壓發動機,最大馬力150匹,峰值扭矩210牛米。但值得一提的是,在哈弗H2s身上搭載的是一套來自格特拉克的7速濕式雙離合變速箱,在這個價位來說使用7速雙離合的車型少之又少,看得出來長城汽車這次挺捨得下本的。

哈弗H2s車身尺寸為4416*1772*1638mm,軸距2550mm而哈弗H2的三圍尺寸為4335*1814*1695mm軸距為2560mm;兩台車的尺寸可謂是半斤八兩,在乘坐空間上,後排表現都屬於比較局促的類型。

購買建議:考慮小型SUV的消費者一般來說對於乘坐空間的訴求並不會特別嚴苛,個人推薦可以考慮最新出的H2s,從設計角度和配件供應角度來看,哈弗H2s將有可能成為哈弗品牌的轉型之作。

加之哈弗品牌一貫而為之的內飾用料比較厚道的做法,哈弗H2s給人的印象高檔感並不差,頂配車型不過是十萬出頭的價格,可以說也符合當下大多數人購車的預算。

全文總結:本次對比主要是為了解答眾多人的問題,那就是哈弗H2s與哈弗H2是彼此間獨立的關係。

而且,從哈弗H2s的推出以及哈弗高端子品牌WEY的發布可以看出,未來哈弗將會進一步優化和豐富產品線布局。相信憑藉這強大的設計團隊和合理的市場定位,未來哈弗爆款的車型將不會僅僅只有哈弗H6一款。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※推薦台中搬家公司優質服務,可到府估價

分類
發燒車訊

顏值 動力 舒適 操控 這些十多萬的車子都可以滿足你

6L 110馬力、1。2T 110馬力、1。4T 131馬力和1。4T 150馬力,匹配5擋手動和6擋手自一體和7擋雙離合變速箱。1。6L車型的高爾夫和1。6L的308S一樣,都是保守的選擇。1。2T和1。4T車型的雙離合變速箱相對於308S的6AT來說,換擋更快,油耗表現更好,同時提速也很好,駕駛感受非常不錯,要不然也不會賣的那麼好了。

其實買了車開的最多的還是自己,所以一台車有一個比較好的操控確實是駕駛者的福音。作為一個熱血青年,給你一台“老年車”軒逸,那底盤你怎麼能忍受的了?

所以今天小編給大家介紹幾款不但有一些駕駛激情,同時家人坐着也會比較舒服的車子。可以說即爽了自己,同時又能很好的保證家人乘坐的舒適性。

東風標緻-標緻308S

11.27-17.97萬

308S的車身尺寸為4255*1820*1480mm,軸距為2620mm。屬於標準的緊湊型兩廂車,和同級別轎車比起來,寬度尺寸較大,長度和高度差別較小,所以308S看起來比較低矮。308S車頭大燈組看起來炯炯有神,車身側面比較簡介,腰線利落,營造出動感的效果。

308S的動力系統為1.6L 117馬力/1.2T 136馬力+5擋手動/6擋手自一體,1.6T 167馬力+6擋手自一體。保守的選擇就是1.6L車型,雖然動力表現一般,但是好在底盤還是特別紮實。

1.6T車型絕對是最推薦的,動力十足,油耗很低,發動機是標緻的明星發動機。很多主力車型都有它的身影,1.6T車型目前也有着一兩萬的優惠,目前來看這款車還是不錯的。另外308S的底盤向舒適性做出了一些妥協,乘坐起來並不會感到很顛簸。

一汽-大眾-高爾夫

12.19-23.99萬

普通高爾夫的車身尺寸為4255*1799*1452mm,軸距為2637mm,GTI車型就不做過多介紹,銷量很少。高爾夫的外觀和308S差不多,都是看起來很緊湊的兩廂車,不同的就是308S看起來更柔美,高爾夫則更陽剛。

高爾夫的發動機為1.6L 110馬力、1.2T 110馬力、1.4T 131馬力和1.4T 150馬力,匹配5擋手動和6擋手自一體和7擋雙離合變速箱。1.6L車型的高爾夫和1.6L的308S一樣,都是保守的選擇。

1.2T和1.4T車型的雙離合變速箱相對於308S的6AT來說,換擋更快,油耗表現更好,同時提速也很好,駕駛感受非常不錯,要不然也不會賣的那麼好了。雖然大眾的定價更高,但是優惠也更大,綜合下來和308S差不多。

長安馬自達-馬自達3 昂克賽拉

11.49-15.99萬

兩廂版的昂克賽拉車身尺寸為4461*1795*1474mm,三廂版的車身尺寸為4582*1795*1458mm,軸距同為2700mm。 昂克賽拉的外觀自然不必介紹,絕對是數一數二的。單憑這外觀就會有很多人買單的。

昂克賽拉的動力系統為1.5L 117馬力+6擋手動和6擋手自一體,2.0L 158馬力+6擋手自一體。以前經常有人唱衰昂克賽拉,覺得它小眾,價格貴,優惠少,註定不會熱銷。但是實力強的选手總會發光的。

目前昂克賽拉的月銷量穩穩在萬台以上,可以說最終還是得到了大家的肯定,和本田地球夢不同的是,昂克賽拉的創馳藍天技術更多的是側重整個車子,所以昂克賽拉駕駛起來很容易就達到了人車合一的狀態,開起來非常順手。不過昂克賽拉,最好還是買2.0L車型。

總結:308S和高爾夫的底盤都很紮實,高速穩定性很好,雖然308S實力也很強,但是就是銷量被高爾夫完虐,所以說308S只要再加大優惠力度銷量肯定會不錯的。昂克賽拉算是比較另類的日本車,非常強調駕控樂趣,雖然底盤沒辦法和它倆比,但是駕駛感受卻非常不錯。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

網頁設計最專業,超強功能平台可客製化

分類
發燒車訊

潤滑油巨頭強勢發布——雪佛龍金富力

產品在抗腐蝕和抗磨損性,減少油泥與積碳,提升發動機性能和燃油經濟性這幾大方面均優於潤滑油行業最嚴格的標準。新品系列也採用了針對中國市場度身定製的配方和技術,滿足中國消費者對潤滑油產品的更高要求。”雪弗龍在發布會上展示產品的測試結果显示:金富力機油提供卓越的抗磨損保護和抗腐蝕保護,分別比ApI標準高出80%與90%。

2016年12月8日,世界500強、世界領先的一體化能源企業雪弗龍,在浙江嘉興舉行了旗下金富力品牌全系潤滑油的新品發布會。

這次發布會上,雪弗龍為消費者帶來了金富力全新系列產品,包括金富力全合成潤滑油、金富力合成型潤滑油及金富力方程式潤滑油三種。

雪弗龍金富力在此次新品發布會主推油泥防禦盾™技術,雪佛龍(中國)投資有限公司產品技術專家,王琴女士表示:“因為雪佛龍是一家比較獨特的潤滑油生產商,它是目前全球為數不多的一家既有既具備基礎油生產能力,又具備添加劑生產能力的潤滑油生產廠商。所以在研發方面,雪佛龍一直都是比較領先的。而油泥防禦盾™是雪佛龍獨有的科技,它給消費者帶來最大的好處,第一個就是保護性能很強,它能夠很好地防止發動機內部磨損,保護髮動機。另外它能夠延長發動機的使用壽命,因為金富力的抗氧化性能很好,在整個潤滑油的使用過程中,它都能像新油一樣保護髮動機。最後油泥防禦盾™也能很好地提高發動機的燃油經濟性。”

發布會上,雪佛龍潤滑油亞太區技術專家,Joyce女士介紹到:“此次上市的雪佛龍金富力全系產品,擁有包括油泥防禦盾
TM科技在內的很多創新技術。產品在抗腐蝕和抗磨損性,減少油泥與積碳,提升發動機性能和燃油經濟性這幾大方面均優於潤滑油行業最嚴格的標準。新品系列也採用了針對中國市場度身定製的配方和技術,滿足中國消費者對潤滑油產品的更高要求。”

雪弗龍在發布會上展示產品的測試結果显示:金富力機油提供卓越的抗磨損保護和抗腐蝕保護,分別比ApI標準高出80%與90%。在減少機油濾網上的油泥方面,金富力機油的性能比GM Dexos1標準要求高出 10%。採用油泥防禦盾配方的金富力機油的粘度保持性能比GM Dexos1 標準所要 求的高出70%。

雪佛龍一直秉承着專業的研發態度,追求精湛的工藝,力求將產品做到極致。這次發布會上新產品,針對中國消費習慣與獨特的路況問題,提出了可行性的解決方案,為打開中國市場做好鋪墊。隨着雪佛龍金富力的發布,雪佛龍將為中國消費者及合作夥伴帶來全球領導的品牌,一流的產品。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※超省錢租車方案

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

※推薦台中搬家公司優質服務,可到府估價

分類
發燒車訊

Oracle數據遷移後由列的直方圖統計信息引起的執行計劃異常

(一)問題背景

在使用impdp進行數據導入的時候,往往在導入表和索引的統計信息的時候,速度非常慢,因此我在使用impdp進行導入時,會使用exclude=table_statistics排除表的統計信息,從而加快導入速度,之後再手動收集統計信息。

                                              圖.impdp導入數據的時導入統計信息速度非常慢

導入語句如下:

impdp user/password directory=DUMPDIR dumpfile=TEST01.dmp logfile=TEST01.log remap_schema=TEST_USER:TEST_USER123 exclude=table_statistics

手動收集統計信息語句如下:

EXEC dbms_stats.gather_table_stats(ownname => 'LIJIAMAN',tabname => 'TEST01');

最近使用以上方法將數據還原到測試環境后,發現與生產環境執行計劃存在偏差,本來應該走全表掃描的,卻走了索引範圍掃描。經過確認,是由於列的直方圖統計信息未收集引發的執行計劃偏差。


(二)列的直方圖統計信息

什麼是列的直方圖統計信息呢?在Oracle數據庫中,Oracle默認列上的值是在最小值與最大值之間均分佈的,當在計算cardinatity時,會以均勻分佈的方式計算,但是在實際生活中某些場景下數據並非均勻分佈。舉個列子,某公司有員工10000人,表A的列COL1記錄員工的績效(分別是:A、B、C、D,A最好,D最差),那麼可能A佔了15%,B佔了60,C佔了20%,D佔了5%。很明顯在該場景下數據並非均勻分佈,假如以均勻分佈的方式去統計員工的績效,可能會導致執行計劃失准。

當列的數據分佈不均勻的時候,就需要統計列上的數據分佈情況,從而走出正確的執行計劃,列的直方圖統計信息就是記錄列上的數據分佈情況的。


(三)異常模擬

STEP1:創建測試表test01

create table test01
(id number,
name varchar2(10)
);
create index idx_test01_id on test01(id);

向test01中插入測試數據

begin
insert into test01 values(1,'a');

for i in 1..10 loop
insert into test01 values(2,'b');
end loop;

for i in 1..100 loop
insert into test01 values(3,'c');
end loop;

for i in 1..1000 loop
insert into test01 values(4,'d');
end loop;

commit;
end;

查看數據分佈情況:

SQL> SELECT ID,NAME,COUNT(*) FROM test01 GROUP BY ID,NAME ORDER BY COUNT(*);

ID          NAME       COUNT(*)
---------- ---------- ----------
1           a          1       
2           b          10
3           c          100
4           d          1000


STEP2:收集統計信息,因為上面查詢過id列,故在收集統計信息的時候,會收集直方圖的統計信息

EXEC dbms_stats.gather_table_stats(ownname => 'LIJIAMAN',tabname => 'TEST01');

查看是否已經收集了直方圖信息,發現id列上已經收集

SQL> SELECT a.OWNER,a.TABLE_NAME,a.COLUMN_NAME,a.LOW_VALUE,a.HIGH_VALUE,a.NUM_BUCKETS,a.HISTOGRAM
2 FROM dba_tab_columns a
3 WHERE a.OWNER = 'LIJIAMAN' AND a.TABLE_NAME = 'TEST01';

OWNER     TABLE_NAME   COLUMN_NAME   LOW_VALUE     HIGH_VALUE    NUM_BUCKETS   HISTOGRAM
--------- -----------  ------------  ------------  ------------  -----------  ---------------
LIJIAMAN  TEST01       ID            C102          C105          4             FREQUENCY
LIJIAMAN  TEST01       NAME          61            64            1             NONE

查看直方圖,已經將id列的4個值放入了4個bucket中:

SQL> SELECT * FROM dba_tab_histograms a WHERE a.OWNER = 'LIJIAMAN' AND a.TABLE_NAME = 'TEST01';

OWNER        TABLE_NAME    COLUMN_NAME    ENDPOINT_NUMBER    ENDPOINT_VALUE ENDPOINT_ACTUAL_VALUE
-----------  ------------  -------------  ---------------    -------------- ----------------------
LIJIAMAN     TEST01        ID                           1                 1 
LIJIAMAN     TEST01        ID                          11                 2 
LIJIAMAN     TEST01        ID                         111                 3 
LIJIAMAN     TEST01        ID                        1111                 4 
LIJIAMAN     TEST01        NAME                         0    5.036527952778 
LIJIAMAN     TEST01        NAME                         1    5.192296858534


STEP3:查看id=1和id=4的執行計劃,當id=1時,走索引範圍掃描,當id=4時,走全表掃描

id列存在直方圖統計信息,當id=1時,走索引範圍掃描 id列存在直方圖統計信息,當id=4時,走全表掃描
SELECT * FROM test01 WHERE ID=1

 Plan Hash Value  : 1151852672 

----------------------------------------------------------------------------------------
| Id  | Operation                     | Name          | Rows | Bytes | Cost | Time     |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |               |    1 |     5 |    2 | 00:00:01 |
|   1 |   TABLE ACCESS BY INDEX ROWID | TEST01        |    1 |     5 |    2 | 00:00:01 |
| * 2 |    INDEX RANGE SCAN           | IDX_TEST01_ID |    1 |       |    1 | 00:00:01 |
----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
------------------------------------------
* 2 - access("ID"=1)
SELECT * FROM test01 WHERE ID=4

 Plan Hash Value  : 262542483 

-----------------------------------------------------------------------
 | Id  | Operation           | Name   | Rows | Bytes | Cost | Time     |
-----------------------------------------------------------------------
 |   0 | SELECT STATEMENT    |        | 1000 |  5000 |    3 | 00:00:01 |
 | * 1 |   TABLE ACCESS FULL | TEST01 | 1000 |  5000 |    3 | 00:00:01 |
-----------------------------------------------------------------------

Predicate Information (identified by operation id):
 ------------------------------------------
 * 1 - filter("ID"=4)

STEP4:接下來模擬數據遷移,排除統計信息

導出表test01

expdp lijiaman/lijiaman directory=DUMPDIR tables=LIJIAMAN.TEST01 dumpfile =test01.dmp

刪除原來的表:

SQL> drop table test01;
Table dropped

再次導入表,排除統計信息:

impdp lijiaman/lijiaman directory=DUMPDIR dumpfile =test01.dmp exclude=table_statistics

查看錶的統計信息,不存在統計信息:

SQL> SELECT   a.OWNER,a.TABLE_NAME,a.COLUMN_NAME,a.LOW_VALUE,a.HIGH_VALUE,a.NUM_BUCKETS,a.HISTOGRAM
   2  FROM     dba_tab_columns a
   3  WHERE    a.OWNER = 'LIJIAMAN' AND a.TABLE_NAME = 'TEST01';

OWNER          TABLE_NAME      COLUMN_NAME     LOW_VALUE    HIGH_VALUE   NUM_BUCKETS HISTOGRAM
 -------------- --------------- --------------- ------------ ------------ ----------- ---------------
 LIJIAMAN       TEST01          ID                                                    NONE
 LIJIAMAN       TEST01          NAME                                                  NONE

STEP5:手動收集統計信息

EXEC dbms_stats.gather_table_stats(ownname => 'LIJIAMAN',tabname => 'TEST01');

發現統計信息已經收集,但是不存在直方圖的統計信息

SQL> SELECT   a.OWNER,a.TABLE_NAME,a.COLUMN_NAME,a.LOW_VALUE,a.HIGH_VALUE,a.NUM_BUCKETS,a.HISTOGRAM
  2  FROM     dba_tab_columns a
  3  WHERE    a.OWNER = 'LIJIAMAN' AND a.TABLE_NAME = 'TEST01';

OWNER     TABLE_NAME  COLUMN_NAME  LOW_VALUE   HIGH_VALUE  NUM_BUCKETS HISTOGRAM
--------- ----------- -----------  ----------- ----------- ----------- ---------------
LIJIAMAN  TEST01      ID           C102        C105                  1 NONE
LIJIAMAN  TEST01      NAME         61          64                    1 NONE

STEP6:再次查看id=1和id=4的執行計劃,當id=1或id=4時,都走索引範圍掃描

id列未收集直方圖統計信息,當id=1時,走索引範圍掃描 id列未收集直方圖統計信息,當id=4時,走索引範圍掃描
SELECT * FROM test01 WHERE ID=1
 Plan Hash Value  : 1151852672 

----------------------------------------------------------------------------------------
| Id  | Operation                     | Name          | Rows | Bytes | Cost | Time     |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |               |  278 |  1390 |    2 | 00:00:01 |
|   1 |   TABLE ACCESS BY INDEX ROWID | TEST01        |  278 |  1390 |    2 | 00:00:01 |
| * 2 |    INDEX RANGE SCAN           | IDX_TEST01_ID |  278 |       |    1 | 00:00:01 |
----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
------------------------------------------
* 2 - access("ID"=1)
SELECT * FROM test01 WHERE ID=4

 Plan Hash Value  : 1151852672 

----------------------------------------------------------------------------------------
| Id  | Operation                     | Name          | Rows | Bytes | Cost | Time     |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |               |  278 |  1390 |    2 | 00:00:01 |
|   1 |   TABLE ACCESS BY INDEX ROWID | TEST01        |  278 |  1390 |    2 | 00:00:01 |
| * 2 |    INDEX RANGE SCAN           | IDX_TEST01_ID |  278 |       |    1 | 00:00:01 |
----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
------------------------------------------
* 2 - access("ID"=4)

STEP7:再次收集統計信息,因為使用過了id列作為查詢條件,故再次收集統計信息時,會收集id列的直方圖信息:

EXEC dbms_stats.gather_table_stats(ownname => 'LIJIAMAN',tabname => 'TEST01');

可以看到,此時已經收集了id列的直方圖統計信息:

SQL> SELECT   a.OWNER,a.TABLE_NAME,a.COLUMN_NAME,a.LOW_VALUE,a.HIGH_VALUE,a.NUM_BUCKETS,a.HISTOGRAM
  2  FROM     dba_tab_columns a
  3  WHERE    a.OWNER = 'LIJIAMAN' AND a.TABLE_NAME = 'TEST01';

OWNER                          TABLE_NAME                     COLUMN_NAME                    LOW_VALUE     HIGH_VALUE    NUM_BUCKETS HISTOGRAM
------------------------------ ------------------------------ ------------------------------ ------------- ------------- ----------- ---------------
LIJIAMAN                       TEST01                         ID                             C102          C105                    4 FREQUENCY
LIJIAMAN                       TEST01                         NAME                           61            64                      1 NONE

執行計劃已經按照我們想要的方式走:

id列重新收集直方圖統計信息,當id=1時,走索引範圍掃描 id列重新收集直方圖統計信息,當id=4時,走全表掃描
SELECT * FROM test01 WHERE ID=1

 Plan Hash Value  : 1151852672 

----------------------------------------------------------------------------------------
| Id  | Operation                     | Name          | Rows | Bytes | Cost | Time     |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |               |    1 |     5 |    2 | 00:00:01 |
|   1 |   TABLE ACCESS BY INDEX ROWID | TEST01        |    1 |     5 |    2 | 00:00:01 |
| * 2 |    INDEX RANGE SCAN           | IDX_TEST01_ID |    1 |       |    1 | 00:00:01 |
----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
------------------------------------------
* 2 - access("ID"=1)
SELECT * FROM test01 WHERE ID=4

 Plan Hash Value  : 262542483 

-----------------------------------------------------------------------
| Id  | Operation           | Name   | Rows | Bytes | Cost | Time     |
-----------------------------------------------------------------------
|   0 | SELECT STATEMENT    |        | 1000 |  5000 |    3 | 00:00:01 |
| * 1 |   TABLE ACCESS FULL | TEST01 | 1000 |  5000 |    3 | 00:00:01 |
-----------------------------------------------------------------------

Predicate Information (identified by operation id):
------------------------------------------
* 1 - filter("ID"=4)

(四)總結

在使用expdp/impdp進行導出/導入數據的時,統計信息是非常重要的,對於大部分統計信息,我們可以在導入結束之後收集獲得。但是對於列的直方圖統計信息,Oracle默認收集的方式是auto,即Oracle會根據用戶對列的使用情況進行判斷是否收集直方圖統計信息,然而數據剛遷移完成,在表還未使用的情況下收集統計信息,往往收集不到列的直方圖信息,這就造成了執行計劃異常,這種情況通常在下一次收集統計信息之後會有所改變。

參考文檔:

DBMS_STATS With METHOD_OPT =>’..SIZE auto’ May Not Collect Histograms (Doc ID 557594.1)

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

網頁設計最專業,超強功能平台可客製化

※回頭車貨運收費標準

分類
發燒車訊

德國啟用新燃煤電廠 環保人士火大

摘錄自2020年5月28日中央社報導

德國將於30日讓一座最新的燃煤電廠投入營運,激怒環保人士。環保人士認為,這會打亂德國削減二氧化碳排放的努力。

德國能源大廠Uniper發言人透過電郵證實,Datteln-4燃煤電廠將於30日根據商用條款為電網供電。造價13億美元的這座電廠延遲九年商轉且超出預算,原因在於諸多缺失而遲無法與電網連結。

這座電廠也引發對德國燃煤發電退場的激烈爭辯。德國目前仍有近半供電靠燃煤,總理梅克爾去年達成一項協議,要讓德國在2038年以前完全汰除燃煤,但允許Datteln-4電廠啟用。

德國「商務日報」(Handelsblatt)報導,聯邦政府與北萊茵-西發利亞邦(North Rhine-Westphalia)均強調會以關閉老舊電廠來換取Datteln-4電廠營運,讓整體碳排維持不變。

能源議題
能源轉型
國際新聞
燃煤電廠

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準