HANA Alert “Alert Timer fallback”
更新時間:
問題描述
您在SAP HANA studio或者HANA trace文件中看到有“HANA timer uses fallback to system timer"的alerts,并且你的SAP HANA的版本是2.0 SPS04及以上。
SAP HANA studio中alert類似如下:
適用于
- 安裝部署了SAP HANA 2.0 SPS04及以上版本的ECS實例。
影響和限制
- SAP HANA需要將機器的計數器設置為TSC(時間戳計數器),否則可能會出現顯著的性能下降。請參考2753418 - Potential Performance Degradation Due to Timer Fallback
- 您必須重新啟動SAP HANA實例才能使更改生效,因為SAP HANA只有在啟動時才會檢查計時器。
- 變更前強烈建議做好備份,您可以參考單塊云盤快照或者多個云盤快照。如果您已經購買了HBR產品服務,可以使用創建ECS整機備份。
解決方案
從SAP HANA 2.0 SPS04開始,會檢查CPU是否支持RDTSCP指令,以及是否設置了constant_tsc和nonstop_tsc。在Intel平臺上,系統時鐘源會檢查
/sys/devices/system/clocksource/clocksource0/current_clocksource
和/sys/devices/system/clocksource/clocksource0/available_clocksource
的配置。其中current_clocksource必須設置為tsc,available_clocksource需要包含tsc。以下以SAP HANA 2.0 SPS04高可用環境為例描述操作流程:- 在任意節點上執行以下命令,將集群設置為維護模式。
說明:單機環境請直接跳至步驟2。
crm configure property maintenance-mode=true
設置成功后,執行以下命令,確認所有資源都是unmanaged狀態。crm_mon -r
系統顯示類似如下。
說明:如果還有沒被unmanaged的資源,需要手工將其設置成unmanaged,命令語法如下:
crm resource maintenance <resource name> true
例如,手工設置圖中HANA HDB的資源的命令如下:crm resource maintenance rsc_SAPHana_HDB true
- 執行以下命令,停止集群服務。
systemctl stop pacemaker
- 按順序停止SAP應用和數據庫服務。
- 登錄集群中的一個節點,執行以下命令,確認當前時鐘源。
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock說明:如果當前時鐘源已經是tsc,說明時鐘源設置已經符合SAP的要求,您無需繼續下面的操作。
- 依次執行以下命令,確認可用的時鐘源,且包含tsc。
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock tsc acpi_pm - 執行以下命令,將當前時鐘源設置為tsc。
sudo bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'
- 運行demsg查看內核日志。
dmesg | less
- 設置成功則會顯示此消息。
clocksource: Switched to clocksource tsc
注意:如果ECS重啟,Linux 內核會重置時鐘源。
- 執行以下命令,配置系統自啟動設置時鐘源為tsc。
vim /etc/default/grub
并為GRUB_CMDLINE_LINUX選項添加clocksource=tsc tsc=reliable。GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200 clocksource=tsc tsc=reliable"
生成grub.cfg
文件。grub2-mkconfig -o /boot/grub2/grub.cfg
- 登錄阿里云ECS控制臺,重啟ECS。
- 重復步驟2~10,完成集群中另一個節點的操作。
- 在任意節點上,執行以下命令,關閉集群維護模式。
crm configure property maintenance-mode=false
- 執行以下命令,驗證集群服務。
crm_mon -r
系統顯示類似如下。
說明:如果在步驟1手動設置過某個資源的maintenance狀態為on,這里也需要手動將此資源的maintenance狀態設置回off,命令語法如下:
crm resource maintenance <resource name> false
相關文檔
文檔內容是否對您有幫助?