服务器虚拟化与性能优化策略解析

44、一家大型企业计划部署一个新的客户关系管理(CRM)解决方案,该方案包括冗余的前端 Web 服务器、中间件服务器和数据库服务器。这些 CRM 组件中哪些应该进行虚拟化?请解释。

服务器虚拟化适用性分析

前端 Web 服务器

属于面向互联网的 Web 服务器 功能:可查询中间件系统或数据库 特点:适合虚拟化 理由:是虚拟化的良好候选者

中间件服务器

虚拟化条件:利用率不高 示例:未充分利用的独立应用服务器 特点:符合虚拟化条件

数据库服务器

通常不适合虚拟化 特点:繁忙的 I/O 密集型服务器 现状:可能已具有较高利用率 建议:初期更适合留在物理系统上

45、使用 SSH 通过网络运行一个 X 程序。使用 ssh -v 验证 X 转发是否正确设置。登录后 DISPLAY 变量设置为什么值?通过运行 xauth 列出 cookie 并验证该显示的魔法 cookie 认证是否激活。

登录后
DISPLAY
变量的值可能类似于
localhost:12.0
。可通过运行
xauth list
命令列出 cookie,示例中输出为:


x-client/unix:12 MIT-MAGIC-COOKIE-1 a54b67121eb94c8a807f3ab0a67a51f2

以此验证魔法 cookie 认证是否激活。

46、为什么要阻止互联网访问 Samba 服务器上的 137 – 139 和 445 端口?

阻止互联网访问这些端口是为了防止用户意外地通过互联网以明文形式下载文件,通常在网络防火墙级别实施该阻止措施。

47、设置一个 Samba 打印服务器,为其共享的所有打印机提供 Windows 打印机驱动程序。确保打印机具有合理的默认配置。

以下是设置步骤:

系统层面准备:
– 确保
printadm
账户存在并有权限访问 Samba。使用命令创建账户和设置密码:

sudo useradd printadm sudo smbpasswd -a printadm

– 创建并设置存储打印机驱动的目录结构:

sudo mkdir -p /var/lib/samba/printers sudo cd /var/lib/samba/printers sudo mkdir W32X86 WIN40 x64 sudo chown -R printadm .

配置
smb.conf
文件:
– 在
[global]
部分添加以下内容:

printer admin = printadm disable spoolss = no show add printer wizard = no guest ok = yes browseable = no

– 在
[print$]
部分添加以下内容:

comment = Printer Driver Area path = /var/lib/samba/printers browseable = yes guest ok = yes read only = yes write list = printadm

上传打印机驱动:
有两种方式:

从 Windows 客户端上传

在 Windows 的“开始 -> 运行”对话框中输入
sambaserver
连接到 Samba 服务器,以
printadm
用户登录。 在 Printers 子文件夹中,右键空白处打开“服务器属性”对话框,通过“驱动程序”选项卡添加驱动。 上传后,查看驱动属性,记录所需文件列表。 关联驱动与打印机,依次右键打印机选择“属性”,在“高级”选项卡中选择合适的驱动。 打开“打印默认值”对话框,至少做一处小修改,以强制 Windows 存储配置数据结构到 Samba 服务器。

从命令行上传

复制所需文件到
[print$]
共享:

cd ~/mydriver smbclient -U printadm '//samba-server/print$' -c 'mput *.*'
为特定打印机分配驱动,假设是简单的 PostScript 打印机和自定义 PPD 文件:

rpcclient -U printadm -c "adddriver "Windows NT x86" "Our Custom PS:PSCRIPT5.DLL:CUSTOM.PPD:PS5UI.DLL:PSCIPT.HLP:NULL:NULL:PSCRIPT.NTF"" samba-server
配置打印机使用上传的驱动:

rpcclient -U printadm -c "set driver "myprinter" "Our Custom PS"" samba-server

48、配置你选择的系统以向 Active Directory 环境进行身份验证。确保密码更改功能正常,并且在新用户登录时自动创建主目录。

若要配置系统以向 Active Directory 环境进行身份验证,确保密码更改功能正常,且新用户登录时自动创建主目录,可按以下步骤操作:

安装带有 Active Directory 和身份转换支持的 Samba。 配置名称服务切换文件
nsswitch.conf
,将
winbind
作为用户、组和密码信息的来源。

配置 PAM 通过
winbind
处理身份验证请求:
– 一般思路是为所有需要 Active Directory 支持的服务将
winbind
配置为身份验证模块。不同 Linux 发行版配置文件不同,如:

Ubuntu :需在
common-account

common-auth

sudo
文件开头添加:


auth sufficient pam_winbind.so

SUSE
common-password
文件中需将
auth
关键字替换为
password
,即:


password sufficient pam_winbind.so

Red Hat :在
system-auth
文件开头添加:


auth sufficient pam_winbind.so

PAM 可在新用户登录时自动创建主目录,因 Active Directory 用户不是通过标准
useradd
命令添加,所以此功能很重要。
4. 将 Active Directory 配置为 Kerberos 领域。此外,UNIX 和 Linux 的 Active Directory 客户端还应使用 Active Directory 控制器处理 DNS 请求,并使用 NTP 设置时钟,确保系统的完全限定域名列在
/etc/hosts
中。某些情况下可能需将域控制器的 IP 地址添加到
/etc/hosts
中,但使用 Active Directory 进行 DNS 服务时不建议这样做。

49、对以下每种情况可能存在的问题进行合理猜测:a) 在应用程序之间切换时,磁盘频繁读写且有明显延迟。b) 一个数值模拟程序运行时间比平时长,但系统内存大部分空闲。c) 繁忙局域网中的用户抱怨 NFS 访问缓慢,但服务器的平均负载非常低。d) 运行任何命令时经常出现“内存不足”的错误消息。

a) 问题很可能是磁盘带宽不足或内存短缺。 b) 问题可能出在 CPU 负载上。 c) 可能是网络过载或服务器相关延迟,如 NFS 服务器存在故障或通信问题。 d) 可能是系统内存分配机制出现问题,或者存在隐藏的内存占用进程。

50、从外部来看,负载均衡会显著影响服务器性能。请讨论几种负载均衡机制。

负载均衡机制

负载均衡机制分为 硬件 软件 两类。

硬件负载均衡设备

轮询 DNS 的简单替代方案。 需要 资金投入 。 常见商用第三方硬件包括: F5 Networks 的 Big-IP 控制器 北电 的 Alteon 网络交换产品 思科 的内容服务交换机 功能特点: 可根据多种可配置参数分配工作 可考虑单个服务器的当前响应时间

软件负载均衡器

无需 专用硬件 可在 UNIX 服务器 上运行 分为 开源 商用 两种解决方案

开源方案

Linux 虚拟服务器 ( linuxvirtualserver.org ) Apache 2.2 引入的代理负载均衡功能(mod_proxy_balancer)

商用方案

Zeus ( zeus.com )销售的产品

其他案例

谷歌 使用自定义负载均衡 DNS 服务器(带轮询记录)和负载均衡硬件的组合。

51、列出四个会影响性能的主要资源。针对每个资源,给出一个可能轻易耗尽该资源的应用示例。讨论缓解每种情况相关压力的方法。

影响性能的四大主要资源及缓解方法

四个会影响性能的主要资源为:CPU利用率、内存、存储I/O、网络I/O。示例及缓解方法如下:

1. CPU利用率

示例 :数值模拟程序易耗尽CPU资源。 缓解方法 : 优化算法 使用多核CPU 使用分布式计算

2. 内存

示例 :大型数据库应用易耗尽内存资源。 缓解方法 : 增加物理内存 优化内存分配 提高内存使用效率

3. 存储I/O

示例 :视频编辑或数据库备份应用易耗尽存储I/O资源。 缓解方法 : 使用固态硬盘 优化磁盘布局 采用分布式存储

4. 网络I/O

示例 :视频流服务或大规模文件下载应用易耗尽网络I/O资源。 缓解方法 : 增加网络带宽 使用负载均衡 优化网络拓扑

52、找一个存在内存泄漏的进程(如果手头没有,就自己编写一个程序)。在程序运行时,使用ps或top命令来监控该程序的内存使用情况。

可按以下通用步骤操作:

编写存在内存泄漏的程序,如在循环中不断分配内存却不释放; 运行程序; 打开新终端,使用
ps -o pid,user,%mem,args ax | grep <程序名>
查看程序内存使用情况,或使用
top
命令,按
M
键按内存使用排序,找到对应程序查看内存使用。持续观察内存使用是否不断增加,以确认内存泄漏。

© 版权声明

相关文章

暂无评论

none
暂无评论...