This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
优化 XenMobile® 操作
XenMobile 操作的性能和稳定性涉及 XenMobile 中的许多设置,并取决于您的 Citrix ADC 和 SQL Server 数据库配置。本文重点介绍管理员最常配置的、与 XenMobile 优化和调整相关的设置。Citrix 建议您在部署 XenMobile 之前评估本文中的每项设置。
重要提示:
这些指南假定 XenMobile Server 的 CPU 和 RAM 足以满足设备数量的需求。有关可伸缩性的更多信息,请参阅可伸缩性和性能。
以下服务器属性全局适用于整个 XenMobile 实例中的操作、用户和设备。某些服务器属性的更改需要重新启动每个 XenMobile Server 节点。XenMobile 会在需要重新启动时通知您。
这些优化指南适用于群集和非群集环境。
hibernate.c3p0.idle_test_period
此 XenMobile Server 属性(一个自定义密钥)确定连接自动验证之前的空闲时间(以秒为单位)。按如下方式配置密钥。默认值为 30。
- 密钥:Custom Key
- 密钥:hibernate.c3p0. idle_test_period
- 值:120
- 显示名称:hibernate.c3p0. idle_test_period
- 描述:Hibernate idle test period
hibernate.c3p0.max_size
此自定义密钥确定 XenMobile 可以打开到 SQL Server 数据库的最大连接数。XenMobile 使用您为此自定义密钥指定的值作为上限。仅在需要时才打开连接。根据数据库服务器的容量设置。
请注意群集配置中的以下等式。您的 c3p0 连接数乘以节点数等于 XenMobile 可以打开到 SQL Server 数据库的实际最大连接数。
在群集和非群集配置中,如果 SQL Server 配置不足,将值设置得过高可能会在高峰负载期间在 SQL 端导致资源问题。将值设置得过低意味着您可能无法利用可用的 SQL 资源。
按如下方式配置密钥。默认值为 1000。
- 密钥:hibernate.c3p0.max_size
- 值:1000
- 显示名称:hibernate.c3p0.max_size
- 描述:到 SQL 的数据库连接
hibernate.c3p0.min_size
此自定义密钥确定 XenMobile 打开到 SQL Server 数据库的最小连接数。按如下方式配置密钥。默认值为 100。
- 密钥:hibernate.c3p0.min_size
- 值:100
- 显示名称:hibernate.c3p0.min_size
- 描述:到 SQL 的数据库连接
hibernate.c3p0.timeout
此自定义密钥确定空闲超时。如果您使用数据库群集故障转移,Citrix 建议您添加此自定义密钥并将其设置为缩短空闲超时。默认值为 120。
- 密钥:Custom Key
- 密钥:hibernate.c3p0.timeout
- 值:120
- 显示名称:hibernate.c3p0.timeout
- 描述:数据库空闲超时
推送服务心跳间隔
此设置确定 iOS 设备检查 APNs 通知在此期间是否未送达的频率。增加 APNs 心跳频率可以优化数据库通信。值过大可能会增加不必要的负载。此设置仅适用于 iOS。默认值为 20 小时。
如果您的环境中有很多 iOS 设备,心跳间隔可能会导致比必要更高的负载。选择性擦除、锁定和完全擦除等安全操作不依赖此心跳。原因是当这些操作运行时,APNs 通知会发送到设备。
此值控制在 Active Directory 组员资格更改后策略更新的速度。因此,通常适合将此值增加到 12 到 20 小时之间,以减少负载。
iOS MDM APNS 连接池大小
过小的 APNs 连接池可能会在您拥有超过 100 台设备时对 APNs 活动性能产生负面影响。性能问题包括应用程序和策略部署到设备的速度变慢以及设备注册速度变慢。默认值为 1。我们建议您大约每 400 台设备将此值增加 1。
auth.ldap.connect.timeout
为了弥补 LDAP 响应缓慢的问题,Citrix 建议您添加以下自定义密钥的服务器属性。
- 密钥:Custom Key
- 密钥:auth.ldap.connect.timeout
- 值:60000
- 显示名称:auth.ldap.connect.timeout
- 描述:LDAP 连接超时
auth.ldap.read.timeout
为了弥补 LDAP 响应缓慢的问题,Citrix 建议您添加以下自定义密钥的服务器属性。
- 密钥:Custom Key
- 密钥:auth.ldap.read.timeout
- 值:60000
- 显示名称:auth.ldap.read.timeout
- 描述:LDAP 读取超时
其他服务器优化
| 服务器属性 | 默认设置 | 为何更改此设置? |
| Background Deployment | 1,440 分钟 | 后台策略部署的频率(以分钟为单位)。仅适用于 Android 设备的始终在线连接。增加策略部署的频率可减少服务器负载。建议设置为 1440(24 小时)。 |
| Background Hardware Inventory | 1,440 分钟 | 后台硬件清单的频率(以分钟为单位)。仅适用于 Android 设备的始终在线连接。增加硬件清单的频率可减少服务器负载。建议设置为 1440(24 小时)。 |
| Interval for check deleted Active Directory user | 15 分钟 | Active Directory 的标准同步时间为 15 分钟。值 0 可阻止 XenMobile 检查已删除的 Active Directory 用户。建议设置为 15 分钟。 |
| MaxNumberOfWorker | 3 | 导入大量批量购买许可证时使用的线程数。默认值为 3。如果需要进一步优化,可以增加线程数。但是,如果线程数较大(例如 6 个),批量购买导入会导致 CPU 使用率过高。 |
如何检查 SQL 数据库中的死锁并删除历史数据
当您看到死锁时,运行以下查询以查看死锁。然后,数据库管理员或 Microsoft SQL 团队可以确认信息。
SQL 查询
SELECT
db.name DB_Service,
tl.request_session_id,
wt.blocking_session_id,
OBJECT_NAME(p.OBJECT_ID) BlockedObjectName,
tl.resource_type,
h1.TEXT AS RequestingText,
h2.TEXT AS BlockingTest,
tl.request_mode
FROM sys.dm_tran_locks AS tl
INNER JOIN sys.databases db ON db.database_id = tl.resource_database_id
INNER JOIN sys.dm_os_waiting_tasks AS wt ON tl.lock_owner_address = wt.resource_address
INNER JOIN sys.partitions AS p ON p.hobt_id = tl.resource_associated_entity_id
INNER JOIN sys.dm_exec_connections ec1 ON ec1.session_id = tl.request_session_id
INNER JOIN sys.dm_exec_connections ec2 ON ec2.session_id = wt.blocking_session_id
CROSS APPLY sys.dm_exec_sql_text(ec1.most_recent_sql_handle) AS h1
CROSS APPLY sys.dm_exec_sql_text(ec2.most_recent_sql_handle) AS h2
GO
<!--NeedCopy-->
清理数据库
重要提示:
在更改表之前备份您的数据库。
-
运行以下查询以检查历史数据。
select COUNT(*) as total_record from dbo.EWDEPLOY_HISTO; select COUNT(*) as total_record from dbo.EWSESS; select COUNT(*) as total_record from dbo.EWAUDIT; <!--NeedCopy--> -
从前面三个表中删除数据。
注意:
您可能在表中看不到历史数据。如果是这样,请跳过运行该特定表的截断查询。
truncate TABLE dbo.EWDEPLOY_HISTO; truncate TABLE dbo.EWSESS; truncate TABLE dbo.EWAUDIT; <!--NeedCopy--> -
解除由于死锁而被阻止的 SELECT 查询。此步骤可解决进一步的死锁。
ALTER DATABASE <database_name> SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE <!--NeedCopy--> -
默认情况下,数据库清理为七天,用于保留会话保留和审计保留数据,这对许多用户来说很高。将清理值更改为 1 或 2 天。在服务器属性中,进行以下更改:
zdm.dbcleanup.sessionRetentionTimeInDays = 1 day zdm.dbcleanup.deployHistRetentionTimeInDays = 1 day zdm.dbcleanup.auditRetentionTimeInDays=1 day <!--NeedCopy-->
清理 KEYSTORE 表中的孤立项
如果 XenMobile 节点性能不佳,请检查 KEYSTORE 表是否过大。XenMobile Server 将注册证书存储在 ENROLLMENT_CERTIFICATE 和 KEYSTORE 表中。当您删除或重新注册设备时,ENROLLMENT_CERTIFICATE 表中的证书将被删除。KEYSTORE 表中的条目仍然存在,这可能会导致性能问题。执行以下过程以清理 KEYSTORE 表中的孤立项。
重要提示:
在更改表之前备份您的数据库。
-
运行以下查询以检查历史数据。
select COUNT(*) from KEYSTORE <!--NeedCopy--> -
使用以下查询检查 KEYSTORE 表中的孤立项。
WITH cte(KEYSTORE_ID) AS (SELECT KEYSTORE_ID FROM ENROLLMENT_CERTIFICATE UNION SELECT CA_KEYSTORE_ID FROM LDAP_CONFIG UNION SELECT CLIENT_KEYSTORE_ID FROM LDAP_CONFIG UNION SELECT KEYSTORE_ID FROM SAML_SERVICE_PROVIDER UNION SELECT KEYSTORE_ID FROM SERVER_CERTIFICATE) SELECT keystore.id FROM keystore LEFT JOIN cte ON keystore.id = cte.KEYSTORE_ID WHERE KEYSTORE_ID IS NULL; <!--NeedCopy--> -
使用以下查询清理孤立项。
WITH cte(KEYSTORE_ID) AS (SELECT KEYSTORE_ID FROM ENROLLMENT_CERTIFICATE UNION SELECT CA_KEYSTORE_ID FROM LDAP_CONFIG UNION SELECT CLIENT_KEYSTORE_ID FROM LDAP_CONFIG UNION SELECT KEYSTORE_ID FROM SAML_SERVICE_PROVIDER UNION SELECT KEYSTORE_ID FROM SERVER_CERTIFICATE) DELETE FROM keystore WHERE id IN ( SELECT keystore.id FROM keystore LEFT JOIN cte ON keystore.id = cte.KEYSTORE_ID WHERE KEYSTORE_ID IS NULL AND keystore.TYPE = 'X_509' ); <!--NeedCopy--> -
向 KEYSTORE 表添加索引以提高搜索效率。
DROP INDEX "KEYSTORE_NAME_IDX" ON "KEYSTORE"; ALTER TABLE "KEYSTORE" ALTER COLUMN "NAME" NVARCHAR(255) NULL; CREATE INDEX "KEYSTORE_NAME_IDX" ON "KEYSTORE"("NAME") INCLUDE ("ID", "TYPE", "CONTENT", "PASSWORD", "PUBLICLY_TRUSTED", "DESCRIPTION", "ALIAS", "MODIFICATION_DATE"); <!--NeedCopy-->
共享
共享
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.