WO2016084150A1 - サーバ計算機、計算機システム、及び、方法 - Google Patents

サーバ計算機、計算機システム、及び、方法 Download PDF

Info

Publication number
WO2016084150A1
WO2016084150A1 PCT/JP2014/081195 JP2014081195W WO2016084150A1 WO 2016084150 A1 WO2016084150 A1 WO 2016084150A1 JP 2014081195 W JP2014081195 W JP 2014081195W WO 2016084150 A1 WO2016084150 A1 WO 2016084150A1
Authority
WO
WIPO (PCT)
Prior art keywords
monitoring
information
memory
server
component
Prior art date
Application number
PCT/JP2014/081195
Other languages
English (en)
French (fr)
Inventor
谷川 桂子
恵介 畑崎
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/081195 priority Critical patent/WO2016084150A1/ja
Publication of WO2016084150A1 publication Critical patent/WO2016084150A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to a computer system.
  • an operating system (hereinafter referred to as OS) is generally determined from hardware and applications.
  • the OS includes, for example, a system call functioning as an interface between an application and hardware, a kernel having functions such as process management, memory management, and input / output device management, and other libraries and hardware required by the application.
  • a plurality of functions such as a driver having an interface function are provided.
  • the OS has been renewed to cope with hardware evolution, various workload applications, security, and the like.
  • the workload is used as an index for operating the system optimally. For example, Read type, Read / Write type, Sequential Read / Write type, Random Read / Write type, Response speed priority type, Throughput priority type, Load, etc. It is.
  • Patent Document 1 discloses an OS dynamic reconfiguration device for a many-core system. This device classifies application forms into three types: stream processing type, data parallel processing type, and multi-thread type, and deactivates functions unnecessary for each type or activates only necessary functions when the application starts. By doing so, unnecessary OS processing is reduced.
  • Patent Document 2 discloses a method for tracking loading / unloading of a kernel extension module in a virtual space. This method loads or unloads an application that runs a certain kernel extension module on a certain virtual OS as necessary.
  • the state of the component that is a function constituting the OS is determined when the application is started, and is maintained as it is. For this reason, the state of the components of the OS is not always optimal during the operation of the computer. Therefore, there is a need for means for determining what items are to be changed and when the state of the components of the operating system of the computer is operating.
  • Patent Document 1 while operating the system, it is necessary for the application to have a state different from the state of the OS at the time of system construction due to a change in load, a change in cooperation, a change in workload due to application renewal, etc. There is a possibility of becoming.
  • an object of the present invention is to provide a server computer that can change the state of the constituent elements of the OS in accordance with fluctuations in processing performance.
  • a server computer includes a memory and a processor.
  • the memory associates configuration information indicating the state of the OS component with the component, a plurality of candidates for the state, a monitoring item that is an item monitored during execution of the OS, and a condition of the monitoring result of the monitoring item. State information.
  • the processor executes the OS based on the configuration information and executes an application using the OS.
  • the processor acquires the monitoring result by monitoring the monitoring item, determines whether or not the monitoring result satisfies the condition, and if it is determined that the monitoring result satisfies the condition, changes the configuration information and changes the configuration
  • the OS is executed based on the information.
  • the server computer of the present invention can change the state of the constituent elements of the OS in accordance with fluctuations in processing performance.
  • FIG. of the computer system which concerns on a present Example is shown.
  • a block diagram of server 10 is shown.
  • 3 is a block configuration diagram of a management device 22.
  • FIG. Of the OS change item list 150 change items (1) to (3) are shown.
  • change items (4) to (5) are shown.
  • An example of the allocation OS change item management table 160 is shown.
  • An example of the maintenance information management table 170 is shown.
  • An example of the OS configuration list 180 is shown.
  • the example of the screen 700 which the OS management program 224 makes a user input is shown.
  • 4 is an example of a user request ID log 800.
  • each piece of information included in the computer system according to the present embodiment may be described using expressions such as a table or a list.
  • the data structure of each piece of information is not limited and may be other data structures. . Since each information does not depend on the data structure, for example, “kkk table” or “kkk list” can be called “kkk information”.
  • the processor executes a program and performs processing while using a storage resource (for example, a memory) and / or a communication interface device (for example, a communication port).
  • a storage resource for example, a memory
  • a communication interface device for example, a communication port
  • the main subject of processing may be a program, but a processor that executes the program may be the main subject. Further, it can be interpreted that the processing mainly performed by the processor is performed by executing one or more programs.
  • the processor is typically a microprocessor such as a CPU (Central Processing Unit), but may include a hardware circuit that executes a part of the processing (for example, encryption / decryption, compression / decompression). .
  • the storage apparatus includes one or more storage devices and a controller that controls the storage devices.
  • the controller provides logical volumes to the server based on one or more storage devices.
  • the logical volume may be a real logical volume or a virtual logical volume.
  • the storage device may be a physical storage device or a virtual storage device.
  • the physical storage device is an HDD (Hard Disk Drive) or an SSD (Solid State Drive) drive.
  • One or more RAID groups Redundant Array of Independent (or Inexpensive) Disks
  • the RAID group may be referred to as a parity group.
  • the virtual logical volume for example, there may be an externally connected logical volume, a TP (Thin Provisioning) -logical volume, and a snapshot logical volume.
  • the externally connected logical volume is based on a storage resource (for example, a logical volume) of an external storage system connected to the storage system, and is a logical volume according to the storage virtualization technology.
  • the TP-logical volume is a logical volume according to capacity virtualization technology (typically Thin Provisioning).
  • the snapshot logical volume is a logical volume provided as a snapshot of the original logical volume.
  • the storage system or computer system may be composed of one or more storage devices.
  • FIG. 1 shows a configuration diagram of a computer system according to the present embodiment.
  • the computer system includes a plurality of servers (Servers) 10-1 to 10-n, a storage device (Storage) 20, and a management device (Manager, Management Apparatus) 22.
  • the server (server computer) 10 and the storage apparatus 20 are connected via an NW (network) 21.
  • the NW 21 may be Fiber Channel (FC), Ethernet (registered trademark), or PCI Express (PCIe).
  • the management device 22 and the server 10 / storage device 20 are connected via the NW 23.
  • the management device 22 performs resource management for the entire computer system.
  • Storage device 20 stores OS image data executed by a plurality of servers 10.
  • This image data may be a plurality of types and a plurality of versions of OS image data.
  • each server 10 can execute an OS from one or more versions of each OS for one or more types of OS.
  • FIG. 1 shows a plurality of servers 10, but the number of servers 10 is not limited and may be one.
  • one storage device 20 is shared among a plurality of servers 10, but the number and configuration of the servers 10 and the storage devices 20 are not limited to this mode.
  • the management device 22 is not an essential component of the computer system. Any server 10 may have the function of the management device 22.
  • Each server 10 includes software such as an OS 11, middleware (M / W) 12, application (App) 13, and OS configuration management program (Optimizer) 14.
  • OS middleware
  • App application
  • Optimizer OS configuration management program
  • FIG. 2 shows a configuration diagram of the server 10.
  • the server 10 includes a memory 100, a processor (CPU) 101 that executes a program (software) stored in the memory 100, a storage device (HDD) 102, an input device 103 such as a keyboard and a mouse, and the like. And an output device 104 (Output Device) such as a display and a network interface (NW_I / F) 105. These components are connected via an internal bus 106.
  • the NW_I / F 105 is, for example, a LAN (Local Area Network) interface, an HBA (Host Bus Adapter), or the like.
  • the memory 100 includes an OS 11, middleware 12, a plurality of applications 13, an OS configuration management program 14, a table group 15, a user request ID log (User Request ID log) 800, and an OS log (OS log) 900. And a processing function management table 1000.
  • the OS 11 is a basic program for controlling hardware and realizing information processing by a program (middleware 12 or application 13) positioned at a higher level.
  • the table group 15 includes configuration information indicating the configuration of the OS 11.
  • the configuration information indicates a component that is a function of the OS 11 and a state of the component.
  • the constituent elements are one or a plurality of program modules constituting the OS. For example, (1) NW_I / F interrupt frequency management, (2) file system, (3) scheduler, (4) memory limit management, (5 ) Prefetch module.
  • the table group 15 includes, for example, an OS change item list (OS Alteration Point List) 150, an assigned OS change item management table (Assigned Alteration Point Table) 160, a maintenance information management table (Replacement Table) 170, and an OS configuration list (OS List). ) 180 etc.
  • OS Change item list OS Alteration Point List
  • assigned OS change item management table Assigned Alteration Point Table
  • Replacement Table Maintenance Information management table
  • OS configuration list OS List
  • the OS configuration management program 14 is a program for monitoring the behavior of the OS 11 and the application 13 using the OS 11 to change and manage the configuration information of the OS 11 when the OS 11 and the application 13 using the OS 11 are executed.
  • the OS configuration management program 14 is a monitor (Monitor) 141 that monitors the behavior of the application 13 and the OS 11, and an analysis module (Analyzer) that determines whether to change the configuration information of the OS 11 from the monitoring information observed by the monitor 141. 142.
  • the OS configuration management program 14 manages an OS change item list 150, an assigned OS change item management table 160, a maintenance information management table 170, and an OS configuration list 180.
  • FIG. 3 shows a block configuration diagram of the management device 22.
  • the management device 22 includes a memory 200, a processor (CPU) 201 that executes a program (software) stored in the memory 200, a storage device (HDD) 202, an input device 203 such as a keyboard and a mouse, a display, and the like.
  • the NW_I / F 205 is, for example, a LAN interface, HBA, or the like.
  • the memory 200 has an OS 210 and a management program (Manager) 220.
  • the management program 220 includes, for example, an NW management program (NW Manager) 221 that manages the NWs 21 and 23, a storage management program (Storage Manager) 222 that manages the storage device 20, and a server management program (Server Manager) that manages the server 10. ) 223 and an OS management program (OS Manager) 224.
  • NW Manager NW management program
  • Storage Manager Storage Manager
  • Server Manager server Manager
  • OS management program 224 collects information related to the determination of the OS to be distributed (installed) to the server 10 and determines the OS to be distributed.
  • the management program 220 may be included in each server 10.
  • the management device 22 may install the OS stored in the storage device 20 in the server 10.
  • the memory 200 may include a table group 15 included in all or part of the servers 10 of the computer system.
  • a table belonging to the table group 15 of the management apparatus 22 or each server 10 is updated based on the information acquired by the management apparatus 22 or the information acquired by each server 10, the information of the tables is notified to each other.
  • the table may be synchronized between the management device 22 and the server 10.
  • the management device 22 acquires setting information related to the initial setting of the OS 11 in the server 10.
  • the setting information is acquired from the input device 203 and the output device 204 operated by the user.
  • the acquisition of setting information and the initial setting of the OS may be performed by the server 10 that operates the OS.
  • the OS change item list 150 is a list for monitoring the behavior of the OS 11.
  • FIG. 4 and FIG. 5 show each component (1) NW_I / F interrupt frequency management, (2) file system, (3) scheduler, (4) memory limit management, (5 ) OS change item lists 151 to 155 of the prefetch module are shown.
  • the OS change item list 150 may be created by a user (administrator) setting each component in advance using the input device 203. In this case, the management device 22 distributes the OS change item list 150 to each server 10.
  • the OS change item list 150 corresponding to a certain constituent element is information on the state of the constituent element of the OS 11 (state information), and has an entry for each candidate change item value of the constituent element.
  • the change item is an item indicating the state of the component.
  • the change item value is a value of the change item, and indicates a setting value for the component, the type of the component, the presence / absence of the component, and the like.
  • items 1510, 1520, 1530, 1540, and 1550 are change items.
  • Items 1511, 1512, 1521, 1522, 1531, 1532, 1541, 1542, 1551, 1552 are application workloads.
  • Items 1513, 1523, 1533, 1543, and 1553 are monitoring points for monitoring the influence of the change item on the application 13.
  • the monitoring point is an item monitored by the monitor 141 in order to determine whether the analysis module 142 needs to change the change item value.
  • a plurality of monitoring points may be set. Moreover, priority may be given to the plurality of monitoring points.
  • items 1514, 1524, 1534, 1544, and 1554 are threshold values for determining whether or not to change the change item value from the behavior observed at the monitoring point.
  • Items 1515, 1525, 1535, 1545, and 1555 are information (reboot compilation) indicating whether or not the OS 11 needs to be rebooted or compiled after changing the changed item value.
  • the OS change item list 151 of NW_I / F interrupt frequency management of the component (1) in FIG. 4 includes the interrupt request frequency (call frequency) 1510 in the disk I / O of the change item NW_I / F 105 and the workload. It has a delay time 1511 and a throughput 1512, a monitoring point 1513, a threshold value 1514 at each monitoring point, and a reboot compilation 1515.
  • the change item 1510 indicates “high” and “low” as candidates for the change item value.
  • the delay time 1511 is expressed as “ ⁇ ”, and the throughput 1512 is expressed as “ ⁇ ”.
  • this is OLTP (Online Transaction Processing). It is suitable for applications with low-latency workloads such as
  • the change item value of the call frequency 1510 is “low”
  • the delay time 1511 is expressed as “X”
  • the throughput 1512 is expressed as “O” in FIG. 4, but this is an application indicating a throughput-oriented workload, for example. It is suitable for.
  • the monitoring point 1513 for example, the ratio of the I / O processing waiting time to the CPU time, the disk busy rate, the number of blocks per second, and the like are monitored by the monitor 141.
  • the analysis module 142 acquires the observation value at the monitoring point 1513 by the monitor 141, refers to the OS change item list 151, and the ratio of the I / O processing waiting time to the CPU time exceeds 10% of the threshold 1514. If the disk busy rate exceeds 60% of the threshold 1514, it is determined to change the change item value of the constituent element of the OS 11 from “high” to “low”. It is assumed that when the change item value is changed from “high” to “low”, the interrupt interval of the NW_I / F 105 increases and the I / O issue interval increases.
  • the “transfer amount per second” calculated from the “number of blocks per second” that is the observation value at the monitoring point 1513 is the transfer amount per second determined by the processing performance of the controller of the storage 20.
  • the value exceeds 80% (threshold 1514) it is determined to change the change item value from “high” to “low”.
  • the reboot / compile 1515 indicates that when changing the change item value of the component of the OS 11, the OS 11 does not need to be rebooted or compiled, and can be executed as it is after the change.
  • the analysis module 142 acquires the observation value at the monitoring point 1513 by the monitor 141, and refers to the OS change item list 151. If the observation value does not satisfy the threshold 1514, the analysis module 142 sets the change item value of the constituent element of the OS 11 to “ It may be determined to change from “low” to “high”. Alternatively, when the OS change item list 151 has a different threshold value from the threshold value 1514 and the observation value does not satisfy the different threshold value, the analysis module 142 changes the change item value from “low” to “high”. You may decide to do it. That is, the threshold for determining the change item value to be changed from “low” to “high” may be the same as or different from the threshold for determining the change item value to be changed from “high” to “low”. May be.
  • three monitoring points 1513 are set, but the number of monitoring points is not limited to this.
  • Priorities may be set for a plurality of monitoring points.
  • the observation values observed at one or more monitoring points with high priority are acquired, and the acquired observation values are compared with the condition (threshold 1514). May be.
  • the candidate for the change item is changed, and if the acquired observation value does not satisfy the condition, the other observation values satisfy the condition.
  • the change item candidates may not be changed.
  • all the observed values may be compared with the threshold value 1514.
  • the candidate for the change item may be changed based on a comparison determination between the observation value with the highest priority among the observation values and the condition.
  • the file system OS change item list 152 includes a file system type 1520 as a change item, a read 1521 and a write 1522 indicating a workload, a monitoring point 1523, a threshold 1524 at each monitoring point, and a reboot.
  • Compile 1525 The change item 1520 indicates a log structure type (Log structured) and an inode type as candidates for change item values.
  • the change item value is a log structure type file system
  • the read 1521 is expressed as “ ⁇ ” and the write 1522 is expressed as “O”, but for example, a write-once write request is performed as a workload. Indicates that it is suitable for logging applications.
  • the read 1521 is expressed as “O” and the write 1522 is expressed as “ ⁇ ”. It indicates that it is suitable for an application (for example, OLAP: Online Analytical Processing).
  • the monitoring point 1523 for example, the Read request issue rate and the like are monitored by the monitor 141.
  • the read request issuance rate which is an observation value at the monitoring point 1523
  • the inode type file system change to the log structure type file system. Is done.
  • the inode type file system Changed to The reboot / compile 1525 indicates that the OS needs to be rebooted or compiled when the change item is changed.
  • the OS change item list 153 of the scheduler includes a scheduler setting 1530 as a change item, a delay 1531 and a throughput 1532 indicating a workload, a monitoring point 1533, a threshold value 1534 at each monitoring point, and reboot / compilation 1535.
  • the change item 1530 indicates cfq, deadline, noop, and anticipatory as candidates for the change item value.
  • the change item value cfq (Completely Fair Queueing) is a scheduler having a basic configuration, and is a scheduler that schedules the running processes so as not to be biased. For this reason, cfq is suitable for an application that shows a throughput-oriented workload.
  • the change item value deadline is a scheduler configured to perform scheduling within the maximum value of the processing wait time. For this reason, deadline is suitable for an application showing a low-latency workload such as DB (Database), particularly OLTP.
  • the change item value “noop” is a scheduler configured not to perform special scheduling.
  • the change item value anticipatory is a scheduler configured to efficiently process the next request when an I / O request is received. Specifically, for example, the scheduler predicts a request designated as a sector number close to the access destination sector number of the received Read request as a request to be processed next. For this reason, this is appropriate for applications that show low-latency workloads because received I / O requests may be processed after processing based on subsequently issued I / O requests. Absent.
  • the CPU usage rate or the waiting queue length is monitored by the monitor 141. For example, if a large number of I / O requests are issued, I / O processing waits and the CPU usage rate decreases. For example, when the CPU usage rate (sys) of the kernel is less than 30% of the threshold value 1534 and the average value (queue) of the execution waiting queue length is 8 or more of the threshold value 1534, the I / O processing is performed for this component. Since it is highly likely that this is a load bottleneck, change the change item value according to the workload of the application.
  • the reboot / compile 1535 indicates that no reboot or compilation is required after the change item value is changed, and the OS can be executed as it is after the change.
  • the OS change item list 154 for memory restriction management includes a memory restriction 1540 that is a change item, an in-memory type application 1541 indicating a workload, other applications 1542, a monitoring point 1543, A monitoring point threshold 1544 and a reboot compilation 1545.
  • the threshold value 1544 in FIG. 5 is an example in which a predetermined ratio of the memory amount installed in the server 10 is set as a free memory (free memory) size threshold value. A fixed value threshold may be set.
  • the server 10 manages the amount of memory installed in the server 10.
  • the change item 1540 indicates “large”, “middle”, “little”, and “OFF” as candidates for the change item value.
  • the change item value is “large”, it is suitable for an application showing an in-memory workload. This is because the in-memory type application improves I / O performance by arranging all data to be read and written on the memory. In an in-memory type application, it is desired to avoid page-out of data arranged on the memory by internal processing of the OS to the storage device.
  • the free memory used for the page cache is reduced, it is performed for a portion of the used memory area that is not active at that time, and data is paged out to the storage device. Therefore, as the monitoring point 1543, for example, the free memory size of the server 10 is monitored by the monitor 141.
  • the free memory size observed at the monitoring point 1543 is less than or equal to 1/8 the memory size (threshold value 1544) of the amount of memory installed in the server 10.
  • the change item value is set to “large”, and the free memory size threshold 1544 is reduced to 1/16 of the amount of memory installed in the server 10.
  • the reboot / compile 1545 indicates that it is not necessary to reboot or compile the OS 11 after the change item value is changed, and the OS can be executed as it is after the change.
  • the OS change item list 155 of the prefetch module includes a prefetch 1550 that is a change item, a sequential read 1551 and random read 1552 indicating a workload, a monitoring point 1553, a threshold 1554 at each monitoring point, and a reboot. Compile 1555.
  • the prefetch 1550 that is a change item indicates “ON” and “OFF” as candidates for the change item value.
  • the change item value When the change item value is “ON”, the number of read requests to the disk can be reduced by reading together the data of the block next to the data of the target block based on the Read request. This is suitable for applications that exhibit low latency workloads.
  • the cache hit rate and the like are monitored by the monitor 141. For example, when the Read request is changed to the random Read type and the cache hit rate at the monitoring point 1553 is 70% or less of the threshold 1554, the change item value is changed to “OFF”. This can reduce the use of extra bandwidth and memory.
  • Reboot / compile 1555 indicates that the OS needs to be rebooted or compiled after the change item value is changed.
  • each component candidate change item values, and threshold values are not limited to the above.
  • An item that can be changed is a change item.
  • the number of monitoring points for each component is not limited to one. When a plurality of monitoring points are set for each change item, priority may be given to those monitoring points. Thus, by setting the priority to the monitoring point, the state of the component can be changed based on a more important failure.
  • the OS change item lists 151 to 155 of the components (1) to (5) have been described as an example. However, as new functions are added to the OS 11 or the OS is renewed, additional components are added. Or changes may occur.
  • the change items of the components (1) to (5) may be referred to as change items (1) to (5).
  • the monitoring point was illustrated about each change item, the monitoring point is not limited to this.
  • FIG. 6 shows an example of the assigned OS change item management table 160.
  • the assigned OS change item management table 160 is information on the application 13 and the OS 11 assigned to the server 10.
  • the assigned OS change item management table 160 has an entry for each server 10. Each entry includes a server number (Server #) 161 that is an identifier of the server, an OS number (OS #) 162 that is an identifier of the OS running on the server 10, and an application running on the OS. 13, and an OS change item (Assigned Parameter) 164 running on the server.
  • the change item 164 has a change item value 164-1 and a change status 164-2 of the change item value 164-1 for each of the change items (1) to (5) in the OS change item list 150.
  • OS-A is running on the server 10-n
  • an application indicating an OLAP workload is running on the OS-A.
  • an application for example, an application such as DB
  • the change item value 164-1 of the change item (4) is changed to “large” as shown in FIG. In 164-2, “1 (not yet)” indicating that the change is scheduled is set.
  • the server 10-n sets the change item value “large” as the setting value in the component (4).
  • FIG. 7 shows an example of the maintenance information management table 170.
  • the maintenance information management table 170 is a table showing the maintenance timing for each resource of each server 10.
  • the maintenance timing is set in accordance with the life cycle of business services in the computer system, such as introduction and expansion of the computer system, addition of components, and replacement. With this table 170, it is possible to change the state (change item value) of the component based on the assigned OS change item management table 160 using the maintenance timing of these resources.
  • the maintenance information management table 170 has an entry for each server 10.
  • Each entry includes a server number (Server #) 171, which is an identifier of the server, an App 172 indicating the workload of the application 13 running on the server 10, and an identifier of the OS 11 running on the server. It has a certain OS number (OS #) 173, a maintenance time 174 for the OS 11, a maintenance time 175 for hardware resources in the server, and a maintenance time 176 for applications running on the server.
  • the OS number 173 may include an OS type (type) and version.
  • each server 10 may have an entry of a plurality of servers 10-1 to 10-n, or its own server 10 It is also possible to have only entries (information).
  • the management device 22 may have at least one of the assigned OS change item management table 160 and the maintenance information management table 170. In this case, the management device 22 may transmit an entry related to the server 10 to each server 10 managed by the management device 22.
  • FIG. 8 shows an example of the OS configuration list 180.
  • the OS configuration list 180 is a list showing candidates for combinations of change item values for each OS 11.
  • the OS configuration list 180 has an entry for each OS 11.
  • Each entry includes an OS number (OS #) 181 that is an identifier of the OS, an App 182 indicating the workload of the application 13 running on the OS 11, and change items (1) to (5) of the OS change item list 150.
  • Corresponding change items (1) 183 to (5) 187 are included. Specifically, these change items are (1) NW_I / F interrupt frequency management 183, (2) file system 184, (3) scheduler 185, (4) memory limit management 186, and (5) prefetch module 187. It is.
  • the OS number 181 is an identifier for identifying the type of the OS 11 and the version of each OS 11. For example, the OS 11 may have a plurality of versions having different combinations of change item values.
  • the OS configuration list 180 indicates that, for example, when the application workload is the OLTP type, OS-A1 or OS-A2 is recommended.
  • the App 182 and the change items (1) 183 to (5) 187 are appropriately set depending on the evolution of the application 13, the OS 11, or the server 10 that runs the OS 11, or the presence or absence of a virtual machine that runs on the OS 11, for example. Well, it is not limited to the above.
  • the OS configuration list 180 is created based on the OS change item list 150.
  • the OS configuration list 180 all the OSs 11 that can operate on the computer system may be registered. Therefore, when a new type of OS 11 or a new version of OS 11 is added to the storage apparatus 20, the OS configuration list 180 may be updated or may be updated at other timing.
  • the management device 22 may create the OS configuration list 180 and distribute it to each server 10, or each server may create the OS configuration list 180.
  • FIG. 13 shows an example of a screen 700 that the OS management program 224 causes the user to input.
  • the following shows a case where the OS management program 224 of the management apparatus 22 is executed.
  • each server 10 has the OS management program 224, and this program may be executed.
  • the CPU 201 of the management device 22 displays the screen 700 on the output device 204 by executing the OS management program 224.
  • the administrator sets the screen 700 using the input device 203.
  • This screen 700 is a screen for setting the OS 11, the application 13, and the like operating on each server 10.
  • the setting of the screen 700 is performed for each server 10.
  • the screen 700 may be set when an arbitrary server 10 is constructed or when the application 13 is renewed or added.
  • the items 701 to 709 on the screen 700 will be described below.
  • User 701 is an item for inputting an identifier for identifying the user. For example, a company name or an organization name is input to the user 701.
  • the application 702 is an item for inputting an application to be operated on the server 10 or a workload characteristic of the application. For example, the application 702 may select a general business application from a pull-down menu.
  • the system introduction 703 is an item for inputting whether the server 10 is newly constructed, whether the application running on the server is renewed, or whether a new application is added to the server. The system introduction 703 may be selected from a pull-down menu.
  • the requirement 704 is an item for inputting the requirement of the application. For example, when the requirement is performance, the number of users 705 of the user who uses the application and the allowable delay time of the processing time in one transaction. A delay time 706 and a data size 707 of data used for the application are input.
  • the OS type 708 is an item for inputting the type of OS running on the server 10. The OS type 708 may be selected from a pull-down menu. The user inputs necessary information to these items 701 to 708 from the input device 203 and presses an OK button 709. As a result, a confirmation screen is displayed (not shown), and after the user confirms the confirmation screen, the setting information is confirmed by pressing the confirmation button.
  • the setting information may include the system scale (server CPU performance, number of CPUs, memory size, storage size, cluster scale (for example, the number of servers in the computer system), and the like.
  • FIG. 9 is a schematic diagram of OS change processing of the server 10 included in the computer system according to the present embodiment.
  • the OS 11 operating on the server 10 is determined according to the characteristics of the workload of the application operating on the server 10.
  • Each server 10 executes the application 13 using the OS 11 and controls the change item based on the change item value. And each server 10 monitors the monitoring point in a change item, and acquires the monitoring result in a monitoring point. Then, depending on whether the monitoring result satisfies a certain condition (threshold), the set value is changed, and the OS 11 is executed at a predetermined timing.
  • a certain condition threshold
  • OS-A1 is running on server 1, and APP-A is running on OS-A1.
  • a setting value “high” for the component (1) NW_I / F interrupt frequency management 183 of the OS-A1 and a setting value “cfg” for the component (3) scheduler 185 are set.
  • OS-B2 is running on server 2, and APP-B is running on OS-B2.
  • the OS-B2 includes a component (1) a setting value “low” for the NW_I / F interrupt frequency management 183, a component (3) a setting value “deadline” for the scheduler 185, and a component (5) a prefetch module 187. “On” indicating that a prefetch module is required is set as a setting value for each.
  • the monitor 141 of each server monitors the monitoring points of each component. For example, as described above, it is assumed that the component (1) is initially set to “high” in the server 1. However, during execution of APP-A, it is assumed that at the monitoring point 1513, the monitor 141 acquires an observation value indicating that the processing delay is large and the usage rate of the CPU 101 is low. Specifically, for example, the monitor 141 acquires an observation value in which the ratio of the I / O processing wait time to the CPU time is 10% (threshold 1514) or more (see FIG. 4). In this case, the server 1 changes the change item value 164-1 of (1) to “low” in the assigned OS change item management table 160 in order to effectively use the resource.
  • the server 1 may change the type or version of the OS 11 in accordance with the change of the setting value of the component (1). Specifically, for example, the server 1 may change from OS-A1 to OS-A2 based on the OS configuration list 180. In this case, the change item value 164-1 in (3) is changed to “deadline” in which the maximum processing time can be set so as not to bias the processing of a plurality of processes that operate APP-A. In this case, regarding the candidate for the change item value in (1), processing is performed every time an I / O is issued without summarizing interrupt requests, and several interrupt requests are issued collectively. Is “high”.
  • the server 1 changes the setting values of the components (1) and (3) based on the change item values 164-1 of the components (1) and (3) of the assigned OS change item management table 160. .
  • the server 1 searches for the OS based on the assigned OS change item management table 160 and the OS configuration list 180. As a result of the search, the server 1 changes the OS-A version from OS-A1 to the OS-A2 in which the setting value 183 in (1) is “low” and the setting value 185 in (3) is “deadline”. (X).
  • the server 1 changes the setting value of the component (4) based on the change item value 164-1 of the change item (4) of the assigned OS change item management table 160.
  • the server 1 may change the setting value of (4) to OS-C1 indicating “large” based on the OS configuration list 180 (Y).
  • OS-A1 ⁇ OS-A2 ⁇ OS-C1 and in other cases, OS-A1 ⁇ OS-C1, and the type (type) of OS 11 to be changed depending on the timing of application maintenance and renewal. Or the version is different.
  • each server 10 can change the state of the constituent elements of the OS 11 that executes the application (setting values for the constituent elements, types of constituent elements, presence / absence of constituent elements, etc.) according to the execution state of the application. it can.
  • these changes can also be made.
  • the OS configuration management program 14 of each server 10 can determine whether or not to reboot from the OS change item list 150 and the maintenance time from the maintenance information management table 170 to determine the timing for changing the state of the component.
  • each server 10 can change the state of the component in accordance with the maintenance time when rebooting or compiling is necessary for the changed change item.
  • a process with a long processing time may be extracted for each process for a user request to the application 13.
  • the kernel processing of the OS 11 corresponding to the extracted process is estimated, and it is determined whether there is a bottleneck in the kernel processing according to the appearance frequency of the kernel processing.
  • the parameters based on the kernel processing may be changed.
  • FIG. 10 is a flowchart of application processing.
  • This process may be executed in cooperation between the management apparatus 22 and the server 10. This processing is performed by the CPU 201 of the management apparatus 22 executing the OS management program 224 and the like, and the CPU 101 of the server 10 executing the OS configuration management program 14 and the like together with the OS 11 and the application 13. This process may be performed when the management apparatus 22 acquires setting information (see FIG. 13) based on the screen 700 by the administrator. The management device 22 may perform this process in response to the acquisition of the setting information, or may perform this process in accordance with a preset schedule.
  • the server 10 that executes the application 13 is referred to as a target server.
  • the management device 22 acquires the setting information input from the screen 700 (S401).
  • the management device 22 creates an entry for the target server 10 in the assigned OS change item management table 160 and the maintenance information management table 170 based on the acquired setting information, the OS configuration list 180 included in the management device 22, and the like.
  • the management device 22 determines the OS 11 that runs on the target server 10. Specifically, for example, the management apparatus 22 determines the OS 11 based on the OS configuration list 180 from the OS type acquired from the setting information and the application or application workload. Note that the management device 22 may determine the OS 11 running on the target server 10 from the information of the application running on the OS or its workload.
  • the management device 22 sets the maintenance times of the determined OS, application, and hardware resource in the maintenance information management table 170. Further, for example, the management apparatus 22 sets the determined OS and application in the assigned OS change item management table 160 and sets the change item value 164-1 of the determined OS change item 164 from the OS configuration list 180. Then, “0” indicating initial setting (initial) is set in the change status 164-2 corresponding to the change item value 164-1. Note that, for example, the change item value may indicate an OS default value.
  • the management device 22 notifies the target server 10 that the OS and the application are operating and the target server 10 based on the determined OS, application, performance requirements, and the like (S402). At this time, the management device 22 stores hardware (HW) resources (for example, the number of servers, CPU, memory, virtual machine, storage, NW I / F, etc.) necessary for operating the application 13 on the target server 10. The setting may be instructed.
  • HW hardware
  • the management apparatus 22 instructs the target server 10 to initialize the determined OS (S403). Specifically, for example, the management apparatus 22 installs the determined OS on the target server 10. Further, the management device 22 transmits each table belonging to the table group 15 (the OS change item list 150, the assigned OS change item management table 160, the maintenance information management table 170, and the OS configuration list 180) to the target server 10. To do.
  • the table group 15 the OS change item list 150, the assigned OS change item management table 160, the maintenance information management table 170, and the OS configuration list 180
  • the target server 10 acquires a monitoring point (S404). Specifically, for example, the target server 10 receives each table belonging to the table group 15 from the management apparatus 22, and sets the change items of the target OS 11 based on the OS change item list 150 and the assigned OS change item management table 160. Corresponding monitoring points 1513, 1523, 1533, 1543, and 1553 are acquired.
  • the target server 10 installs the application 13 and necessary middleware 12 and activates the application 13 (S405).
  • the target server 10 starts monitoring the behavior of the application 13 and the OS 11 for the monitoring point acquired in S404 (S406). At this time, the target server 10 acquires the observation value of the monitoring point at a predetermined interval such as an interval of 5 seconds.
  • the monitoring point acquired in S404 is the monitoring point 1553 in the change item (5) prefetch module
  • the monitoring point 1553 is the cache hit rate
  • the observed value is the value of the cache hit rate.
  • the read data according to the read request is not read sequentially from the target server 10 but is read randomly. Then, the probability of hitting the next data of the read data is lowered, and the cache hit rate is lowered. Since the OS 11 is executing an extra process, the data read process according to the read request becomes a bottleneck.
  • the target server 10 determines whether or not the observation values of the monitoring points 1513, 1523, 1533, 1543, and 1553 corresponding to the change item have been acquired (S407).
  • the target server 10 satisfies the condition (threshold values 1514, 1524, 1534, 1544, and 1554) corresponding to the monitoring point based on the OS change item list 150. It is determined whether or not (S410).
  • the threshold value is not satisfied (S410; No) it means that it is not necessary to change the change item value in the assigned OS change item management table 160, and the target server returns the process to S407.
  • the threshold value is satisfied (S410; Yes)
  • S410 may be performed for the observation value with the highest priority of the monitoring points.
  • observation values for a plurality of change items may be acquired.
  • the target server 10 performs a bottleneck measurement process (S408).
  • the bottleneck measurement process is a process for measuring the presence / absence of a process that has become a bottleneck from the processing time and the resource usage rate of the CPU and memory.
  • the bottleneck measurement process when the bottleneck of the OS 11 in the target server 10 is measured, the change of the change item value of the assigned OS change item management table 160 other than the determination based on the observation value at the monitoring point is determined.
  • the target server 10 determines whether or not a bottleneck has been detected in the bottleneck measurement process (S409). When the bottleneck is not detected (S409; No), the target server 10 returns the process to S407. On the other hand, when a bottleneck is detected (S409; Yes), the target server 10 advances the process to S411.
  • the target server 10 changes the bottleneck detected in S408 or the change item value determined to satisfy the threshold value in S410 based on the reboot compilation 1515, 1525, 1535, 1545, and 1555 of the OS change item list 150.
  • step S411 it is determined whether rebooting or compiling is necessary to perform the process.
  • the target server 10 changes the change item value to the change item value 164-1 column determined to be changed in the assigned OS change item management table 160.
  • the process proceeds to S412.
  • the target server 10 may change the change item value from the change item value candidates indicated in the OS change item list 150 to a candidate different from the current change item value, or the OS configuration list 180.
  • the change item value may be changed according to the combination of the change item values shown in FIG.
  • the change status 164-2 column corresponding to the change item 164 may be blank.
  • the target server 10 performs scheduling for rebooting or compiling in accordance with the maintenance time of the maintenance information management table 170 (S414), and proceeds to S412. .
  • the target server 10 sets the changed change item value in the change item value 164-1 column corresponding to the change item in the assigned OS change item management table 160, and corresponds to the change item 164.
  • the column of change status 164-2 “1” indicating that change processing is performed in accordance with the maintenance time (not yet) is set.
  • the target server 10 may notify the management device 22 of the updated contents of the assigned OS change item management table 160.
  • the target server 10 reflects the change of the change item value on the OS 11. Specifically, for example, the target server 10 reflects the change item value 164-1 in which the change status of the assigned OS change item management table 160 is “1” or blank in the OS 11 (S412).
  • the reflection of the change item value change to the OS 11 may include, for example, a change of a setting value for a component, a change of a type of the component, and a change of the presence / absence of the component.
  • the setting value (high / low) of the component (1) is changed, and the setting value (cfq / deadline / noop / anticipatory) of the component (3).
  • the change in the type of the component includes the type of the component (2) (Log structure / inode).
  • the change in the presence / absence of the component includes the presence / absence (on / off) of the component (5).
  • the target server 10 changes the OS (OS version or type) based on the OS configuration list 180. Change).
  • OS OS version or type
  • the target server 10 reboots or compiles as necessary after changing the change item value.
  • the target server 10 updates the assigned OS change item management table 160 (S413). Specifically, for example, the target server 10 has finished reflecting the change to the OS 11 in the change status 164-2 column corresponding to the change item fixed value 164-1 in the assigned OS change item management table 160 (already). "2" indicating) is set. Note that the target server 10 notifies the management device 22 of the update contents in order to manage whether or not the change of the change item value is reflected. The management server 22 updates its assigned OS change item management table 160 based on the notified update contents.
  • the target server 10 determines whether or not the running application 13 is terminated (S415). When the process is ended (S415; Yes), the target server 10 ends the process. On the other hand, if the processing has not ended (S415; No), the target server 10 repeats the series of processing from S407 to S415 until the application 13 ends.
  • the monitoring item in the preset change item is monitored while the application 13 is running, and the change item is observed when the observation value observed at the monitoring point satisfies a predetermined condition (threshold).
  • the value can be changed, and the changed item value after the change can be reflected in the OS 11.
  • the OS 11 can be operated with optimal settings not only when the OS 11 is initially set but also when the application is operating.
  • the bottleneck of the component corresponding to the change item can be monitored more accurately.
  • the setting value can be changed according to the maintenance time of the application, OS or hardware. As a result, the number of times the server 10 is stopped during the operation of the application can be minimized and the availability of the server 10 can be maintained.
  • the OS 11 can be operated with an optimum setting even in the case of an unexpected failure.
  • the setting value of the change item can be changed more appropriately.
  • the management device 22 acquires the setting information and manages the hardware resource and the OS setting information (S401 to 403, a part of S413, etc.). However, when the target server 10 has a management interface with the user, the target server 10 may perform the processing performed by the management device 22.
  • the management interface here may be the input device 103 and the output device 104 of the target server 10.
  • the bottleneck measurement process is the process of S409 of the OS change process.
  • FIG. 11 is a part of a flowchart of the bottleneck measurement process.
  • FIG. 12 is the remaining part of the flowchart of the bottleneck measurement process.
  • This process is performed by the CPU 101 of the target server 10 executing the monitor 141 and the analysis module 142.
  • the monitor 141 monitors the behavior of the application 13 and acquires the monitor information from the behavior of the application 13.
  • the analysis module 142 analyzes the monitor information of the application 13 and extracts the processing time of the process related to the change item in the series of processes based on the request for the application 13.
  • the monitor 141 and the analysis module 142 may separately perform the process of acquiring the monitor information of the application 13 and the process of analyzing the monitor information.
  • the monitor 141 of the target server 10 acquires the monitor information of the application 13.
  • the monitor information includes, for example, information (session ID, XML sentence, user request sentence (for example, SQL sentence) processed by the application 13 in response to a request issued to the application 13 by a client computer connected to the target server 10. ), Time information, analysis of the issued request statement, execution, I / O processing, etc.).
  • the monitor 141 acquires a session ID from the monitor information (S501). Thereby, it is detected that the request is issued from the client computer.
  • the monitor 141 acquires a process ID (or thread ID) for identifying the process of the OS 11 that executes the processing of the acquired session ID (S502).
  • the target server 10 acquires any one user request statement from one or more user request statements belonging to the process or session based on the acquired process ID or session ID (S503).
  • the monitor 141 acquires time information of the acquired user request sentence from the monitor information (S504), and acquires a user request ID (for example, SQL_ID) for identifying the user request sentence (S505). Then, the monitor 141 calculates a processing time during which the user request statement is processed from the acquired time information (S506).
  • the processing time is the difference between the time information of a certain user request statement and the time information of the user request statement processed next. Further, when the time information that can be acquired as the monitor information is the processing time, the processing time is the time information of each user request sentence.
  • the monitor 141 searches whether the user request ID acquired in S505 has already been issued (S507). Specifically, for example, the monitor 141 searches whether or not the acquired user request ID is recorded in the user request ID log 800.
  • FIG. 14 is an example of the user request ID log 800.
  • the user request ID log 800 includes a user request ID list 801, log information of the user request ID, and monitor analysis information.
  • log information start time information 8011 at which each user request sentence is processed and a processing time 8012 of the user request sentence are recorded.
  • monitor analysis information the average processing time 8013 of each user request sentence, the maximum processing time 8014, and the frequency 8015 of appearance of the user request sentence among all user request sentences are calculated and registered by the monitor 141.
  • the illustrated example indicates that the user request sentence of the user request ID “1” has been processed for 876 ⁇ sec from 11: 07: 28.474 on July 3, 2014. Further, the user request sentence with the user request ID “1” indicates that the average processing time is 882 ⁇ sec, the maximum processing time is 1048 ⁇ sec, and the appearance frequency is 10%.
  • the monitor 141 registers the log information (start time information 8011 and processing time 8012) of the user request sentence in association with the user request ID in the list 801. (S508).
  • the target server 10 registers the user request ID in the list 801 and registers log information in association with the ID.
  • the monitor 141 determines whether there is a user request sentence that has not been extracted in S503 among user request sentences belonging to the process or session based on the acquired process ID or session ID (S509). If there is a user request sentence that has not been extracted (S509; Yes), the monitor 141 returns the process to S503. If there is no user request sentence that has not been extracted (S509; No), it means that all user request sentences recorded in the monitor information have been processed, and the monitor 141 advances the process to S510.
  • the monitor 141 calculates and registers monitor analysis information (average processing time 8013, maximum processing time 8014, and frequency 8015) for each user request sentence (S510).
  • the monitor 141 notifies the analysis module 142 of the acquired monitor information and the registered user request ID log 800 (S511) (A in FIG. 11).
  • the monitor 141 determines whether or not the acquired monitor information includes another session ID that has not yet been acquired in S501. If another session ID is included (S512; Yes), the monitor 141 returns the process to S501. On the other hand, when the monitor information does not include another session ID (S512; No), the monitor 141 ends the process.
  • the target server 10 can generate the user request ID log 800 from the monitor information of the application 13. Thereby, the processing time for each user request, the appearance frequency of the user request in the processing of the application, and the like can be calculated.
  • FIG. 12 will be described.
  • the analysis module 142 of the target server 10 receives the monitor information of the application 13 and the user request ID log 800 from the monitor 141 (S601) (A in FIG. 12).
  • the analysis module 142 extracts a user request ID whose average processing time 8013 is longer than a preset processing time threshold based on the monitor analysis information 8013 to 8015 of the acquired user request ID log 800 (S602).
  • a user request ID having an average processing time 8013 longer than this threshold is extracted.
  • the present invention is not limited to this, and for example, an ID of a user request having a maximum processing time 8014 longer than this threshold may be extracted.
  • the analysis module 142 acquires the process ID (or thread ID) of the process executed by the kernel of the OS 11 in accordance with the extracted user request statement based on the OS log 900 that is OS monitor information (S604).
  • FIG. 15 is an example of the OS log 900 of the process.
  • the OS log 900 records operation information for each process.
  • a process ID 901 for identifying a process a core number 902 of a CPU in which the process is operating, a processing start time 903, and a processing function 904 are recorded.
  • the analysis module 142 acquires start time information 8011 from the log information associated with the extracted user request ID based on the user request ID log 800, and is the same as the acquired start information 8011 based on the OS log 900.
  • the process ID 901 of the process started at the processing start time 903 is acquired.
  • the analysis module 142 extracts a processing function (function) 904 included in the process based on the process ID 901 acquired in S604 (S605).
  • the analysis module 142 calculates the processing time of the process by the kernel for each processing function based on the processing function 904 extracted in S605, and temporarily stores it in the memory 100 as the kernel processing time (S606).
  • the analysis module 142 temporarily stores the calculated processing time in the memory 100 as a kernel processing time, which is obtained by adding the calculated processing time to the kernel processing time.
  • the kernel processing time may be a difference between the processing start time 903 of a certain processing function and the processing start time 903 of the next processing function.
  • the analysis module 142 searches whether there is other information of the same user request ID as the user request ID extracted in S602 (S607). If there is information of the same user request ID (S607; Yes), the analysis module 142 repeats the processing of S604 to S606. When there is no information of the same user request ID (S607; No), the analysis module 142 acquires the appearance frequency 8015 of the extracted user request ID (S608), and multiplies it with the OS kernel processing time acquired in S606. The evaluation value of the user request is calculated (S609).
  • the analysis module 142 determines whether there is another user request ID having a long average processing time longer than a time set in advance as a threshold (S611). When there is another user request ID whose average processing time is longer than the threshold (S611; Yes), the analysis module 142 extracts the user request ID and executes the processing after S604. On the other hand, when there is no other user request ID having an average processing time longer than the threshold value (S611; No), the evaluation values of the user request IDs calculated in S609 are sorted, for example, in descending order to obtain the maximum evaluation value. Is determined as a bottleneck (S612), and the analysis module 142 ends the process.
  • the analysis module 142 holds a kernel processing function corresponding to the maximum evaluation value. Thereby, the analysis module 142 can extract the processing function corresponding to the maximum evaluation value, and can change the OS configuration information based on the processing function.
  • the processing function management table 1000 may be stored in the memory 100.
  • a processing function 1001 for kernel processing and a monitoring parameter 1002 are associated with each other.
  • the monitoring parameter 1002 is associated with the monitoring points 1513 to 1553 of the components (1) to (5) of the OS change item list 150. Therefore, by specifying the monitoring parameter 1002 from the processing function 1001 in the processing function management table 1000, the components (1) to (5) can be specified.
  • the processing function 1001 corresponding to the maximum evaluation value is “sys read”
  • the setting value of the component (5) of the OS change item table 150 is set to “ON” for the sequential Read type workload application.
  • the monitoring parameter 1002 corresponding to “sys read” of the processing function 1001 is a cache hit rate. Therefore, when the analysis module 142 confirms that the cache hit rate is decreasing, the component (5) is identified as a bottleneck, and the setting value is changed from “ON” to “OFF”. May be.
  • the analysis module 142 may observe the trend of the cache hit rate by monitoring the cache hit rate for a preset period after acquiring the monitoring point 1002.
  • the user request ID estimated to have the longest kernel processing time of the OS can be extracted from the monitor information of the application and the user request ID log 800, and the evaluation value can be measured.
  • the evaluation value used for OS bottleneck determination is the maximum evaluation value calculated from the appearance frequency of the user request ID and the kernel processing time. Is not limited, and any calculation method may be used as long as the evaluation value can determine the bottleneck of the OS.
  • the management apparatus 22 may collect configuration information from the multiple servers 10 that are already operating. In this case, the management apparatus 22 observes at what ratio the change items of the plurality of OSs 11 according to the workload of the application 13 are operating. When the management apparatus 22 newly constructs a system on a plurality of servers 10, the management apparatus 22 selects an OS suitable for each server based on the configuration information and the observed ratio in the plurality of OSs 11 according to the workload of the application 13. By distributing, a suitable OS can be provided more quickly.
  • the hardware features may be combined with the OS functions, and the change items and monitoring points may be changed or added.
  • OS configuration management program 10 Server 11: OS 13: Application 14: OS configuration management program 20: Storage device 22: Management device 141: Monitor 142: Analysis module 150: OS change item list 160: Assigned OS change item management table 170: Maintenance information management table 180: OS configuration list

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 サーバ計算機は、メモリ及びプロセッサを備える。メモリは、OSの構成要素の状態を示す構成情報と、構成要素、前記状態の複数の候補、前記OSの実行中に監視される項目である監視項目及び前記監視項目の監視結果の条件を関連付ける状態情報と、を格納する。プロセッサは、構成情報に基づいてOSを実行し、OSを用いるアプリケーションを実行する。プロセッサは、監視項目を監視することにより監視結果を取得し、監視結果が条件を満たすか否かを判定し、監視結果が条件を満たすと判定された場合、構成情報を変更し、変更した構成情報に基づいてOSを実行する。

Description

サーバ計算機、計算機システム、及び、方法
 本発明は、計算機システムに関する。
 計算機システムを構築する際、一般的に、ハードウェアとアプリケーションとからオペレーティングシステム(以下、OS)が決定される。OSは、例えば、アプリケーションとハードウェアとの間のインタフェースとなるシステムコールやプロセス管理、メモリ管理、入出力デバイス管理等の機能を有するカーネル、及び、その他アプリケーションが必要とするライブラリやハードウェアとのインタフェース機能を有するドライバ等の複数の機能を備える。OSは、ハードウェアの進化や様々なワークロードのアプリケーション、及びセキュリティ等に対応するために、更改を重ねてきた。ワークロードは、システムを最適に運用するための指標として用いられ、例えば、Read型、Read/Write型、シーケンシャルRead/Write型、ランダムRead/Write型、応答速度重視型、スループット重視型、負荷等である。
 しかし、計算機システムは、OS上で多種多様なアプリケーションを稼働させることを想定しているため、必ずしも、全てのアプリケーションを最適に制御できるとは限らない。例えば、データの読み書きを実行するI/Oコールが発行される度に、本来の処理であるデータのRead/Write以外に、システムを円滑に動作させるための様々なカーネル内部処理が発生する。また、例えば、I/OインテンシブなDBアプリケーションは、ディスクI/Oの高速処理を必要とするが、大量のI/Oコール発行によりカーネル内部処理の負荷が増大する可能性がある。また、例えば、トランザクション処理のような応答速度(遅延時間)重視のアプリケーションもあれば、ビッグデータの解析処理のようなスループット重視のアプリケーションもある。このように、アプリケーション毎に、OSに要求される性能要件が異なるため、各アプリケーションに適したOSの構成が必要となる。
 特許文献1には、メニーコアシステムのためのOS動的再構成装置が開示されている。この装置は、アプリケーションの形態をストリーム処理型、データ並列処理型、マルチスレッド型の3つに分類し、アプリケーション起動時に、各型に不要な機能を非アクティブ化し、あるいは、必要な機能のみをアクティブ化することで、不要なOS処理を削減する。
 また、特許文献2には、仮想空間におけるカーネル拡張モジュールのロード/アンロードのトラッキング方法が開示されている。この方法は、必要に応じて、あるカーネル拡張モジュールをある仮想OS上で動作させるアプリケーションをロード又はアンロードするものである。
特開2013-140596号公報 米国特許第8,527,989号明細書
 上記従来の計算機では、OSを構成する機能である構成要素の状態は、アプリケーションが開始される時に決定され、そのまま維持される。このため、計算機の稼働中、OSの構成要素の状態が常に最適であるとは限らない。従って、計算機の稼働中のOSの構成要素の状態について、どのような項目をいつ変更するのかを決定する手段が必要である。
 特許文献1では、システムを運用していく中で、負荷の変動や連携の変化、アプリケーションの更改によるワークロードの変化等により、アプリケーションに対し、システム構築時OSの状態とは異なる状態が必要となってくる可能性がある。
 特許文献2では、システムにおいて、アプリケーションのワークロードに適したOSの構成とするには、カーネル拡張モジュールの有無だけではなく、既にロードされている機能の最適化や、OSの状態を変更するタイミングをどのように設定するかということも必要である。
 そこで、本発明は、処理性能の変動に応じてOSの構成要素の状態を変更できるサーバ計算機を提供することを目的とする。
 上記の目的を達成するために、本発明に係るサーバ計算機は、メモリ及びプロセッサを備える。メモリは、OSの構成要素の状態を示す構成情報と、構成要素、前記状態の複数の候補、前記OSの実行中に監視される項目である監視項目及び前記監視項目の監視結果の条件を関連付ける状態情報と、を格納する。プロセッサは、構成情報に基づいてOSを実行し、OSを用いるアプリケーションを実行する。プロセッサは、監視項目を監視することにより監視結果を取得し、監視結果が条件を満たすか否かを判定し、監視結果が条件を満たすと判定された場合、構成情報を変更し、変更した構成情報に基づいてOSを実行する。
 本発明のサーバ計算機は、処理性能の変動に応じてOSの構成要素の状態を変更できる。
本実施例に係る計算機システムの構成図を示す。 サーバ10のブロック構成図を示す。 管理装置22のブロック構成図である。 OS変更項目リスト150のうち、変更項目(1)~(3)を示す。 OS変更項目リスト150のうち、変更項目(4)~(5)を示す。 割当てOS変更項目管理テーブル160の一例を示す。 メンテナンス情報管理テーブル170の一例を示す。 OS構成リスト180の一例を示す。 本実施例におけるOS変更処理の概要図である。 アプリケーション処理のフローチャートである。 ボトルネック計測処理のフローチャートの一部である。 ボトルネック計測処理のフローチャートの残りの一部である。 OS管理プログラム224がユーザに入力させる画面700の例を示す。 ユーザリクエストIDログ800の一例である。 プロセスのOSログ900の一例である。 処理関数管理テーブル1000の一例である。
 以下の説明では、本実施例の計算機システムが有する各情報について、テーブルやリスト等の表現で説明することがあるが、各情報のデータ構造は限定されず、他のデータ構造であってもよい。各情報はデータ構造に依存しないため、例えば「kkkテーブル」または「kkkリスト」を「kkk情報」と呼ぶことができる。
 以下の説明において、プロセッサは、プログラムを実行し、記憶資源(例えば、メモリ)及び/又は通信インターフェイスデバイス(例えば、通信ポート)等を用いながら処理を行う。処理の主体について、以下の説明ではプログラムを主体とする場合があるが、プログラムを実行するプロセッサを主体としてもよい。また、プロセッサが主体となっている処理は、1以上のプログラムを実行することにより行われると解釈することができる。プロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、処理の一部(例えば、暗号化/復号化、圧縮/伸張)を実行するハードウェア回路を含んでもよい。
 また、以下の説明において、ストレージ装置は、1つ以上の記憶デバイスと、記憶デバイスを制御するコントローラとを有する。コントローラは、1つ以上の記憶デバイスに基づき、サーバに論理ボリュームを提供する。この際、論理ボリュームは、実論理ボリュームであっても良いし、仮想論理ボリュームであっても良い。記憶デバイスは、物理的な記憶デバイスであっても良いし、仮想的な記憶デバイスであっても良い。例えば、物理的な記憶デバイスは、HDD(Hard Disk Drive)又はSSD(Solid State Drive)のドライブ等である。複数の記憶デバイスで1以上のRAIDグループ(Redundant Array of Independent (or Inexpensive) Disks)が構成されてよい。RAIDグループは、パリティグループと呼ばれてもよい。
 仮想論理ボリュームとしては、例えば、外部接続論理ボリュームと、TP(Thin Provisioning)-論理ボリュームと、スナップショット論理ボリュームとがあってよい。外部接続論理ボリュームは、ストレージシステムに接続されている外部のストレージシステムの記憶資源(例えば論理ボリューム)に基づいており、ストレージ仮想化技術に従う論理ボリュームである。TP-論理ボリュームは、容量仮想化技術(典型的にはThin Provisioning)に従う論理ボリュームである。スナップショット論理ボリュームは、オリジナルの論理ボリュームのスナップショットとして提供される論理ボリュームである。ストレージシステムまたは計算機システムは、1以上のストレージ装置で構成されてよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号を使用し、同種の要素を区別して説明する場合には、その要素の参照符号に代えて、その要素に割り振られた識別子(例えば番号及び符号のうちの少なくとも1つ)を使用することがある。
 図1に、本実施例に係る計算機システムの構成図を示す。計算機システムは、複数のサーバ(Server)10-1~10-nと、ストレージ装置(Storage)20と、管理装置(Manager, Management Apparatus)22を有する。サーバ(サーバ計算機)10と、ストレージ装置20とは、NW(ネットワーク)21を介して接続されている。NW21は、Fibre Channel(FC)、Ethernet(登録商標)、あるいはPCI Express(PCIe)であってよい。また、管理装置22とサーバ10・ストレージ装置20とは、NW23を介して接続されている。管理装置22は、計算機システム全体のリソース管理を行う。
 ストレージ装置20は、複数のサーバ10で実行されるOSのイメージデータを格納する。このイメージデータは、複数の種類及び複数のバージョンのOSのイメージデータであってよい。これにより、各サーバ10では、1または複数の種類のOSについて、各OSの1または複数のバージョンの中から、OSを実行可能となる。
 図1では複数のサーバ10が示されているが、サーバ10の数は限定されず、1つであってもよい。また、図1では1つのストレージ装置20が複数のサーバ10間で共有されているが、サーバ10とストレージ装置20の数及び構成は、この態様に限られない。また、管理装置22は、計算機システムの必須の構成要素ではない。管理装置22の機能を、いずれかのサーバ10が備えてもよい。
 各サーバ10は、OS11、ミドルウェア(M/W)12、アプリケーション(App)13、及び、OS構成管理プログラム(Optimizer)14等のソフトウェアを有する。
 図2に、サーバ10の構成図を示す。サーバ10は、メモリ100と、メモリ100に格納されているプログラム(ソフトウェア)を実行するプロセッサ(CPU)101と、記憶デバイス(HDD)102と、キーボードやマウス等の入力装置(Input Device)103と、ディスプレイ等の出力装置(Output Device)104と、ネットワークインタフェース(NW_I/F)105と、を有する。これらの構成要素は、内部バス106を介して接続されている。NW_I/F105は、例えば、LAN(Local Area Network)インタフェース、HBA(Host Bus Adapter)等である。
 メモリ100は、OS11と、ミドルウェア12と、複数のアプリケーション13と、OS構成管理プログラム14と、テーブル群15と、ユーザリクエストIDログ(User Request ID log)800と、OSログ(OS log)900と、処理関数管理テーブル(Management table)1000と、を有する。
 OS11は、ハードウェアを制御し、さらに上位に位置するプログラム(ミドルウェア12やアプリケーション13)により情報処理を実現するための基本的なプログラムである。テーブル群15は、OS11の構成を示す構成情報を含む。構成情報は、OS11を構成する機能である構成要素と、その構成要素の状態とを示す。
 構成要素は、OSを構成する1または複数のプログラムモジュールであり、例えば、(1)NW_I/Fの割込み頻度管理、(2)ファイルシステム、(3)スケジューラ、(4)メモリ制限管理、(5)先読みモジュール等である。
 テーブル群15は、例えば、OS変更項目リスト(OS Alteration Point List)150、割当てOS変更項目管理テーブル(Assigned Alteration Point Table)160、メンテナンス情報管理テーブル(Replacement Table)170、及びOS構成リスト(OS List)180等である。
 OS構成管理プログラム14は、OS11とそのOS11を用いるアプリケーション13とが実行される場合に、それらの挙動を監視して、OS11の構成情報を変更、管理するためのプログラムである。OS構成管理プログラム14は、アプリケーション13及びOS11の挙動を監視するモニタ(Monitor)141と、モニタ141により観測した監視情報から、OS11の構成情報を変更するか否かを判定する解析モジュール(Analyzer)142とを有する。OS構成管理プログラム14は、OS変更項目リスト150、割当てOS変更項目管理テーブル160、メンテナンス情報管理テーブル170、OS構成リスト180を管理する。
 図3は、管理装置22のブロック構成図を示す。管理装置22は、メモリ200と、メモリ200に格納されているプログラム(ソフトウェア)を実行するプロセッサ(CPU)201と、記憶デバイス(HDD)202と、キーボードやマウス等の入力装置203と、ディスプレイ等の出力装置204と、ネットワークインタフェース(NW_I/F)205と、を有する。これらの要素は、内部バス206を介して接続されている。NW_I/F205は、例えば、LANインタフェース、HBA等である。
 メモリ200は、OS210と、管理プログラム(Manager)220を有する。管理プログラム220は、例えば、NW21、23を管理するNW管理プログラム(NW Manager)221と、ストレージ装置20を管理するストレージ管理プログラム(Storage Manager)222と、サーバ10を管理するサーバ管理プログラム(Server Manager)223と、OS管理プログラム(OS Manager)224と、を有する。OS管理プログラム224は、サーバ10に配布(インストール)するOSの決定に関わる情報を収集し、配布するOSの決定を行う。管理プログラム220は、各サーバ10が有してもよい。管理装置22は、例えば、ストレージ装置20に格納されたOSを、サーバ10にインストールしてよい。
 また、メモリ200は、計算機システムの全てまたは一部のサーバ10が有するテーブル群15を有してもよい。また、管理装置22が取得した情報又は各サーバ10が取得した情報に基づき、管理装置22又は各サーバ10のテーブル群15に属するテーブルが更新された場合には、そのテーブルの情報を互いに通知することで、管理装置22及びサーバ10間でそのテーブルが同期されてよい。
 任意のサーバ10においてOS11の初期設定が行われる場合、管理装置22は、そのサーバ10におけるOS11の初期設定に関する設定情報を取得する。設定情報の取得は、ユーザが操作する入力装置203及び出力装置204から行われる。なお、設定情報の取得、及び、OSの初期設定は、そのOSを稼働するサーバ10がおこなってもよい。
 OS変更項目リスト150は、OS11の挙動を監視するためのリストである。OS変更項目リスト150の例として、図4及び図5に、各構成要素(1)NW_I/Fの割込み頻度管理、(2)ファイルシステム、(3)スケジューラ、(4)メモリ制限管理、(5)先読みモジュールのOS変更項目リスト151~155を示す。OS変更項目リスト150は、ユーザ(管理者)が入力装置203を用いて、各構成要素を予め設定する事により、作成されてもよい。この場合、管理装置22は、各サーバ10に対し、OS変更項目リスト150を配布する。
 ある構成要素に対応するOS変更項目リスト150は、OS11の構成要素の状態の情報(状態情報)であり、当該構成要素の変更項目値の候補毎のエントリを有する。変更項目は、当該構成要素の状態を示す項目である。変更項目値は、変更項目の値であり、当該構成要素に対する設定値、当該構成要素の種別、当該構成要素の有無、等を示す。
 図4及び図5に示す各OS変更項目リスト151~155において、項目1510、1520、1530、1540、1550は、変更項目である。項目1511、1512、1521、1522、1531、1532、1541、1542、1551、1552は、アプリケーションのワークロードである。項目1513、1523、1533、1543、1553は、変更項目がアプリケーション13に与える影響を監視するための監視ポイント(monitoring point)である。監視ポイントは、解析モジュール142が変更項目値の変更が必要か否かを判定するため、モニタ141が監視する項目である。監視ポイントは、複数設定されてもよい。また、複数の監視ポイントには、優先度が付与されていてもよい。
 また、各OS変更項目リスト151~155において、項目1514、1524、1534、1544、1554は、監視ポイントで観測した挙動から変更項目値を変更するか否かを判定するための閾値である。項目1515、1525、1535、1545、1555は、変更項目値を変更した後にOS11のリブートあるいはコンパイルが必要か否かを示す情報(リブート・コンパイル、reboot compile)である。
 図4の構成要素(1)NW_I/Fの割込み頻度管理のOS変更項目リスト151は、変更項目であるNW_I/F105のディスクI/Oにおける割込みの要求頻度(call frequency)1510と、ワークロードを示す遅延時間(latency)1511及びスループット(throughput)1512と、監視ポイント1513と、各監視ポイントにおける閾値1514と、リブート・コンパイル1515と、を有する。変更項目1510は、変更項目値の候補として、“high”と“low”とを示す。
 変更項目であるcall frequency1510の変更項目値が“high”の場合、図4では遅延時間1511が“○”、スループット1512が“×”と表現しているが、これは例えばOLTP(Online Transaction Processing)等の低遅延型のワークロードをもつアプリケーションに適していることを示す。一方、call frequency1510の変更項目値が“low”の場合、図4では遅延時間1511が“×”、スループット1512が“○”と表現しているが、これは例えばスループット重視のワークロードを示すアプリケーションに適していることを示す。監視ポイント1513として、例えばCPU時間に対するI/O処理待ち時間の比率、ディスクビジー率、1秒あたりのブロック数等が、モニタ141により監視される。
 例えば、解析モジュール142は、モニタ141による監視ポイント1513での観測値を取得し、OS変更項目リスト151を参照して、CPU時間に対するI/O処理待ち時間の比率が閾値1514の10%を超えた場合、又は、ディスクビジー率が閾値1514の60%を超えた場合、OS11の構成要素の変更項目値を“high”から“low”に変更することを決定する。変更項目値が“high”から“low”に変更されると、NW_I/F105の割込み間隔が大きくなり、I/O発行間隔を大きくなるとする。また、例えば、監視ポイント1513での観測値である“1秒あたりのブロック数”より算出する“1秒あたりの転送量”が、ストレージ20のコントローラの処理性能で定まる1秒当たりの転送量の80%(閾値1514)を超えた場合に、変更項目値を“high”から“low”に変更することを決定する。リブート・コンパイル1515は、OS11の構成要素の変更項目値を変更する場合には、OS11のリブート又はコンパイルは必要なく、変更後はそのまま実行ができることを示している。
 解析モジュール142は、モニタ141による監視ポイント1513での観測値を取得し、OS変更項目リスト151を参照して、観測値が閾値1514を満たさなかった場合、OS11の構成要素の変更項目値を“low”から“high”に変更することを決定しても良い。または、OS変更項目リスト151が閾値1514とは別の閾値を有し、解析モジュール142は、観測値がその別の閾値を満たさなかった場合、変更項目値を“low”から“high”に変更することを決定しても良い。すなわち、変更項目値を“low”から“high”に変更することを決定する閾値と、変更項目値を“high”から“low”に変更することを決定する閾値とが同じでも良いし、異なっていても良い。
 本実施例では、3つの監視ポイント1513が設定されているが、監視ポイントの数はこれに限られない。複数の監視ポイントに優先度が設定されてよい。複数の監視ポイント1513から複数の観測値が観測された場合、優先度の高い1つ以上の監視ポイントで観測された観測値を取得し、取得した観測値と条件(閾値1514)とを比較判定してもよい。この場合、取得した観測値が条件を満たす場合に、変更項目の候補が変更され、取得した観測値が条件を満たさない場合には、それ以外の観測値が条件を満たしている場合であっても、変更項目の候補が変更されないとしてもよい。
 また、複数の監視ポイント1513から複数の観測値が観測された場合、全ての観測値と閾値1514とを比較判定してもよい。この場合、例えば、条件(閾値1514)を満たす観測値があれば、その観測値のうち最も優先度の高い観測値と条件との比較判定に基づき、変更項目の候補を変更してもよい。このことは、以下の構成要素についても同様である。
 構成要素(2)ファイルシステムのOS変更項目リスト152は、変更項目であるファイルシステム種別1520と、ワークロードを示すリード1521及びライト1522と、監視ポイント1523と、各監視ポイントにおける閾値1524と、リブート・コンパイル1525と、を有する。変更項目1520は、変更項目値の候補として、ログ構造型(Log structured)とinode型とを示す。変更項目値がログ構造型のファイルシステムの場合、図4ではリード1521が“△”、ライト1522が“○”と表現しているが、これは例えば、ワークロードとして追記型のWrite要求を行うログアプリケーションに適していることを示す。一方、また、変更項目値がinode型のファイルシステムの場合、図4ではリード1521が“○”、ライト1522が“△”と表現しているが、これは例えば、ワークロードとしてRead要求の多いアプリケーション(例えばOLAP:Online Analytical Processing)に適していることを示す。監視ポイント1523として、例えばRead要求発行率等が、モニタ141により監視される。
 例えば、監視ポイント1523での観測値であるRead要求発行率が、閾値1524の10%以下の場合であってinode型のファイルシステムが稼働している場合には、ログ構造型のファイルシステムに変更される。また、例えば、監視ポイント1513での観測値であるRead要求発行率が、閾値1524の70%以上の場合であってログ構造型のファイルシステムが稼働している場合には、inode型のファイルシステムに変更される。リブート・コンパイル1525は、変更項目を変更する場合には、OSのリブート又はコンパイルが必要となることを示す。
 構成要素(3)スケジューラのOS変更項目リスト153は、変更項目であるスケジューラ設定1530と、ワークロードを示す遅延1531及びスループット1532と、監視ポイント1533と、各監視ポイントにおける閾値1534と、リブート・コンパイル1535と、を有する。変更項目1530は、変更項目値の候補として、cfqと、deadlineと、noopと、anticipatoryとを示す。
 例えば、変更項目値cfq(Completely Fair Queuing)は、基本的な構成のスケジューラであり、稼働中の処理が偏らないようにスケジューリングするスケジューラである。このため、cfqは、スループット重視のワークロードを示すアプリケーションに適している。変更項目値deadlineは、処理の待ち時間の最大値内にスケジューリングする構成のスケジューラである。このため、deadlineは、DB(Database)、特にOLTPのような低遅延型のワークロードを示すアプリケーションに適している。変更項目値noopは、特別なスケジューリングは行わない構成のスケジューラである。このため、OSの下位層に仮想マシンや高性能な入出力装置(例えばRAIDストレージ、フラッシュデバイス)を持つシステムや、低遅延型のワークロードを示すアプリケーションに適している。変更項目値anticipatoryは、I/O要求を受信したとき、次の要求が効率よく処理できる構成のスケジューラである。具体的には、例えば、このスケジューラは、受信したRead要求のアクセス先のセクタ番号に近いセクタ番号と指定した要求を、次に処理する要求として予測する。このため、これは、受信したI/O要求が、その後に発行されたI/O要求に基づく処理の後に処理される可能性があるため、低遅延型のワークロードを示すアプリケーションには適していない。
 監視ポイント1533として、例えばCPU使用率又は実行待ちキュー長等が、モニタ141により監視される。例えば、I/O要求が大量に発行されるとI/O処理の待ちが発生するためCPU使用率が低下する。例えば、カーネルのCPU使用率(sys)が閾値1534の30%未満の場合、かつ、実行待ちキュー長の平均値(queue)が閾値1534の8以上の場合、I/O処理がこの構成要素の負荷のボトルネックである可能性が高いため、アプリケーションのワークロードに従って変更項目値を変更する。リブート・コンパイル1535は、変更項目値の変更後に、リブート又はコンパイルは必要なく、変更後はそのままOSを実行ができることを示している。
 図5の構成要素(4)メモリ制限管理のOS変更項目リスト154は、変更項目であるメモリ制限1540と、ワークロードを示すインメモリ型アプリケーション1541及びその他のアプリケーション1542と、監視ポイント1543と、各監視ポイントにおける閾値1544と、リブート・コンパイル1545と、を有する。なお、図5の閾値1544は、free memory(空きメモリ)サイズの閾値として、サーバ10に搭載したメモリ量に対して所定の割合のサイズを設定される例を示している。固定値の閾値が設定されても良い。サーバ10は、サーバ10に搭載したメモリ量を管理している。変更項目1540は、変更項目値の候補として、“large”、“middle”、 “little”と、“OFF”を示す。
 例えば、変更項目値が“large”の場合、インメモリ型のワークロードを示すアプリケーションに適している。インメモリ型のアプリケーションは、読み書きするデータを全てメモリ上に配置することでI/O性能を向上させているからである。インメモリ型のアプリケーションでは、OSの内部処理によるメモリ上に配置したデータのストレージ装置へのページアウトを回避したい。ページキャッシュ用途にも用いられる空きメモリが少なくなると、その時点でアクティブではない使用メモリ領域のどこかを対象に行われ、データのストレージ装置へのページアウトが発生する。従って、監視ポイント1543として、例えばサーバ10の空きメモリ(free memory)サイズ等が、モニタ141により監視される。
 例えば、変更項目値を”middle“に設定して運用中、監視ポイント1543での観測値である空きメモリサイズが、サーバ10に搭載したメモリ量の1/8のメモリサイズ(閾値1544)以下になる場合、変更項目値を“large”に設定し、空きメモリサイズの閾値1544を、サーバ10に搭載したメモリ量の1/16のサイズに小さくする。リブート・コンパイル1545は、変更項目値の変更後に、OS11のリブート又はコンパイルは不要であり、変更後はそのままOSを実行ができることを示している。
 構成要素(5)先読みモジュールのOS変更項目リスト155は、変更項目であるプリフェッチ1550と、ワークロードを示すシーケンシャルリード1551及びランダムリード1552と、監視ポイント1553と、各監視ポイントにおける閾値1554と、リブート・コンパイル1555と、を有する。変更項目であるプリフェッチ1550は、変更項目値の候補として、“ON”と“OFF”とを示す。
 変更項目値が“ON”の場合、Read要求に基づく対象ブロックのデータの次のブロックのデータも一緒に読込むことで、ディスクへのRead要求数を削減できる。これは、低遅延型のワークロードを示すアプリケーションに適している。監視ポイント1553として、キャッシュヒット率等が、モニタ141により監視される。例えば、Read要求がランダムRead型に変化し、監視ポイント1553でのキャッシュヒット率が、閾値1554の70%以下となった場合、変更項目値を“OFF”に変更する。これにより、余分な帯域の使用やメモリの使用を削減できる。リブート・コンパイル1555は、変更項目値の変更後に、OSのリブート又はコンパイルが必要となることを示している。
 各構成要素の内容、変更項目値の候補、及び閾値は、上記に限ったものに限られない。構成要素の変更が可能な項目は変更項目になりうる。また、上述の通り、各構成要素の監視ポイントは1つに限られない。各変更項目に対し、監視ポイントが複数設定されている場合は、それらの監視ポイントに優先度を付与してよい。このように、監視ポイントに優先度を設定することで、より重要な不具合に基づき構成要素の状態を変更することができる。
 また、各構成要素における閾値を複数段階設けることも可能である。また、上記では、一例として構成要素(1)~(5)のOS変更項目リスト151~155について説明したが、OS11に新たな機能を追加することやOSの更改等に伴い、構成要素の追加や変更が発生してもよい。なお、以下では、構成要素(1)~(5)の変更項目を、変更項目(1)~(5)という場合がある。また、上記では、各変更項目について、監視ポイントを例示したが、監視ポイントはこれに限定されるものではない。
 図6は、割当てOS変更項目管理テーブル160の一例を示す。
 割当てOS変更項目管理テーブル160は、サーバ10に割当てられているアプリケーション13とOS11の情報である。
 割当てOS変更項目管理テーブル160は、サーバ10毎のエントリを有する。各エントリは、当該サーバの識別子であるサーバ番号(Server#)161と、当該サーバ10で稼働しているOSの識別子であるOS番号(OS#)162と、当該OS上で稼働しているアプリケーション13のワークロードを示すApp163と、当該サーバ上で稼働するOSの変更項目(Assigned Parameter)164と、を有する。変更項目164は、OS変更項目リスト150の変更項目(1)~(5)毎に、変更項目値164-1と、変更項目値の164-1の変更状況164-2とをそれぞれ有する。
 例えば、サーバ10-n上では、OS-Aが稼働し、OS-A上でOLAP型のワークロードを示すアプリケーションが稼働している。例えば、アプリケーション(例えば、DB等のアプリケーション)がインメモリ型に更改されたとする場合、図6に示すように変更項目(4)の変更項目値164-1を“large”に変更し、変更状況164-2に、変更予定であることを示す“1(not yet)”を設定する。これにより、サーバ10-nは、変更項目値“large”を設定値として構成要素(4)に設定する。
 図7は、メンテナンス情報管理テーブル170の一例を示す。
 メンテナンス情報管理テーブル170は、各サーバ10のリソース毎のメンテナンスのタイミングを示すテーブルである。メンテナンスのタイミングは、計算機システムの導入、拡張、構成要素の追加及びリプレイス等、計算機システムにおける業務サービスのライフサイクルにあわせて設定されている。このテーブル170により、これらリソースのメンテナンスのタイミングを利用して、割当てOS変更項目管理テーブル160に基づき、構成要素の状態(変更項目値)を変更することが可能である。
 メンテナンス情報管理テーブル170は、サーバ10毎のエントリを有する。各エントリは、当該サーバの識別子であるサーバ番号(Server#)171と、当該サーバ10上で稼働しているアプリケーション13のワークロードを示すApp172と、当該サーバ上で稼働しているOS11の識別子であるOS番号(OS#)173と、当該OS11のメンテナンス時刻174と、当該サーバにおけるハードウェアリソースのメンテナンス時刻175と、当該サーバ上で稼働しているアプリケーションのメンテナンス時刻176と、を有する。OS番号173には、OSの種別(種類)及びバージョンが含まれてよい。
 割当てOS変更項目管理テーブル160とメンテナンス情報管理テーブル170の少なくともいずれか一方について、各サーバ10が、複数のサーバ10-1~10-nのエントリを有していても良いし、自身のサーバ10のエントリ(情報)だけを有していても良い。
 割当てOS変更項目管理テーブル160とメンテナンス情報管理テーブル170の少なくともいずれか一方について、管理装置22が有するとしてもよい。この場合、管理装置22は、管理装置22が管理する各サーバ10に対し、そのサーバ10に関するエントリを送信すればよい。
 図8は、OS構成リスト180の一例を示す。
 OS構成リスト180は、OS11毎に、変更項目値の組み合わせの候補を示すリストである。OS構成リスト180は、OS11毎のエントリを有する。各エントリは、当該OSの識別子あるOS番号(OS#)181と、当該OS11上で稼働するアプリケーション13のワークロードを示すApp182と、OS変更項目リスト150の変更項目(1)~(5)に対応する変更項目(1)183~(5)187を有する。これらの変更項目は、具体的には、(1)NW_I/Fの割込み頻度管理183、(2)ファイルシステム184、(3)スケジューラ185、(4)メモリ制限管理186、(5)先読みモジュール187である。OS番号181は、OS11の種別と各OS11のバージョンを識別する識別子である。例えば、OS11は、変更項目値の組み合わせが異なる複数のバージョンを有してよい。
 OS構成リスト180は、例えば、アプリケーションのワークロードがOLTP型である場合、OS-A1あるいはOS-A2が推奨されることを示している。なお、App182及び変更項目(1)183~(5)187は、アプリケーション13、OS11、又はOS11を稼働するサーバ10等の進化、又は、例えばOS11で稼働する仮想マシンの有無等により適宜設定されてよく、上記に限られたものではない。
 なお、OS構成リスト180は、OS変更項目リスト150に基づき作成される。OS構成リスト180には、計算機システム上で稼働可能なOS11が全て登録されてよい。従って、ストレージ装置20に新たなOS11の種類またはOS11の新たなバージョンが追加された際に、このOS構成リスト180が更新されてもよいし、その他のタイミングで更新されてもよい。管理装置22が、OS構成リスト180を作成し、各サーバ10に配布してもよいし、各サーバがOS構成リスト180を作成してもよい。
 図13は、OS管理プログラム224がユーザに入力させる画面700の例を示す。なお、以下は、管理装置22のOS管理プログラム224が実行される場合を示すが、上記の通り、各サーバ10がOS管理プログラム224を有し、このプログラムを実行してもよいものとする。
 管理装置22のCPU201は、OS管理プログラム224を実行することにより、画面700を出力装置204に表示する。管理者は、入力装置203により画面700を設定する。この画面700は、各サーバ10上で稼働するOS11及びアプリケーション13等を設定する画面である。画面700の設定は、サーバ10毎に行われる。例えば、任意のサーバ10を構築する際、又はアプリケーション13の更改又追加の際に、画面700が設定されてよい。画面700の各項目701~709を、以下に説明する。
 ユーザ701は、ユーザを識別する識別子を入力する項目である。ユーザ701には、例えば企業名や組織名等が入力される。アプリケーション702は、当該サーバ10で稼働させるアプリケーション、又は、当該アプリケーションのワークロードの特性を入力する項目である。アプリケーション702は、例えば、一般的な業務アプリケーションについて、プルダウンメニューから選択できるようにしてもよい。システム導入703は、当該サーバ10を新規で構築するのか、また当該サーバ上で稼働しているアプリケーションの更改か、又は、当該サーバに新たなアプリケーションを追加するか等を入力する項目である。システム導入703は、プルダウンメニューから選択できるようにしてもよい。
 要件704は、当該アプリケーションの要件を入力する項目であり、例えば要件が性能である場合は、当該アプリケーションを使用するユーザのユーザ数705と、1トランザクションにおいて許容される処理時間の遅延時間である許容遅延時間706と、アプリケーションに使用されるデータのデータサイズ707等を入力する。OS種別708は、当該サーバ10上で稼働するOSの種別を入力する項目である。OS種別708は、プルダウンメニューから選択できるようにしてもよい。ユーザは、入力装置203より、これらの項目701~708に必要情報を入力し、OKボタン709を押下する。これにより、確定画面が表示され(図示なし)、ユーザが確定画面を確認したあと、確定ボタンを押下することにより、設定情報が確定することとなる。なお、設定情報は、上記の項目の他、システムの規模(サーバCPUの性能、CPU数、メモリサイズ、ストレージサイズ、クラスタ規模(例えば、計算機システム内のサーバ台数)等を含んでもよい。
 図9に、本実施例に係る計算機システムが有するサーバ10のOS変更処理の概要図である。本実施例に係る計算機システムは、サーバ10の導入時に、サーバ10上で稼働するアプリケーションのワークロードを元に、その特性に応じて、サーバ10上で稼働するOS11が決定される。
 各サーバ10は、OS11を用いるアプリケーション13を実行し、変更項目値に基づいて変更項目を制御する。そして、各サーバ10は、変更項目における監視ポイントを監視し、監視ポイントにおける監視結果を取得する。そして、監視結果がある条件(閾値)を満たすか否かにより、その設定値を変更し、OS11を所定のタイミングで実行する。
 サーバ1上でOS-A1が稼働し、OS-A1上でAPP-Aが稼働している。OS-A1の構成要素(1)NW_I/Fの割込み頻度管理183に対する設定値“high”と、構成要素(3)スケジューラ185に対する設定値“cfg”とが、それぞれ設定されている。
 サーバ2上では、OS-B2が稼働し、OS-B2上でAPP-Bが稼働している。OS-B2には、構成要素(1)NW_I/Fの割込み頻度管理183に対する設定値“low”と、構成要素(3)スケジューラ185に対する設定値“deadline”と、構成要素(5)先読みモジュール187に対する設定値として先読みモジュールが必要であることを示す“on”とが、それぞれ設定されている。
 各サーバのモニタ141は、各構成要素の監視ポイントについて監視を行う。例えば、前述のとおり、サーバ1において、構成要素(1)は“high”に初期設定されているとする。しかし、APP-Aの実行中、監視ポイント1513において、モニタ141が、処理の遅延が大きくCPU101の使用率が低いことを示す観測値を取得したとする。具体的には、例えば、モニタ141が、CPU時間に対するI/O処理待ち時間の比率が10%(閾値1514)以上である観測値を取得した場合である(図4参照)。この場合、サーバ1は、リソースを有効利用するため、割当てOS変更項目管理テーブル160について、(1)の変更項目値164-1を“low”に変更する。
 また、サーバ1は、構成要素(1)の設定値の変更に伴い、OS11の種類又はバージョンの変更を行ってもよい。具体的には、例えば、サーバ1は、OS構成リスト180に基づき、OS-A1からOS-A2に変更してもよい。この場合、APP-Aを動作させる複数のプロセスの処理に偏りが出ないように、(3)の変更項目値164-1を処理の最大時間を設定可能な“deadline”に変更される。なお、ここでは、(1)の変更項目値の候補について、割込み要求をまとめずに、I/Oの発行の度に処理することを“low”とし、割込み要求をいくつかまとめて発行することを“high”としている。
 上述の場合、サーバ1は、割当てOS変更項目管理テーブル160の構成要素(1)、(3)の変更項目値164-1に基づき、構成要素(1)、(3)の設定値を変更する。サーバ1は、割当てOS変更項目管理テーブル160及びOS構成リスト180に基づき、OSを検索する。検索の結果、サーバ1は、OS-Aのバージョンを、OS-A1から、(1)の設定値183が“low”であり、(3)の設定値185が“deadline”であるOS-A2に変更する(X)。
 別の例を説明する。例えば、サーバ1上でAPP-Aを稼働しているときに、APP-Aがインメモリ型に更改されるとする。インメモリ型は、メモリ上にデータが展開される。このため、ストレージ装置20へのアクセスは操作ログデータやバックアップ用のデータのみとなり、メモリ上のデータの処理を優先させることとなる。具体的にはサーバ10のモニタ141が、監視ポイント1543において、閾値1544以下の空きメモリサイズを示す観測値を取得したとする。この場合、サーバ1は、割当てOS変更項目管理テーブル160の(4)の変更項目値164-1を“large”に変更する。
 サーバ1は、割当てOS変更項目管理テーブル160の変更項目(4)の変更項目値164-1に基づき、構成要素(4)の設定値を変更する。
 なお、サーバ1は、OS構成リスト180に基づき(4)の設定値が“large”を示すOS-C1に変更してもよい(Y)。なお、OS-A1→OS-A2→OS-C1とするケースもあれば、OS-A1→OS-C1とするケースもあり、アプリケーションのメンテナンスや更改のタイミングにより、変更するOS11の種類(種別)又はバージョンは異なる。
 上記のとおり、各サーバ10は、アプリケーションの実行状態に応じて、アプリケーションを実行するOS11の構成要素の状態(構成要素に対する設定値、構成要素の種別、構成要素の有無等)を変更することができる。また、構成要素の状態の変更により、OS11の変更(OS11の種別・バージョンの変更等)が必要な場合は、これらの変更もできる。なお、各サーバ10のOS構成管理プログラム14は、OS変更項目リスト150からリブート要否、メンテナンス情報管理テーブル170からメンテナンス時刻を取得し、構成要素の状態を変更するタイミングを決定することができる。具体的には、各サーバ10は、変更された変更項目について、リブート又はコンパイルが必要である場合は、メンテナンス時刻に合わせて構成要素の状態を変更することができる。
 なお、予め設定された監視ポイントを監視するだけではなく、アプリケーション13に対するユーザリクエストに対する各プロセスについて、処理時間の長いプロセスを抽出してもよい。この場合、抽出したプロセスに対応するOS11のカーネル処理を推定して、そのカーネル処理の出現頻度に応じて、そのカーネル処理にボトルネックがあるか否かを判定し、ボトルネックがある場合には、そのカーネル処理に基づくパラメータを変更してもよい。
 図10は、アプリケーション処理のフローチャートである。
 この処理は、管理装置22とサーバ10とが協働して実行しても良い。この処理は、管理装置22のCPU201により、OS管理プログラム224等が実行され、サーバ10のCPU101により、OS11及びアプリケーション13とともに、OS構成管理プログラム14等が実行されることにより行われる。この処理は、管理者よる画面700に基づく設定情報(図13参照)を、管理装置22が取得した場合に行われても良い。管理装置22は、設定情報を取得したことを契機にこの処理を行ってもよいし、予め設定されたスケジュールに合わせてこの処理を行ってもよい。なお、以下では、アプリケーション13を行うサーバ10を対象サーバという。
 管理装置22は、画面700により入力された設定情報を取得する(S401)。管理装置22は、取得した設定情報、管理装置22が有するOS構成リスト180等に基づき、割当てOS変更項目管理テーブル160、及びメンテナンス情報管理テーブル170に、対象サーバ10のエントリを作成する。
 例えば、管理装置22は、対象サーバ10で稼働するOS11を決定する。具体的には、例えば、管理装置22は、設定情報により取得したOS種別とアプリケーション又はアプリケーションのワークロードとから、OS構成リスト180に基づいて、OS11を決定する。なお、管理装置22は、OS上で稼働するアプリケーション又はそのワークロードの情報から、対象サーバ10上で稼働するOS11を決定してもよい。
 例えば、管理装置22は、決定したOS、アプリケーション及びハードウェアリソースそれぞれのメンテナンス時刻を、メンテナンス情報管理テーブル170に設定する。また、例えば、管理装置22は、割当てOS変更項目管理テーブル160に、決定したOS及びアプリケーションを設定するとともに、OS構成リスト180より、決定したOSの変更項目164の変更項目値164-1を設定し、変更項目値164-1に対応する変更状況164-2に、初期設定(initial)を示す“0”を設定する。なお、例えば、この変更項目値には、OSの初期設定の値、が示されていてよい。
 管理装置22は、決定したOS、アプリケーション及び性能要件等に基づき、OS及びアプリケーションを稼働する対象サーバ10、その旨を対象サーバ10に通知する(S402)。このとき、管理装置22は、対象サーバ10に対してアプリケーション13を稼働するに必要なハードウェア(HW)リソース(例えば、サーバ台数、CPU、メモリ、仮想マシン、ストレージ、NW I/F等)の設定を指示するようにしてもよい。
 管理装置22は、対象サーバ10に対し、決定したOSの初期設定を指示する(S403)。具体的には、例えば、管理装置22は、決定したOSを対象サーバ10へインストールする。また、管理装置22は、テーブル群15に属する各テーブル(OS変更項目リスト150、割当てOS変更項目管理テーブル160、メンテナンス情報管理テーブル170、及びOS構成リスト180である。)を対象サーバ10に送信する。
 上記S401~403により、対象サーバ10上で稼働するのに適切なOSを決定し、そのOSをインストールすることができる。
 対象サーバ10は、監視ポイントを取得する(S404)。具体的には、例えば、対象サーバ10は、テーブル群15に属する各テーブルを管理装置22から受信し、OS変更項目リスト150及び割当てOS変更項目管理テーブル160に基づいて、対象OS11の変更項目に対応する監視ポイント1513・1523・1533・1543・1553を取得する。
 対象サーバ10は、アプリケーション13及び必要なミドルウェア12のインストールを行い、アプリケーション13を起動する(S405)。
 対象サーバ10は、S404で取得した監視ポイントについて、アプリケーション13とOS11の挙動の監視を開始する(S406)。このとき、対象サーバ10は、例えば、5秒間隔など、所定の間隔で監視ポイントの観測値を取得する。
 ここで、監視ポイントにおける観測の例として、S404で取得された監視ポイントが、変更項目(5)先読みモジュールにおける監視ポイント1553である場合を説明する。この場合、監視ポイント1553はキャッシュヒット率であり、観測値はキャッシュヒット率の値である。例えば、初期設定時において、対象サーバ上で稼働するアプリケーション13がOLAP型ワークロードを示す場合、読み込んだデータに続くデータを次に読み込む確率が高いと判断されて、変更項目(5)の先読みモジュールが有効(ON)となる。しかし、その後、システム規模の拡大に伴いシステム内のサーバ数が増加し、アプリケーション13が発行するリード要求を、全サーバに並列に発行するように更改されるとする。すると、リード要求に従うリードデータは、対象サーバ10からシーケンシャルに読み出されずに、ランダムな読み出しとなる可能性がある。すると、リードデータの次のデータがヒットする確率が落ち、キャッシュヒット率が低下する。そして、OS11は、余分な処理を実行していることになるため、リード要求に従うデータ読込み処理がボトルネックとなる。
 対象サーバ10は、変更項目に対応する監視ポイント1513・1523・1533・1543・1553の観測値が取得されたか否かを判定する(S407)。観測値が取得された場合(S407;Yes)、対象サーバ10は、OS変更項目リスト150に基づき、観測値が監視ポイントに対応する条件(閾値1514・1524・1534・1544・1554)を満たすか否かを判定する(S410)。閾値を満たさない場合(S410;No)、割当てOS変更項目管理テーブル160の変更項目値の変更が不要であることを意味するので、対象サーバは、S407に処理を戻す。一方、閾値を満たす場合(S410;Yes)、割当てOS変更項目管理テーブル160の変更項目値の変更が必要であることを意味するので、対象サーバは、S411に処理を進める。
 なお、監視ポイントが複数設定されていることにより観測値が複数取得された場合、監視ポイントの優先度の最も高い観測値についてS410を行ってもよい。また、複数の変更項目に対する観測値が取得されていてもよい。
 一方、観測値が取得されなかった場合(S407;No)、対象サーバ10は、ボトルネック計測処理を行う(S408)。ボトルネック計測処理は、処理時間やCPU及びメモリ等のリソース使用率からボトルネックとなった処理の有無を計測する処理である。ボトルネック計測処理において、対象サーバ10におけるOS11のボトルネックが計測された場合、監視ポイントでの観測値に基づく判定以外での割当てOS変更項目管理テーブル160の変更項目値の変更が判定される。
 対象サーバ10は、ボトルネック計測処理において、ボトルネックが検出されたか否かを判定する(S409)。ボトルネックが検出されなかった場合(S409;No)、対象サーバ10は、S407に処理を戻す。一方、ボトルネックが検出された場合(S409;Yes)、対象サーバ10は、S411に処理を進める。
 対象サーバ10は、OS変更項目リスト150のリブート・コンパイル1515・1525・1535・1545・1555に基づき、S408で検出されたボトルネック、またはS410で閾値を満たすと判定された変更項目値について、変更するためにリブート又はコンパイルが必要かどうかを判定する(S411)。リブート又はコンパイルが不要の場合(S411;No)、対象サーバ10は、割当てOS変更項目管理テーブル160に、変更が必要と判定された変更項目値164-1欄に対し、変更項目値を変更し、S412に処理を進める。ここで、対象サーバ10は、OS変更項目リスト150に示された変更項目値の候補の中から現在の変更項目値と異なる候補に、変更項目値を変更してもよいし、OS構成リスト180に示された変更項目値の組み合わせに合わせて、変更項目値を変更してもよい。なお、この場合、続くステップS412において変更項目値の変更をOS11に反映するため、変更項目164に対応する変更状況164-2の欄は、空欄であってもよい。
 一方、リブート又はコンパイルが必要な場合(S411;Yes)、対象サーバ10は、メンテナンス情報管理テーブル170のメンテナンス時刻に合わせてリブート又はコンパイルを行うためのスケジューリングを行い(S414)、S412に処理を進める。具体的には、例えば、対象サーバ10は、割当てOS変更項目管理テーブル160に、変更項目に対応する変更項目値164-1欄に変更後の変更項目値を設定し、変更項目164に対応する変更状況164-2の欄に、メンテナンス時刻に合わせて変更処理を行うこと(not yet)を示す“1”を設定する。なお、対象サーバ10は、管理装置22に対し、割当てOS変更項目管理テーブル160の更新内容を通知してよい。
 対象サーバ10は、変更項目値の変更をOS11に反映する。具体的には、例えば、対象サーバ10は、割当てOS変更項目管理テーブル160の変更状況が“1”又は空欄の変更項目値164-1を、OS11に反映する(S412)。また、変更項目値の変更のOS11への反映には、例えば、構成要素に対する設定値の変更、構成要素の種別の変更、当該構成要素の有無の変更が含まれて良い。
 具体的には、例えば、構成要素に対する設定値の変更には、構成要素(1)の設定値(high/low)の変更、構成要素(3)の設定値(cfq/deadline/noop/anticipatory)の変更、構成要素(4)の設定値(large/middle/little/OFF)等が含まれる。また、構成要素の種別の変更には、構成要素(2)の種別(Log structure/inode)等が含まれる。また、構成要素の有無の変更には、構成要素(5)の有無(on/off)等が含まれる。
 また、例えば、複数の変更項目における監視ポイントの観測により複数の変更項目値164-1が変更された場合、対象サーバ10は、OS構成リスト180に基づき、OSの変更(OSのバージョン又は種別の変更等)を行ってもよい。なお、割当てOS変更項目管理テーブル160の変更状況が“1”の場合、変更項目値の変更後、対象サーバ10は、必要に応じてリブート又はコンパイルを行う。
 対象サーバ10は、割当てOS変更項目管理テーブル160を更新する(S413)。具体的には、例えば、対象サーバ10は、割当てOS変更項目管理テーブル160に、変更項目定値164-1に対応する変更状況164-2欄に、OS11への変更の反映が終了したこと(already)を示す“2”を設定する。なお、対象サーバ10は、変更項目値の変更が反映されたか否かを管理するため、更新内容を、管理装置22に通知する。管理サーバ22は、通知された更新内容に基づき、自身の割当てOS変更項目管理テーブル160を更新する。
 対象サーバ10は、稼働中のアプリケーション13が終了したか否かを判定する(S415)。終了した場合(S415;Yes)、対象サーバ10は、処理を終了する。一方、終了していない場合(S415;No)、対象サーバ10は、アプリケーション13の終了まで、S407~S415の一連の処理を繰り返す。
 上記処理により、アプリケーション13が稼働している間、予め設定された変更項目における監視ポイントを監視することで、監視ポイントで観測された観測値が所定の条件(閾値)を満たす場合に、変更項目値を変更し、変更後の変更項目値をOS11に反映することができる。これにより、OS11の初期設定時だけでなく、アプリケーションの稼働中であっても、最適な設定でOS11を稼働することができる。
 また、複数の変更項目に対して監視ポイントを設定することで、OS11の複数の構成要素それぞれについて、ボトルネックがあるか否かを監視することができる。
 また、各変更項目に対して複数の監視ポイントを設定することで、その変更項目に対応する構成要素のボトルネックをより正確に監視することができる。
 また、複数の変更項目値が変更されることにより、OS11のバージョンや種別の変更が必要になる場合であっても、アプリケーションの稼働状態に合わせた、最適なOSのバージョンや種別を選択することができる。
 設定値の変更するときにリブート又はコンパイルが必要な場合は、アプリケーション、OS又はハードウェアのメンテナンス時刻に合わせて、設定値を変更できる。これにより、アプリケーションの稼働中にサーバ10を停止させる回数を最低限に抑え、サーバ10の可用性を維持できる。
 また、予め設定された監視ポイント以外にも、サーバ10のボトルネックを計測することで、予測していない箇所以外の変更項目の設定値を変更することができる。これにより、予測していない不具合においても、最適な設定でOS11を稼働することができる。
 また、監視ポイントに優先度を設定したことにより、より適切に変更項目の設定値を変更する事ができる。
 なお、上記では、管理装置22が、設定情報を取得し、ハードウェアリソース及びOSの設定情報の管理を行っている(S401~403、S413の一部等)。しかしながら、対象サーバ10がユーザとの管理インタフェースを有する場合、管理装置22が行う処理を対象サーバ10が行ってもよい。なお、ここでいう管理インタフェースは、対象サーバ10の入力装置103及び出力装置104であってよい。
 次に、ボトルネック計測処理を説明する。ボトルネック計測処理は、OS変更処理のS409の処理である。図11は、ボトルネック計測処理のフローチャートの一部である。図12は、ボトルネック計測処理のフローチャートの残りの一部である。
 この処理は、対象サーバ10のCPU101が、モニタ141及び解析モジュール142を実行することにより行われる。モニタ141は、アプリケーション13の挙動を監視し、アプリケーション13の挙動からそのモニタ情報を取得する。解析モジュール142は、アプリケーション13のモニタ情報を解析し、アプリケーション13に対する要求に基づく一連の処理のうち、変更項目に関する処理の処理時間を抽出する。モニタ141および解析モジュール142は、アプリケーション13のモニタ情報を取得する処理とモニタ情報の解析処理とを、別々に行ってもよい。
 対象サーバ10のモニタ141は、アプリケーション13のモニタ情報を取得する。モニタ情報は、例えば、対象サーバ10に接続されたクライアント計算機が、アプリケーション13に対して発行した要求に対して、アプリケーション13が処理した情報(セッションID、XML文、ユーザリクエスト文(例えば、SQL文)、時刻情報、発行された要求文の解析、実行、I/O処理等)である。
 モニタ141は、モニタ情報から、セッションIDを取得する(S501)。これにより、クライアント計算機から要求が発行されたことが検出される。
 モニタ141は、取得したセッションIDの処理を実行するOS11のプロセスを識別するプロセスID(又はスレッドID)を取得する(S502)。対象サーバ10は、取得したプロセスID又はセッションIDに基づくプロセス又はセッションに属する1つ以上のユーザリクエスト文から任意の1つのユーザリクエスト文を取得する(S503)。
 モニタ141は、モニタ情報から、取得したユーザリクエスト文の時刻情報を取得し(S504)、またユーザリクエスト文を識別するユーザリクエストID(例えばSQL_ID)を取得する(S505)。そして、モニタ141は、取得した時刻情報から、ユーザリクエスト文が処理された処理時間を算出する(S506)。モニタ情報として取得できる時刻情報が各ユーザリクエスト文の処理開始時刻の場合は、処理時間は、あるユーザリクエスト文の時刻情報と次に処理されたユーザリクエスト文の時刻情報との差分である。また、モニタ情報として取得できる時刻情報が処理時間である場合は、処理時間は各ユーザリクエスト文の時刻情報である。
 モニタ141は、S505で取得したユーザリクエストIDが既出であるかを検索する(S507)。具体的には、例えば、モニタ141は、ユーザリクエストIDログ800に、取得したユーザリクエストIDが記録されているか否かを検索する。
 ここで、ユーザリクエストIDログ800を説明する。図14は、ユーザリクエストIDログ800の一例である。
 ユーザリクエストIDログ800は、ユーザリクエストIDのリスト801と、当該ユーザリクエストIDのログ情報と、モニタ解析情報とを有する。ログ情報として、各ユーザリクエスト文が処理された開始時刻情報8011と、当該ユーザリクエスト文の処理時間8012とが記録される。モニタ解析情報として、各ユーザリクエスト文の平均処理時間8013と、最大処理時間8014と、全てのユーザリクエスト文の中での当該ユーザリクエスト文の出現の頻度8015と、がモニタ141により算出され登録される。
 図示例は、ユーザリクエストID“1”のユーザリクエスト文は、2014年7月3日の11時7分28.474秒から、876μ秒処理されていたことを示す。また、ユーザリクエストID“1”のユーザリクエスト文は、平均処理時間は882μ秒、最大処理時間は1048μ秒、かつ、出現頻度が10%であることを示す。
 図11の処理に戻る。S507で検索したユーザリクエスト文が既出である場合、モニタ141は、リスト801内の当該ユーザリクエストIDに紐づけて、当該ユーザリクエスト文のログ情報(開始時刻情報8011及び処理時間8012)を登録する(S508)。また、ユーザリクエスト文が新規の場合、対象サーバ10は、当該ユーザリクエストIDをリスト801に登録し、そのIDに紐づけて、ログ情報を登録する。
 モニタ141は、取得したプロセスID又はセッションIDに基づくプロセス又はセッションに属するユーザリクエスト文のうち、S503で抽出されていないユーザリクエスト文があるか否かを判定する(S509)。抽出されていないユーザリクエスト文がある場合(S509;Yes)、モニタ141は、S503に処理を戻す。抽出されていないユーザリクエスト文がない場合(S509;No)、モニタ情報に記録されたユーザリクエスト文を全て処理したことを意味するので、モニタ141は、S510に処理を進める。
 モニタ141は、ユーザリクエスト文毎にモニタ解析情報(平均処理時間8013、最大処理時間8014及び頻度8015)を算出し、登録する(S510)。
 モニタ141は、取得したモニタ情報及び登録したユーザリクエストIDログ800を、解析モジュール142に通知する(S511)(図11中;A)。
 モニタ141は、取得したモニタ情報に、S501でまだ取得されていない他のセッションIDが含まれているか否かを判定する。他のセッションIDが含まれている場合(S512;Yes)、モニタ141は、S501に処理を戻す。一方、モニタ情報に他のセッションIDが含まれていない場合(S512;No)、モニタ141は、処理を終了する。
 上記処理により、対象サーバ10は、アプリケーション13のモニタ情報より、ユーザリクエストIDログ800を生成することができる。これにより、ユーザリクエスト毎の処理時間、及び、アプリケーションの処理におけるユーザリクエストの出現頻度などを算出できる。
 続いて、図12を説明する。
 対象サーバ10の解析モジュール142は、モニタ141から、アプリケーション13のモニタ情報及びユーザリクエストIDログ800を受け取る(S601)(図12中;A)。
 解析モジュール142は、取得したユーザリクエストIDログ800のモニタ解析情報8013~8015に基づき、予め設定された処理時間の閾値よりも平均処理時間8013の長いユーザリクエストIDを抽出する(S602)。
 S602では、この閾値よりも平均処理時間8013の長いユーザリクエストIDを抽出したが、これに限られず、例えばこの閾値よりも最大処理時間8014の長いユーザリクエストのIDを抽出してもよい。
 解析モジュール142は、OSのモニタ情報であるOSログ900に基づき、抽出したユーザリクエスト文に応じてOS11のカーネルにより実行されたプロセスのプロセスID(又はスレッドID)を取得する(S604)。
 ここで、OSログ900について説明する。図15は、プロセスのOSログ900の一例である。例えば、OSログ900には、プロセス毎の稼働情報が記録される。OSログ900には、プロセスを識別するプロセスID901、当該プロセスが動作しているCPUのコア番号902、処理開始時刻903、及び処理関数904が記録される。
 図12のS604の説明に戻る。例えば、解析モジュール142は、ユーザリクエストIDログ800に基づき、抽出したユーザリクエストIDに紐づけられたログ情報から、開始時刻情報8011を取得し、OSログ900に基づき、取得した開始情報8011と同じ処理開始時刻903に開始されたプロセスのプロセスID901を取得する。
 解析モジュール142は、S604で取得したプロセスID901に基づき、そのプロセスに含まれる処理関数(function)904を抽出する(S605)。
 解析モジュール142は、S605で抽出した処理関数904に基づき、処理関数毎のカーネルによるプロセスの処理時間を算出し、カーネル処理時間として、メモリ100に一時記憶する(S606)。同じユーザリクエストIDのカーネル処理時間が一時記憶されている場合は、解析モジュール142は、算出した処理時間をカーネル処理時間に加算した時間をカーネル処理時間として、メモリ100に一時記憶する。なお、カーネル処理時間は、ある処理関数の処理開始時刻903と、次の処理関数の処理開始時刻903との差分であってよい。
 解析モジュール142は、S602で抽出したユーザリクエストIDと同じユーザリクエストIDの情報が他にあるかどうかを検索する(S607)。同じユーザリクエストIDの情報がある場合(S607;Yes)、解析モジュール142は、S604~S606の処理を繰り返す。同じユーザリクエストIDの情報がない場合は(S607;No)、解析モジュール142は、抽出したユーザリクエストIDの出現頻度8015を取得し(S608)、S606で取得したOSカーネル処理時間と掛け合わせることにより、そのユーザリクエストの評価値を算出する(S609)
 解析モジュール142は、閾値として予め設定された時間よりも長い平均処理時間の長い他のユーザリクエストIDがあるか否かを判定する(S611)。閾値よりも平均処理時間の長い他のユーザリクエストIDがある場合(S611;Yes)、解析モジュール142は、そのユーザリクエストIDを抽出し、S604以降の処理を実行する。一方、閾値よりも平均処理時間の長い他のユーザリクエストIDがない場合(S611;No)、S609で算出した各ユーザリクエストIDの評価値を、例えば、値の大きい順にソーティングし、最大の評価値を持つユーザリクエストIDをボトルネックと判定し(S612)、解析モジュール142は、処理を終了する。
 なお、解析モジュール142は、最大の評価値に対応するカーネルの処理関数を保持する。これにより、解析モジュール142は、最大の評価値に対応する処理関数を抽出し、その処理関数に基づき、OSの構成情報を変更する事ができる。
 この場合、例えば、メモリ100には、処理関数管理テーブル1000が格納されていてよい。ここで、図16を参照し、処理関数管理テーブル1000の一例を説明する。処理関数管理テーブル1000は、例えば、カーネル処理の処理関数1001と監視パラメータ1002とが対応づけられる。なお、監視パラメータ1002が、OS変更項目リスト150の各構成要素(1)~(5)の監視ポイント1513~1553に関連づいている。従って、処理関数管理テーブル1000において、処理関数1001より監視パラメータ1002を特定することにより、構成要素(1)~(5)が特定できる。
 例えば、シーケンシャルRead型のワークロードのアプリケーションが実行されており、最大の評価値に対応する処理関数1001が“sys read”である場合を説明する。ここで、シーケンシャルRead型のワークロードのアプリケーション向けに、OS変更項目テーブル150の構成要素(5)の設定値を“ON”に設定しているものとする。処理関数1001の“sys read”に対応する監視パラメータ1002はキャッシュヒット率である。そのため、解析モジュール142が、キャッシュヒット率が下がってきていることを確認した場合に、構成要素(5)をボトルネックとして特定し、その設定値を“ON”から“OFF”に変更するようにしてもよい。なお、例えば、解析モジュール142は、監視ポイント1002を取得した後、予め設定された期間、キャッシュヒット率を監視することで、キャッシュヒット率の傾向を観測してもよい。
 上記処理により、アプリケーションのモニタ情報及びユーザリクエストIDログ800より、OSのカーネル処理時間が最も長いと推定されるユーザリクエストIDを抽出しその評価値を計測することができる。なお、OSのボトルネック判定に用いた評価値は、ユーザリクエストIDの出現頻度とそのカーネル処理時間とで算出される評価値のうち、最大の評価値としたが、この評価値の算出方法には限られず、OSのボトルネックを判定できる評価値であればどのような算出方法であってもよい。
 なお、クラウド環境等で複数台のサーバに対して一括してOSをインストールする場合、管理装置22は、既に稼動している複数台のサーバ10から構成情報を収集してもよい。この場合、管理装置22は、アプリケーション13のワークロードに応じた複数のOS11の変更項目について、どのような比率で稼働しているかどうかを観測する。そして、管理装置22は、新たに複数台のサーバ10にシステムを構築する際は、アプリケーション13のワークロードに応じた複数のOS11における構成情報及び観測した比率に基づき、各サーバに適したOSを配布することで、適したOSをより迅速に提供できる。
 また、新しい機能や性能を持つハードウェアが登場した場合、ハードウェアの特徴をOSの機能と結び付け、変更項目及び監視ポイントを変更又は追加してもよい。
 本実施例により、アプリケーションの稼働中に、そのワークロード特性や周辺環境が変化した場合であっても、OSの構成要素に関し、適切な構成又は設定を維持できる。これにより、サーバ計算機の運用中の性能劣化を軽減することができる。また、OSの変更のタイミングは、OSの変更項目と運用サイクルとから判断するため、アプリケーションのダウンタイムをできるだけ回避することができる。
 以上、本発明の実施例を説明したが、本発明は、この実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
10:サーバ
11:OS
13:アプリケーション
14:OS構成管理プログラム
20:ストレージ装置
22:管理装置
141:モニタ
142:解析モジュール
150:OS変更項目リスト
160:割当てOS変更項目管理テーブル
170:メンテナンス情報管理テーブル
180:OS構成リスト
 

Claims (9)

  1.  メモリと、
     前記メモリに接続されたプロセッサと、
    を備え、
     前記メモリは、
      OSの構成要素の状態を示す構成情報を格納し、
      前記構成要素と、前記状態の複数の候補と、前記OSの実行中に監視される項目である監視項目と、前記監視項目の監視結果の条件とを関連付ける状態情報を格納し、
     前記プロセッサは、
      前記構成情報に基づいて前記OSを実行し、
      前記OSを用いるアプリケーションを実行し、
      前記状態情報に基づいて、前記監視項目を監視することにより前記監視結果を取得した場合、前記監視結果が前記条件を満たすか否かを判定し、
      前記監視結果が前記条件を満たすと判定された場合、前記構成情報を変更し、
      前記変更した構成情報に基づいて前記OSを実行する、
    サーバ計算機。
  2.  請求項1に記載のサーバ計算機であって、
     前記状態は、前記構成要素の有無、前記構成要素の種別、又は、前記構成要素に設定される設定値であって、
     前記プロセッサは、前記監視結果が前記条件を満たすと判定された場合、前記監視項目に対応する前記状態を前記複数の候補の何れかに変更する、
    サーバ計算機。
  3.  請求項2に記載のサーバ計算機であって、
     前記メモリは、前記OS、前記アプリケーション又は前記サーバ計算機のハードウェアリソースのメンテナンスを実行するメンテナンス時刻を格納し、
     前記プロセッサは、前記状態が、前記構成要素の有無又は前記構成要素の種別の場合に、前記メンテナンス時刻に合わせて、前記変更した構成情報に基づいて前記OSを実行する、
    サーバ計算機。
  4.  請求項3に記載のサーバ計算機であって、
     前記状態情報は、前記構成要素と、前記複数の候補と、前記複数の監視項目と、前記複数の監視項目の監視結果の条件とを関連付けた情報であって、
     前記メモリは、前記複数の観測項目に対してそれぞれ優先度を付与した優先度情報を格納し、
     前記プロセッサは、
      前記複数の観測項目における複数の観測結果を取得した場合に、前記優先度情報に基づき、最も優先度の高い観測結果を選択し、
      前記選択した監視結果が前記条件を満たすか否かを判定し、
      前記選択した監視結果が前記条件を満たすと判定された場合、前記構成情報を変更する、
    サーバ計算機。
  5.  請求項1に記載のサーバ計算機であって、
     前記メモリは、前記OSのカーネルによるカーネル処理と、前記構成要素とを関連付けた処理管理情報を格納し、
     前記プロセッサは、
      前記監視項目を監視することにより前記監視結果が取得されなかった場合、前記アプリケーションの実行要求に基づき実行されるプロセスと前記プロセスにより実行されるカーネル処理とを記録するログを取得し、
      前記ログに基づき、前記プロセスに係る前記OSのカーネル処理を特定し、
      前記カーネル処理の処理時間が、予め設定された基準を超えた場合、前記処理管理情報に基づき、前記カーネル処理に関する前記構成要素を特定し、
      前記特定した構成要素に基づき、前記構成情報を変更する、
    サーバ計算機。
  6.  メモリと、前記メモリに接続されたプロセッサと、を備えたサーバ計算機と、
     前記サーバ計算機に接続されるストレージ装置と、
    を有し、
     前記ストレージ装置は、OSのイメージデータを格納し、
     前記メモリは、
      前記OSの構成要素の状態を示す構成情報を格納し、
      前記構成要素と、前記状態の複数の候補と、前記OSの実行中に監視される項目である監視項目と、前記監視項目の監視結果の条件とを関連付ける状態情報を格納し、
     前記プロセッサは、
      前記構成情報に基づいて前記OSを実行し、
      前記OSを用いるアプリケーションを実行し、
      前記監視項目を監視することにより前記監視結果を取得した場合、前記監視結果が前記条件を満たすか否かを判定し、
      前記監視結果が前記条件を満たすと判定された場合、前記構成情報を変更し、
      前記変更した構成情報に基づいて前記OSを実行する、
    計算機システム。
  7.  請求項6に記載の計算機システムであって、
     前記状態は、前記構成要素の有無、前記構成要素の種別、又は、前記構成要素に設定される設定値であって、
     前記プロセッサは、前記監視結果が前記条件を満たすと判定された場合、前記監視項目に対応する前記状態を前記複数の候補の何れかに変更する、
    計算機システム。
  8.  請求項7に記載の計算機システムであって、
     メモリとプロセッサを有し、前記サーバ計算機に接続される管理計算機をさらに備え、
     前記管理計算機は
      前記構成情報と、前記状態情報と、を自身のメモリに格納し、
      前記サーバ計算機でOSを起動する場合に、前記サーバ計算機で実行するアプリケーションの情報を受け付け、前記アプリケーションの情報に基づき、前記サーバ計算機で実行するOSを決定し、
      決定したOSを前記サーバ計算機に通知する、
    計算機システム。
  9.  メモリと、前記メモリに接続されたプロセッサと、を備えるサーバ計算機が実行するOSを管理する方法であって、
     前記メモリは、
      OSの構成要素の状態を示す構成情報を格納し、
      前記構成要素と、前記状態の複数の候補と、前記OSの実行中に監視される項目である監視項目と、前記監視項目の監視結果の条件とを関連付ける状態情報を格納し、
     前記プロセッサは、
      前記構成情報に基づいて前記OSを実行し、
      前記OSを用いるアプリケーションを実行し、
      前記監視項目を監視することにより前記監視結果を取得した場合、前記監視結果が前記条件を満たすか否かを判定し、
      前記監視結果が前記条件を満たすと判定された場合、前記構成情報を変更し、
      前記変更した構成情報に基づいて前記OSを実行する、
    方法。
PCT/JP2014/081195 2014-11-26 2014-11-26 サーバ計算機、計算機システム、及び、方法 WO2016084150A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/081195 WO2016084150A1 (ja) 2014-11-26 2014-11-26 サーバ計算機、計算機システム、及び、方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/081195 WO2016084150A1 (ja) 2014-11-26 2014-11-26 サーバ計算機、計算機システム、及び、方法

Publications (1)

Publication Number Publication Date
WO2016084150A1 true WO2016084150A1 (ja) 2016-06-02

Family

ID=56073774

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/081195 WO2016084150A1 (ja) 2014-11-26 2014-11-26 サーバ計算機、計算機システム、及び、方法

Country Status (1)

Country Link
WO (1) WO2016084150A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01112333A (ja) * 1987-10-26 1989-05-01 Nec Corp システムパラメータの時間的変更処理方式
JPH07200270A (ja) * 1994-01-05 1995-08-04 Hitachi Ltd 性能解析によるシステム定義自動変更方法
JP2004030311A (ja) * 2002-06-26 2004-01-29 Nec Corp パラメータ動的変更方法、そのシステム及びその制御用プログラム
WO2012157023A1 (ja) * 2011-05-17 2012-11-22 株式会社日立製作所 計算機システムと計算機システムの情報処理方法及び情報処理プログラム
JP2013533553A (ja) * 2010-09-07 2013-08-22 ヒョンダイ モーター カンパニー システムテスト方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01112333A (ja) * 1987-10-26 1989-05-01 Nec Corp システムパラメータの時間的変更処理方式
JPH07200270A (ja) * 1994-01-05 1995-08-04 Hitachi Ltd 性能解析によるシステム定義自動変更方法
JP2004030311A (ja) * 2002-06-26 2004-01-29 Nec Corp パラメータ動的変更方法、そのシステム及びその制御用プログラム
JP2013533553A (ja) * 2010-09-07 2013-08-22 ヒョンダイ モーター カンパニー システムテスト方法
WO2012157023A1 (ja) * 2011-05-17 2012-11-22 株式会社日立製作所 計算機システムと計算機システムの情報処理方法及び情報処理プログラム

Similar Documents

Publication Publication Date Title
US11983198B2 (en) Multi-cluster warehouse
US10423451B2 (en) Opportunistically scheduling and adjusting time slices
US9760294B2 (en) Computer system, storage management computer, and storage management method
JP5427011B2 (ja) 仮想ハードディスクの管理サーバおよび管理方法、管理プログラム
JP4980792B2 (ja) 仮想計算機の性能監視方法及びその方法を用いた装置
US10067695B2 (en) Management server, computer system, and method
US20130238804A1 (en) Computer system, migration method, and management server
US20130227585A1 (en) Computer system and processing control method
JP5589218B2 (ja) 計算機システム及び管理計算機
CN107209697B (zh) 动态控制的工作负载执行
JP2010282420A (ja) 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム
US20180267879A1 (en) Management computer, performance monitoring method, and computer system
US20190235902A1 (en) Bully vm detection in a hyperconverged system
CN112753022A (zh) 数据库环境中的自动查询重试
US10754368B1 (en) Method and system for load balancing backup resources
US20130332932A1 (en) Command control method
CN107528871B (zh) 存储系统中的数据分析
JP6272556B2 (ja) 共有リソース更新装置及び共有リソース更新方法
JP5597293B2 (ja) 計算機システム及びプログラム
WO2016084150A1 (ja) サーバ計算機、計算機システム、及び、方法
US10824640B1 (en) Framework for scheduling concurrent replication cycles
Zhang et al. COBRA: Toward provably efficient semi-clairvoyant scheduling in data analytics systems
JP2020190867A (ja) 構成変更型集積回路の割当システム、構成変更型集積回路の割当方法およびコンピュータプログラム
Ondrejka et al. Red Hat Enterprise Linux 7: Resource Management Guide
US20170147408A1 (en) Common resource updating apparatus and common resource updating method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14906797

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14906797

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP