סביבות Terminal Server\Citrix ואפליקציות גרפיות
סביבות Terminal Server או Citrix משמשות לאספקת שלל אפליקציות למשתמשי הקצה, החל מדפדפן, Office, SAP ועוד ירקות, ועד סביבות עבודה שלמות כתחליף למחשב האישי.
ברוב המקרים שרת הטרמינל (או שרת הסיטריקס) יעבוד ללא בעיה עם מספר sessions אשר מפעילים את האפליקציות המקומיות של השרת, אבל לעיתים ההגדרות הדיפולטיביות לא מספיקות אם ישנה דרישה להריץ אפליקציות פחות סטנדרטיות על השרתים הנ"ל.
לדוגמא, שרת Terminal יתקשה להתמודד עם מספר sessions המריצים תוכנות גרפיות שונות ומשונות (CAD\Exceed\Autodesk ודומיהן) או לחילופין sessions אשר עובדים ברזולוציה גבוהה ו/או עומק צבעים גבוה, מה שיפתיע בכל הסיפור היא העבודה שבהסתכלות קצרה על משאבי השרת לא נראה שהמעבד עסוק מדי או שצריכת הזכרון גדולה מהנורמלי.
אבל מה שכן נוכל לראות, זה איטיות של השרת, בעיקר יהיה אפשר לראות את זה כשלוקח יותר מדקה לפתוח task manager, אההה, וכמובן תלונות של משתמשים.
אני למשל ראיתי את התופעה על שרת Citrix עם 8 משתמשים אשר כולם הריצו Exceed.
התופעה מתרחשת עקב חוסר יכולת להקצות זכרון מה session memory עבור ה- GUI של האפליקציות הרצות ב session, ברוב המקרים, חוסר היכולת הזאת נוצרת עקב כך שלא מספיק זכרון מוקצה עבור הפעילות הגרפית ב session.
הערכים האחראים על כל הסיפור הזה יושבים ב- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.
והערך שרלוונטי בישבלינו כדי לעזור לשרת להתמודד עם כל הגרפיקה הזאת שתוקפת אותו הוא SessionPoolSize, הוא בעצם קובע כמה זכרון לשמור עבור כל ההתעסקות של ה session עם גרפיקה/וידאו.
ה- default של SessionPoolSize הוא 16 (נספר במגות) בשרתי x32, וההמלצה היא להגדיל את זה ל- 32.
בשרתים הקיימים כיום, העלאה הזאת לא תפגע במשאבים אחרים של השרת (זכרון).
SessionPoolSize יכול להכיל ערכי DWORD, ככה שבמקרה שרוצים שהוא יהיה שווה ל 32mb, יש להכניס 0x00000020 (הקסה-דצימלי) או 32 (דצימלי).
אחרי אתחול השרת, הערכים החדשים יכנסו לתוקף, ואתם תלכו לנוח על זרי הדפנה.
זאת ועוד...